CDH集群启动后使用Hive报错解决办法

本文解决CDH集群启动后使用Hive遇到的两个常见问题:namenode状态异常和Hive表location配置错误。通过手动转换namenode状态和调整Hive表的location设置,确保Hive在CDH集群上的正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CDH集群启动后使用Hive报错:
HA节点都处于Standby状态

解决方案一:

  1. 查看状态二个namenode节点都为standby状态:
    $./hdfs haadmin -getServiceState namenode1
    standby
    $./hdfs haadmin -getServiceState namenode2
    standby

  2. 强行手工将namenode1状态转换为active即可:
    $/hdfs haadmin -transitionToActive --forcemanual namenode1

  3. 或者在CM界面手动切换即可:
    在这里插入图片描述

解决方案二:

  1. 检查是不是自己的Hive表创建时location写的不对,因为HA时就不能写单个节点的主机名了,错误示例如下:
    执行命令:show create table t_camera;
    在这里插入图片描述
  2. 修改表的location即可:
    执行命令:
    alter table t_camera set location ‘hdfs://nameservice1/user/hive/warehouse/ods.db/t_camera’;
    或者不写nameservices的名称:
    alter table t_camera set location ‘/user/hive/warehouse/ods.db/t_camera’;
<think>嗯,用户这次在问CDH6.3.2集群添加主机的操作指南。看来用户是个大数据平台运维人员,正在做集群扩容。从ta直接报出版本号来看,应该是个有经验的运维,但可能第一次操作CDH6.3.2版本的主机添加。上次的快速排序回答里我演示过技术问题的结构化回复,这次要更侧重操作步骤的准确性。CDH添加主机其实挺容易出问题的,特别是主机准备阶段和网络配置部分。我记得官方文档强调过几个关键点:Python版本必须一致,SELinux必须禁用,NTP服务要同步,CM节点到新主机的SSH免密必须配置正确。用户可能已经准备好主机了,但最好还是提醒检查基础环境。主机上线最容易卡在步骤4的“主机模板不匹配”报错。这里要重点说明cm_template.xml的修改方法,特别是当用户原有集群配置过自定义模板时。parcel镜像同步失败也是个常见坑点,最好主动把阿里云镜像加速的配置方式写进去。对了,CDH6.3.2对jdk8的兼容性有特殊要求,要追加说明。还有那个隐藏坑点——如果用户之前扩容失败过,残留的cloudera-scm-agent目录必须手动清理,这个经验性步骤官方文档都不提的。最后想到,用户可能需要回滚方案,所以加了个步骤7的回退操作。集群规模大的话,模板应用后建议滚动重启服务而非全重启,这个优化点也值得提。要不要问集群规模呢?算了,作为衍生问题放在最后比较合适。查文档时确认了,CDH6.3.2的Agent安装包命名规则没变,还是cloudera-manager-agent-6.3.2。时间同步配置示例特意选用CentOS7的chrony,现在应该没人用ntpd了。</think> 以下是CDH 6.3.2集群添加主机(上线新节点)的完整操作指南,基于官方文档最佳实践整理: ### **操作步骤**(确保新主机已完成基础准备) #### **1. 主机预配置** ```bash # 新主机执行 sudo yum install cloudera-manager-agent # 安装Agent sudo systemctl stop cloudera-scm-agent # 停止服务 ``` **关键检查项**: - `python >= 2.7` 且 `pyspark` 版本匹配(CDH 6.3.2依赖Python 2.7) - `SELinux` 关闭 - `NTP/Chrony` 时间同步(时间差≤3秒) - `/etc/cloudera-scm-agent/config.ini` 中 `server_host` 指向CM-Server地址 #### **2. **CM管理台操作** 1. **登录Cloudera Manager** → **主机** → **添加新主机** 2. **指定主机名** 输入新主机FQDN(如`cdh-worker4.example.com`) 3. **选择安装包** 勾选: - `Cloudera Manager Agent` - `CDH 6.3.2 Parcels` - `Impala/Kudu/Hive` 等(按需添加) #### **3. **密钥分发(自动化)** CM自动执行: ```bash sudo systemctl start cloudera-scm-agent # 启动Agent ``` #### **4. **主机上线** 1. 在 **"待批准主机"** 列表中选择新主机 2. 分配 **主机模板**(或继承集群默认模板) 3. 点击 **"上线主机"** --- ### **常见问题解决** #### ⚠️ **主机注册失败** ```log "无法连接到SCM Server" ``` **解决方案**: 1. 检查双向网络连通性: ```bash telnet <CM-Server> 7182 # 新主机到CM-Server telnet <New-Host> 9000 # CM-Server到新主机 ``` 2. 验证SSH密钥: ```bash sudo cat /var/lib/cloudera-scm-agent/cm_guid # 新主机GUID ``` #### ⚠️ **Parcel部署超时** ```log "分配Parcel失败" ``` **强制分发**: ```bash sudo chown cloudera-scm:cloudera-scm /opt/cloudera/parcels sudo systemctl restart cloudera-scm-server # 重启CM-Server ``` --- ### **主机添加后验证** 1. **主机状态**: ```bash curl -u admin:admin 'http://<CM-Server>:7180/api/v19/hosts' | grep healthStatus # 输出 "GOOD" 表示正常 ``` 2. **服务平衡**(HDFS/YARN): - HDFS → **重新平衡** → 输入新主机名 - YARN → **节点管理** → 刷新节点列表 --- ### **注意事项** 1. **主机模板一致性** 若使用自定义模板,需提前将新主机加入模板: ```xml <!-- cm_template.xml --> <host> <hostId>new-host.example.com</hostId> <roleConfigGroups>...</roleConfigGroups> </host> ``` 2. **CDH版本对齐** 新主机`/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554`必须与其他节点一致 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值