本帖最后由 pig2 于 2015-2-7 23:42 编辑
问题导读
1.本文配置hbase的前提是什么?
2.hbase需要做哪些修改?
相关内容:
了解Hadoop Kerberos安全机制
hadoop 添加kerberos认证
配置Zookeeper Kerberos认证介绍
我们在了解Kerberos,首先知道它的作用是什么?
kerberos实现的是机器级别的安全认证,也就是前面提到的服务到服务的认证问题。事先对集群中确定的机器由管理员手动添加到kerberos数据库中,在KDC上分别产生主机与各个节点的keytab(包含了host和对应节点的名字,还有他们之间的密钥),并将这些keytab分发到对应的节点上。通过这些keytab文件,节点可以从KDC上获得与目标节点通信的密钥,进而被目标节点所认证,提供相应的服务,防止了被冒充的可能性。
(一)环境: Hadoop | | | | | | | CentOS release 5.4 (Final) |
硬件环境:
(二)配置 1)在Hadoop的hdfs文件系统上生成hbase的目录
- #创建目录
-
- [hdfs@node1 bin]$ ./hadoop fs –mkdir /hbase
-
- #授权hbase用户可以读写
-
- [hdfs@node1 bin]$ ./hadoop fs –chown hbase:hbase /hbase
-
- #确认目录权限
-
- [hdfs@node1 bin]$ ./hadoop fs –ls /hbase
复制代码
备注:如果提示没有权限,可以如下操作 - #查看当前的ticket
-
- [hdfs@node1 bin]$ klist
-
- #导入ticket
-
- [hdfs@node1 bin]$ kinit -k -t hdfs.keytab hdfs/node1@EXAMPLE.COM
-
- [hdfs@node1 bin]$ klist
复制代码
2)配置hbase HBASE_HOME=/usr/local/hbase-0.90.4-cdh3u3/ hbase-site.xml - <configuration>
-
- <property>
-
- <name>hbase.rootdir</name>
-
- <value>hdfs://node1:9000/hbase</value>
-
- </property>
-
- <property>
-
- <name>dfs.replication</name>
-
- <value>1</value>
-
- </property>
-
- <property>
-
- <name>hbase.cluster.distributed</name>
-
- <value>true</value>
-
- </property>
-
- <property>
-
- <name>hbase.tmp.dir</name>
-
- <value>/data/hbase_tmp</value>
-
- </property>
-
- <property>
-
- <name>hbase.zookeeper.quorum</name>
-
- <value>node2</value>
-
- </property>
-
- <property>
-
- <name>hbase.zookeeper.property.dataDir</name>
-
- <value>/data/zookeeper</value>
-
- </property>
-
-
- <property>
-
- <name>hbase.regionserver.kerberos.principal</name>
-
- <value>hbase/_HOST@EXAMPLE.COM</value>
-
- </property>
-
- <property>
-
- <name>hbase.regionserver.keytab.file</name>
-
- <value>/usr/local/hbase-0.90.4-cdh3u3/conf/hbase.keytab</value>
-
- </property>
-
- <property>
-
- <name>hbase.master.kerberos.principal</name>
-
- <value>hbase/_HOST@EXAMPLE.COM</value>
-
- </property>
-
- <property>
-
- <name>hbase.master.keytab.file</name>
-
- <value>/usr/local/hbase-0.90.4-cdh3u3/conf/hbase.keytab</value>
-
- </property>
-
- </configuration>
复制代码
regionservers
3)生成kerberos的principal的keytab文件
- [root@kerberos ~]# kadmin.local
-
- kadmin.local: addprinc -randkey hbase/node2@EXAMPLE.COM
-
- kadmin.local: xst –k hbase-unmerged.keytab hbase/node2@EXAMPLE.COM
-
- kadmin.local:exit
-
-
- [root@kerberos ~]# ktutil
-
- Ktutil:krt hbase-unmerged.keytab
-
- Ktutil:wkt hbase.keytab
复制代码
4)将生成的hbase.keytab 拷贝到
node2的目录:/usr/local/hbase-0.90.4-cdh3u3/conf/ 下
5)启动hbase,确认kerberos是否授权成功 -
-
- [hbase@node2 bin]$ ./hbase-daemon.sh start zookeeper
-
- [hbase@node2 bin]$ ./hbase-daemon.sh start master
-
- [hbase@node2 bin]$ ./hbase-daemon.sh start regionserver
复制代码
|