我尝试像下面这样将数据批量加载到hbase表中并且成功了。
hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.bulk.output=/tmp/example_output -Dimporttsv.columns=HBASE_ROW_KEY,cf1:val1,cf1:val2,cf1:val3 so_table /user/uclab/smallbusiness/bulk3/
完成这项工作后,我的表现如下:
hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles /tmp/example_output so_table
但是出现如下递归错误
2015-10-12 01:52:42.835 DEBUG [LoadIncrementalHFiles-0]
mapreduce.LoadIncrementalHFiles: Goint to connect to server
regiont=so_table,,1444580736986.3c5aa99d4ca4dcb509c8cfb26c2b223f.,
hostname=datanode83,60020,1444578166533, seqNum=2 for row with hfile
group[{[B@5d37ce06,hdfs://namenode.uclab.com:8020/tmp/example_output/cf1/541f346
80be24932afa54c3fa14e4ad4}]
和
Caused by: org.apache.hadoop.ipc.RemoteException
(org.apache.hadoop.security.AccessControlException):
Permission denied: user=hbase, access=WRITE,
inode="/tmp/example_output/cf1":uclab:hdfs:drwxr-xr-x
如何赋予写权限?和我如何解决这个问题? ?
我在 Cloudera Quickstart VM
上也遇到了类似的问题。
更改owner为 “hbase”
或 HBase
将没有移动文件的权限。执行如下命令:
sudo -u hdfs hdfs dfs -chown -R hbase:hbase /tmp/example_output
现在运行
hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles /tmp/example_output so_table