将大量数据保存到hbase的速度非常慢

kqlmhetl  于 2021-06-10  发布在  Hbase
关注(0)|答案(2)|浏览(713)

我正在为hbase保存1450万条记录。每行有20多列。我试着先插入70万张唱片,结果非常顺利,只用了1.7分钟就完成了。
然后我试着插入实际和完整的数据,这是1450万。如果我试着把它们都插进去一次,那要花很多时间。它运行了1.5个小时。
spark是我的编程模型。我尝试使用saveasnewhadoopdataset和cloudera的hbase spark bulkput。
两者似乎使用相同的方法。我在8个节点的集群上运行,有8个区域服务器,并且只使用单列族。我已经为区域服务器和主服务器分配了4gb堆。
我不确定,如果我错过了什么或hbase真的窒息了巨大的数据插入一次。
请提供您的证件。我还计划安装pheonix层,这样就可以直接在hbase数据上使用Dataframe抽象,并将Dataframe直接保存到hbase。
我仍在努力寻找hbase如何能仅仅因为1450万张唱片而窒息。数据只有9gb左右。

k2arahey

k2arahey1#

你想过拼接机吗?
https://github.com/splicemachine/spliceengine
它每秒可以将每个节点大约10万条记录导入hbase。它有一个非常简单的批量导入命令
http://doc.splicemachine.com/administrators/importingdata.html
它在内部使用spark进行导入、压缩和大型查询。
还有一件事需要考虑,那就是如何将数据存储到hbase中。单独存储每一列会占用大量空间。
祝你好运。。。

ktca8awb

ktca8awb2#

可能是您没有预拆分表,而hbase仅使用1个regionserver写入数据?
请检查表拆分计数,如果它有一个拆分,您可以在插入100万条记录并截断表然后插入所有数据后拆分它。截断表不会更改拆分计数,会删除所有数据。因为您有8个节点,所以表中至少需要8个拆分。

相关问题