关于 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> 值设置大一些: