analysys / presto-hbase-connector

presto hbase connector 组件基于Presto Connector接口规范实现,用来给Presto增加查询HBase的功能。相比其他开源版本的HBase Connector,我们的性能要快10到100倍以上。
Apache License 2.0
239 stars 100 forks source link

请问下t_event_test这种测试表你们是如何构建的,我想测试下官方给的特性和对应的性能 #46

Open tushengxia opened 3 years ago

tushengxia commented 3 years ago

官方给出的测试结果,所用到的表内容,请问下是如何生成的,以及如何导入到hbase集群中。

Crossoverrr commented 3 years ago

你好,非常感谢你的关注! 测试数据是用程序生成的,非常简单,表结构是90个字段,6个列族。每个列族存放15个字段。

tushengxia commented 3 years ago

你好,我随机生成了一些数据,500万行(19GB),rowkey都是0-5000000的字符串。分片数10个(0~9),服务器的CPU和内存配置不比易观官方披露的测试报告中低。3节点。 表的元数据和官方一致 这是presto catalog配置: connector.name=hbase zookeeper-quorum=xxx,xxx,xxx zookeeper-client-port=2181 zookeeper-znode-parent=/hbase hbase-cluster-distribute=true presto-server-port=8090 meta-dir=/opt/xxx/schema

最终测试的性能还是不如官方的好(Attachment 5),看起来全表扫描,我这边性能会差一些。 请问下,hbase server端还有什么额外的配置吗?您觉得可能是什么问题导致的

------------------ 原始邮件 ------------------ 发件人: "analysys/presto-hbase-connector" <notifications@github.com>; 发送时间: 2020年12月14日(星期一) 中午1:33 收件人: "analysys/presto-hbase-connector"<presto-hbase-connector@noreply.github.com>; 抄送: " "<976231198@qq.com>;"Author"<author@noreply.github.com>; 主题: Re: [analysys/presto-hbase-connector] 请问下t_event_test这种测试表你们是如何构建的,我想测试下官方给的特性和对应的性能 (#46)

你好,非常感谢你的关注! 测试数据是用程序生成的,非常简单,表结构是90个字段,6个列族。每个列族存放15个字段。

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

从QQ邮箱发来的在线文档

                    新建表格.xlsx (3.61K)进入查看页面https://mail.qq.com/cgi-bin/docedit_read?func=3rdread&key=5db30b8abc1cf6ed165e721287c8f254
Crossoverrr commented 3 years ago

可以看一下是split个数不够还是每次执行会有几个split运行较慢,每个split要获取的数据量是否均衡。Split个数增加到48效果怎么样?

tushengxia commented 3 years ago

rowKey的组成里面是没有字母的,0~5000000,那么最大的分片是不是就是10呢(0,1,2,3,4,5,6,7,8,9),如何增加到48。 数据加载不算均衡,数据是否均衡,是构造写入hbase的时候需要控制的?

------------------ 原始邮件 ------------------ 发件人: "analysys/presto-hbase-connector" <notifications@github.com>; 发送时间: 2020年12月16日(星期三) 晚上6:38 收件人: "analysys/presto-hbase-connector"<presto-hbase-connector@noreply.github.com>; 抄送: " "<976231198@qq.com>;"Author"<author@noreply.github.com>; 主题: Re: [analysys/presto-hbase-connector] 请问下t_event_test这种测试表你们是如何构建的,我想测试下官方给的特性和对应的性能 (#46)

可以看一下是split个数不够还是每次执行会有几个split运行较慢,每个split要获取的数据量是否均衡。Split个数增加到48效果怎么样?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

Crossoverrr commented 3 years ago

可以在rowkey的开始设置一个按照62取模的随机数,对应0 ~ 9 和 a ~ z A ~ Z 然后参考文档里配置多个split的说明进行配置就行了。 https://github.com/analysys/presto-hbase-connector#query-optimization

tushengxia commented 3 years ago

非常感谢,我明白了。 还有一个问题困扰了我很久,我想使用clientSide特性,但是运行的过程中会报异常, 在HBaseRecordSet中,获取clientSideScanner的时候, Error org.apache.hadoop.hbase.regionserver.HRegion Could not initialize all stores for the region =db_test:t_test_event,,,.

NoClassDefFoungdError: Could not initialize class org.apache.hbase.io.hfile.HFile.

我自己写一个java程序main获取ClientSideScanner就没有问题,所以说上述错误是因为pom文件引入的其他包的冲突导致的吗?请问您有没有什么建议?

------------------ 原始邮件 ------------------ 发件人: "analysys/presto-hbase-connector" <notifications@github.com>; 发送时间: 2020年12月17日(星期四) 下午2:19 收件人: "analysys/presto-hbase-connector"<presto-hbase-connector@noreply.github.com>; 抄送: " "<976231198@qq.com>;"Author"<author@noreply.github.com>; 主题: Re: [analysys/presto-hbase-connector] 请问下t_event_test这种测试表你们是如何构建的,我想测试下官方给的特性和对应的性能 (#46)

可以在rowkey的开始设置一个按照62取模的随机数,对应09和az A~Z

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

Crossoverrr commented 3 years ago

看报错应该是,可能jar包的版本有冲突,可以用mvn dependency:tree命令查看一下jar包的版本,然后看一下这个版本里有没有HFile类。如果没有看看能添加进去,然后重新打包。 操作步骤可以参考: https://github.com/analysys/presto-hbase-connector#4-javaioioexception-javalangnosuchmethoderror-comgooglecommonbaseobjectstostringhelperljavalangobjectlcomgooglecommonbaseobjectstostringhelper

tushengxia commented 3 years ago

在hbase-server这个包里面是可以找到这个HFile的,我对比了一下java程序和presto插件的classloader,我发现一个是AppClassLoader,另一个是PluginClassLoader,这个会不会有影响呢? 之前看到你们的文档里,提到SnappyCodec有类似的问题,需要去改源码? 那么我这个难道要改hbase-server吗?

------------------ 原始邮件 ------------------ 发件人: "analysys/presto-hbase-connector" <notifications@github.com>; 发送时间: 2020年12月17日(星期四) 下午5:13 收件人: "analysys/presto-hbase-connector"<presto-hbase-connector@noreply.github.com>; 抄送: " "<976231198@qq.com>;"Author"<author@noreply.github.com>; 主题: Re: [analysys/presto-hbase-connector] 请问下t_event_test这种测试表你们是如何构建的,我想测试下官方给的特性和对应的性能 (#46)

看报错应该是,可能jar包的版本有冲突,可以用mvn dependency:tree命令查看一下jar包的版本,然后看一下这个版本里有没有HFile类。如果没有看看能添加进去,然后重新打包。

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

Crossoverrr commented 3 years ago

改一下hbase-server的代码,然后重新打个包,install到你的maven环境,然后把这个hbase-server的jar包copy到插件安装目录替换原有jar包就行了。