關于 kerberos 的安裝和 hdfs 配置 kerberos 認證,請參考 hdfs配置kerberos認證。
關于 kerberos 的安裝和 yarn 配置 kerberos 認證,請參考 yarn配置kerberos認證。
關于 kerberos 的安裝和 hive 配置 kerberos 認證,請參考 hive配置kerberos認證。
系統環境:
作業系統:centos 6.6
hadoop版本:<code>cdh5.4</code>
jdk版本:<code>1.7.0_71</code>
運作使用者:root
叢集各節點角色規劃為:
cdh1作為master節點,其他節點作為slave節點,hostname 請使用小寫,要不然在內建 kerberos 時會出現一些錯誤。
在每個節點上運作下面的指令:
在 cdh1 節點,即 kdc server 節點上執行下面指令:
合并 proxy.keytab 和 impala-unmerge.keytab 生成 impala.keytab:
拷貝 impala.keytab 和 proxy_impala.keytab 檔案到其他節點的 /etc/impala/conf 目錄
并設定權限,分别在 cdh1、cdh2、cdh3 上執行:
由于 keytab 相當于有了永久憑證,不需要提供密碼(如果修改 kdc 中的 principal 的密碼,則該 keytab 就會失效),是以其他使用者如果對該檔案有讀權限,就可以冒充 keytab 中指定的使用者身份通路 hadoop,是以 keytab 檔案需要確定隻對 owner 有讀權限(0400)
修改 cdh1 節點上的 /etc/default/impala,在 <code>impala_catalog_args</code> 、<code>impala_server_args</code> 和 <code>impala_state_store_args</code> 中添加下面參數:
在 <code>impala_catalog_args</code> 中添加:
将修改的上面檔案同步到其他節點。最後,/etc/default/impala 檔案如下,這裡,為了避免 hostname 存在大寫的情況,使用 <code>hostname</code> 變量替換 <code>_host</code>:
将修改的上面檔案同步到其他節點:cdh2、cdh3:
更新 impala 配置檔案下的檔案并同步到其他節點:
impala-state-store 是通過 impala 使用者啟動的,故在 cdh1 上先擷取 impala 使用者的 ticket 再啟動服務:
然後檢視日志,确認是否啟動成功。
impala-catalog 是通過 impala 使用者啟動的,故在 cdh1 上先擷取 impala 使用者的 ticket 再啟動服務:
impala-server 是通過 impala 使用者啟動的,故在 cdh1 上先擷取 impala 使用者的 ticket 再啟動服務:
在啟用了 kerberos 之後,運作 impala-shell 時,需要添加 <code>-k</code> 參數:
如果出現下面異常:
則需要在 hive-site.xml 中将 <code>hive.metastore.client.socket.timeout</code> 值設定大一些: