[关闭]
@zhangyy 2020-09-21T10:14:58.000000Z 字数 2847 阅读 245

CDH 6.3.2 开启kerberos 遇到 的坑

大数据运维专栏


  • 一: 关于安装系统的一些坑
  • 二: 关于 开启Kerberos Java 的 一些坑
  • 三: 关于hive

一: 关于 安装系统的一些坑

  1. 1 安装之前一定 确认 jdk 的安装 目录 因为 通过 centos 7 这个系统 默认会 在装之前 会自带 一些 jdk 版本 要彻底卸载 这个 jdk 最好是保证安装系统之前 自装 最简 centos 7.5 x64 mini
  2. 2 ) 系统最好 分区为三个
  3. /
  4. swap
  5. /boot
  6. 千万不要用 LVM 分区 与启用raid
  7. 产线存储数据(DN)盘 另外加

二:关于 开启Kerberos Java 的 一些坑

  1. 1 安装cloudera-manger 有安装依赖包
  2. yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb postgresql* portmap mod_ssl openssl-devel python-psycopg2 MySQL-python
  3. 执行 完这个步骤 之后 jdk 安装
  4. 要卸载这个 jdk 保证 系统的jdk 为自己安装的jdk 在安装 CDH 6.3.2
  5. 保证CDH 环境 有一个JDK 存在,并且是 自己安装的
  6. 2 20/05/29 09:13:18 WARN security.UserGroupInformation: Not attempting to re-login since the last re-login was attempted less than 60 seconds before. Last Login=1590714794874
  7. 这个报错是开启的Kerberos jdk 缺少 应用
  8. 因为系统采用的是Centos7.6,对于使用Centos5.6及以上系统,默认采用 AES-256 来加密;这就需要CDH集群所有的节点都安装 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy File
  9. 需要下载 jdk 8 JCE 来覆盖
  10. 下载链接:https://www.oracle.com/technetwork/java/javase/downloads/index.html
  11. JAVA_HOME=/usr/java/jdk1.8.0_161-cloudera
  12. cp UnlimitedJCEPolicyJDK8/*.jar /usr/java/jdk1.8.0_161-cloudera/jre/lib/security/
  13. 然后 从新启动CDH6.3.2的集群

  1. 3 确认CDH6.3.2 集群 当前 安装的jdk 这个 不然开启Kerberos 会报错
  2. 所有主机 --》 配置--高级--》 设置Java 的环境目录然后从新 启动 整个 CDH 集群

image.png-26.4kB


三: 关于 那个 新建用户的提交任务的坑

  1. 1. 新建用户提交job
  2. ----
  3. 1)保证所有节点 都有这个用户 没有就用useradd 去建立
  4. useradd flyfish
  5. 2) 保证Kerberos krb5admin 库有 principal 库有 这个 账号
  6. kadmin.local
  7. addprinc flyfish@LANXIN.COM
  8. 输入密码 然后使用kinit 登录 没有问题才可以
  9. 之后导出这个keytab
  10. kadmin.local
  11. xst -kt /root/flyfish.keytab -norandkey flyfish@LANXIN.COM
  12. 这里面会有涉及那个Kerberos 导出keytab 过期问题要 一定要加一个 -norandkey 参数
  13. kinit -kt /root/flyfish.keyab flyfish
  14. klist
  15. 3)在yarn上面提交任务必须 userid 小与 1000
  16. ----

image.png-20.1kB

  1. 是由于Yarn限制了用户id小于1000的用户提交作业;
  2. 解决方法:修改Yarnmin.user.id来解决

image.png-31kB

  1. 2.异常信息:
  2. Diagnostics: Application application_1504017397148_0002 initialization failed (exitCode=255) with output: main : command provided 0
  3. main : run as user is hdfs
  4. main : requested yarn user is hdfs
  5. Requested user hdfs is not whitelisted and has id 986,which is below the minimum allowed 1000
  6. -------
  7. 以上报错是因为 CDH 不给以 hdfs 这个用户 提交 任务 所以要给予 hdfs 的这个用户 提交 任务 的权限
  8. 取消掉 hdfs 禁用 拿掉

image.png-63.9kB


  1. 错误:
  2. FATAL org.apache.hadoop.hdfs.server.namenode.NameNode Exception in namenode join java.io.IOException There appears to be a gap in the edit log
  3. 这个一般是Hadoop HDFS HA 出现问题fsimage 损坏出现 问题 会报这个错误
  4. 如果在CDH中的 HDFS HA 散架崩溃 出现问题
  5. 1 下架 问题 namenode节点
  6. 2) 第二步 会出现 以上 fsimage 问题
  7. 先把元数据fsimage 的问题节点 进行 备份 就是 安装 大数据CDH 平台时候 namenodeNN 目录生成文件
  8. 一般是 /dfs/nn 这个目录
  9. 3 namenode元数据被破坏,需要修复
  10. hdfs namenode recover
  11. 一路选择c,一般就OK
  1. hive 中的 坑:
  2. AnalysisException: Failed to load metadata for table: 'dw_pay_report_results.t_pay_report_credit_paopi_pay' CAUSED BY: TableLoadingException: Failed to load metadata for table: dw_pay_report_results.t_pay_report_credit_paopi_pay CAUSED BY: IllegalArgumentException: java.net.UnknownHostException: ns1 CAUSED BY: UnknownHostException: ns1
  3. 这个是 因为 HDFS HA 出现 散架 配置 这个时候 一般要 从新 CDH 上面 配置 HA 在启动 配置 并命名 ns1 HA 然后跟新 hive metastore
  4. 可以查看 metastore 中的 mysql DBS SDS 两表中设置了 Hive的元数据信息 需要修改此表。

image.png-316kB

  1. 第一种方法是将 这些 ns1 全部 改掉 这种 方法 一般 用在 apache 的版本 部署的Hadoop 因为 启用 HA 配置比较麻烦
  2. 第二种方法就是在CDH 再次启动 HA 然后 跟新 hive metastore
  3. 更新hive metastore 一般是在 启用 hdfs HA 之后
  4. 1 启用 hdfs HA 之后
  5. 2) 启用 hive metastore 更新
  6. 先停掉 hive

image.png-25.7kB

  1. 然后更新
  2. 然后从新启动 hive

image.png-24.9kB

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注