天天看点

Impala配置Kerberos认证1. 环境说明2. 安装必须的依赖3. 生成 keytab4. 修改 impala 配置文件5. 启动服务6. 测试7. 排错

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