大数据集群利用CHD5.7.0搭建,包括master节点、worker节点、name节点、secondary name节点等总共10个节点,集群通过Kerberos进行认证权限管理。
2.导入步骤
2.1 认证,执行如下命令进行kerberos认证,如果还没有kerberos用户,则需要利用kerberos 管理员创建用户
kinit -kt /keytab/testuser.keytab testuser
2.1 将数据放到hdfs上
hdfs fs -put 服务器上文件路径(如:/home/me/data) hdfs上文件路径(如 /user/me/data)
在网上也有一些人写的导入hbase时不用将数据推送到hdfs上,直接利用本地文件导入,命令如下,
hbase org.apache.hadoop.hbase.mapreduce.Driver import 'testme:test' file:///test/testdata
这在单节点机器上是可以执行的,或者是运行MR的节点是一个并且和存放数据的服务器一致才能实现,若是在集群环境下执行,MR对应的job调度到其他节点上,放在服务器本机的数据就无法找到。所以在集群环境下还是要先导入到hdfs上。
2.2 利用具有创建hbase命名空间的用户认证,在我这边的环境中hbase具有这样的权限
2.2.1 认证
kinit -kt /keytab/hbase.keytab hbase
2.2.2 创建命名空间
![向hbase导入数据_第1张图片](http1://img.it610.com/image/info5/64a05213a6bd4095b549d25ac0a5e5eb.jpg)
2.2.3 将在命名空间testme下新建表、及增删改的权限赋予我们新创建的用户
![](http1://img.it610.com/image/info5/28ec51dc23564506afc2477d06d7e61d.jpg)
2.3 利用新创建的用户进入hbase shell,创建要导入数据的表
create 'testme:test', 'fam'
2.4 执行命令开始导入数据
hbase org.apache.hadoop.hbase.mapreduce.Driver import 'testme:test' hdfs上的数据目录(如:/user/me/data)