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种解决途径:

  1. 使用hbase用户生成HFile,使得生成的HFile的目录的owner为hbase;
  2. 使用hdfs用户来运行HFileOutputFomat;
  3. 配置HDFS系统权限,使得hbase用户有权去移动属于用户hdfs的目录。

你可能感兴趣的:(hbase)