本文主要是介绍HBase bulkload,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
通过直接生成HFile文件,可以将要保存数据bulkload到HBase中,速度比使用HBase API要快很多。
在生成了HFile之后,一般通过HFileOutputFomat
这个工具来将其导入到HBase表在HDFS中的目录。
遇到的问题
导入HFile时权限不够
在使用HFileOutputFomat
来导入HFile时,很可能会发现导入的过程卡住不动了,如下:
实际上,卡住的原因是因为在loading hfiles时权限不够,可以查看某个region server的日志,会发现如下的内容:
可以看到,用户hdfs生成的HFile所在的HDFS目录的权限状况为 hdfs:supergroup:drwxr-xr-x,而试图loading hfiles的用户名是hbase,自然没有权限去将hfiles移动到其他地方了。
所以,有3种解决途径:
- 使用hbase用户生成HFile,使得生成的HFile的目录的owner为hbase;
- 使用hdfs用户来运行
HFileOutputFomat
; - 配置HDFS系统权限,使得hbase用户有权去移动属于用户hdfs的目录。
这篇关于HBase bulkload的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!