分享

Hbase 结合Kerberos 认证配置

pig2 2015-2-7 23:42:59 发表于 安装配置 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 35438
本帖最后由 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
  
hadoop-0.20.2-cdh3u3
Hbase
hbase-0.90.4-cdh3u3
Kerberos
krb5-1.6.1(rpm 包安装)
CentOS
CentOS release 5.4 (Final)

硬件环境:

  
用途
  
IP
主机名
说明
Kerberos
192.168.116.129
kerberos
Kerberos服务启动
Hadoop
192.168.116.131
node1
已配置好kerberos认证
Hbase
192.168.116.133
node2


(二)配置
    1)在Hadoop的hdfs文件系统上生成hbase的目录

  1. #创建目录
  2.   
  3. [hdfs@node1 bin]$ ./hadoop fs –mkdir /hbase
  4.   
  5. #授权hbase用户可以读写
  6.   
  7. [hdfs@node1 bin]$ ./hadoop fs –chown hbase:hbase /hbase
  8.   
  9. #确认目录权限
  10.   
  11. [hdfs@node1 bin]$ ./hadoop fs –ls /hbase
复制代码


备注:如果提示没有权限,可以如下操作
  1. #查看当前的ticket
  2.   
  3. [hdfs@node1 bin]$ klist   
  4.   
  5. #导入ticket
  6.   
  7. [hdfs@node1 bin]$ kinit -k -t hdfs.keytab  hdfs/node1@EXAMPLE.COM
  8.   
  9. [hdfs@node1 bin]$ klist   
复制代码



2)配置hbase
        HBASE_HOME=/usr/local/hbase-0.90.4-cdh3u3/
        hbase-site.xml
  1. <configuration>
  2.   
  3.         <property>
  4.   
  5.                  <name>hbase.rootdir</name>
  6.   
  7.                  <value>hdfs://node1:9000/hbase</value>
  8.   
  9.          </property>
  10.   
  11.         <property>
  12.   
  13.                  <name>dfs.replication</name>
  14.   
  15.                  <value>1</value>
  16.   
  17.          </property>
  18.   
  19.         <property>
  20.   
  21.                  <name>hbase.cluster.distributed</name>
  22.   
  23.                  <value>true</value>
  24.   
  25.          </property>
  26.   
  27.         <property>
  28.   
  29.                  <name>hbase.tmp.dir</name>
  30.   
  31.                  <value>/data/hbase_tmp</value>
  32.   
  33.          </property>
  34.   
  35.         <property>
  36.   
  37.                  <name>hbase.zookeeper.quorum</name>
  38.   
  39.                  <value>node2</value>
  40.   
  41.          </property>
  42.   
  43.         <property>
  44.   
  45.                  <name>hbase.zookeeper.property.dataDir</name>
  46.   
  47.                  <value>/data/zookeeper</value>
  48.   
  49.          </property>
  50.   
  51.   
  52.         <property>
  53.   
  54.                  <name>hbase.regionserver.kerberos.principal</name>
  55.   
  56.                  <value>hbase/_HOST@EXAMPLE.COM</value>
  57.   
  58.         </property>  
  59.   
  60.         <property>
  61.   
  62.                  <name>hbase.regionserver.keytab.file</name>
  63.   
  64.         <value>/usr/local/hbase-0.90.4-cdh3u3/conf/hbase.keytab</value>  
  65.   
  66.          </property>
  67.   
  68.         <property>  
  69.   
  70.                  <name>hbase.master.kerberos.principal</name>
  71.   
  72.                  <value>hbase/_HOST@EXAMPLE.COM</value>
  73.   
  74.          </property>
  75.   
  76.         <property>  
  77.   
  78.                  <name>hbase.master.keytab.file</name>
  79.   
  80.         <value>/usr/local/hbase-0.90.4-cdh3u3/conf/hbase.keytab</value>  
  81.   
  82.          </property>
  83.   
  84. </configuration>
复制代码


regionservers
  1. node2
复制代码



3)生成kerberos的principal的keytab文件

  1. [root@kerberos ~]# kadmin.local
  2.   
  3. kadmin.local: addprinc -randkey  hbase/node2@EXAMPLE.COM
  4.   
  5. kadmin.local: xst –k hbase-unmerged.keytab  hbase/node2@EXAMPLE.COM
  6.   
  7. kadmin.local:exit
  8.   
  9.   
  10. [root@kerberos ~]# ktutil
  11.   
  12. Ktutil:krt hbase-unmerged.keytab
  13.   
  14. Ktutil:wkt hbase.keytab
复制代码

   

4)将生成的hbase.keytab 拷贝到

node2的目录:/usr/local/hbase-0.90.4-cdh3u3/conf/ 下


5)启动hbase,确认kerberos是否授权成功
  1.   
  2. [hbase@node2 bin]$ ./hbase-daemon.sh  start   zookeeper
  3.   
  4. [hbase@node2 bin]$ ./hbase-daemon.sh  start   master
  5.   
  6. [hbase@node2 bin]$ ./hbase-daemon.sh  start   regionserver
复制代码





没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条