(转载)详解Hive配置Kerberos认证
Hive提供了運行SQL語句查詢存儲在HDFS上數據的能力,Hive提供的查詢引擎,可以將SQL語句轉化成MapReduce任務,提交到Hadoop集群上執行。MapReduce任務運行的結果會存在HDFS上。下面的圖表示了一個用戶運行Hive查詢的Hadoop內部交互。
有多種和Hive交互的方法,最常用的是CLI,不過,CLI的設計使其不便于通過編程的方式進行訪問。還有可以使用HIveServer,用Java和其它語言和Hive進行交互。
Hiveserver2支持Kerberos和LDAP的用戶認證。推薦在生產環境中,我們設置Hiveserver2和Kerberos擁有用戶提交Hive查詢的seamless授權和訪問控制。
設置安全的Hive我們使用下面的步驟:
步驟描述為:1.在KDC中創建Hive的Principal;2.創建Hive的keytab文件;3.拷貝keytab文件到部署了HiveServer2的機器上;4.設置合適的keytab權限;5.更新Hive和Hadoop相應的設置。6.設置metastore安全性。
?
下面根據我實際安裝的情況來詳細描述相關步驟:
步驟一:在KDC中創建Hive的Principal
| Kadmin.local –q “addprinc –randkey hive/master5.hadoop@MYREALM.COM ” Kadmin.local –q “addprinc –randkey hive/slave6.hadoop@MYREALM.COM” Kadmin.local –q “addprinc –randkey hive/slave78.hadoop@MYREALM.COM” |
?
步驟二:創建Hive的keytab文件
| Kadmin.local –q “xst –norandkey –k hive.keytab hive/master5.hadoop@MYREALM.COM” Kadmin.local –q “xst –norandkey –k hive.keytab hive/slave6.hadoop@MYREALM.COM” Kadmin.local –q “xst –norandkey –k hive.keytab hive/slave78.hadoop@MYREALM.COM” ? |
?
步驟三:拷貝keytab文件到部署了HiveServer2的機器上;
| scp hive.keytab master5.hadoop:/etc/hive/conf scp hive.keytab slave6.hadoop:/etc/hive/conf scp hive.keytab slave78.hadoop:/etc/hive/conf |
?
步驟四:設置合適的keytab權限
| Chown hive:Hadoop hive.keytab; chmod 400 hive.keytab; |
注:由于 keytab 相當于有了永久憑證,不需要提供密碼(如果修改 kdc 中的 principal 的密碼,則該 keytab 就會失效),所以其他用戶如果對該文件有讀權限,就可以冒充 keytab 中指定的用戶身份訪問 hadoop,所以 keytab 文件需要確保只對 owner 有讀權限(0400)
?
步驟五、六:更新Hive和Hadoop相應的設置,設置metastore安全性
修改/etc/hive/conf/hive-site.xml,添加下面配置:
| <property> ? <name>hive.server2.authentication</name> ? <value>KERBEROS</value> </property> ? <property> ? <name>hive.server2.authentication.kerberos.principal</name> ? <value>hive/_HOST@MYREALM.COM</value> </property> ? <property> ? <name>hive.server2.authentication.kerberos.keytab</name> ? <value>/etc/hive/conf/hive.keytab</value> </property> ? <property> ? <name>hive.metastore.sasl.enabled</name> ? <value>true</value> </property> ? <property> ? <name>hive.metastore.kerberos.keytab.file</name> ? <value>/etc/hive/conf/hive.keytab</value> </property> ? <property> ? <name>hive.metastore.kerberos.principal</name> ? <value>hive/_HOST@MYREALM.COM</value> </property> |
在 core-site.xml 中添加:
| <property> ? <name>hadoop.proxyuser.hive.hosts</name> ? <value>*</value> </property> <property> ? <name>hadoop.proxyuser.hive.groups</name> ? <value>*</value> </property> <property> ? <name>hadoop.proxyuser.hdfs.hosts</name> ? <value>*</value> </property> <property> ? <name>hadoop.proxyuser.hdfs.groups</name> ? <value>*</value> </property> <property> ? <name>hadoop.proxyuser.HTTP.hosts</name> ? <value>*</value> </property> <property> ? <name>hadoop.proxyuser.HTTP.groups</name> ? <value>*</value> </property> |
將修改的上面文件同步到其他節點
| $ scp /etc/hive/conf/hive-site.xml slave6.hadoop:/etc/hive/conf/ $ scp /etc/hive/conf/hive-site.xml master5.hadoop:/etc/hive/conf/ |
?
啟動服務
| service hive-metastore start service hive-server2 start |
?轉載網址:http://www.cognoschina.net/Article/120457
總結
以上是生活随笔為你收集整理的(转载)详解Hive配置Kerberos认证的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【精华】Linux用户Hive权限控制实
- 下一篇: Apache Sentry 初识