cdh6.3.2升级hive至3.x后登陆HiveServer2连接失败

一、错误现象

后台日志

Error: Could not open client transport with JDBC Uri: jdbc:hive2://hadoop105:10000: Failed to open new session: java.lang.IllegalArgumentException: Cannot modify hive.query.redaction.rules at runtime. It
is not in list of params that are allowed to be modified at runtime (state=08S01,code=0)

HiveServer2日志

[HiveServer2-Handler-Pool: Thread-55]: Error opening session:
org.apache.hive.service.cli.HiveSQLException: Failed to open new session: java.lang.IllegalArgumentException: Cannot modify hive.query.redaction.rules at runtime. It is not in list of params that are allowed to be modified at runtime
at org.apache.hive.service.cli.session.SessionManager.createSession(SessionManager.java:420) ~[hive-service-2.1.1-cdh6.3.2.jar:2.1.1-cdh6.3.2]

二、 解决方案

修改/opt/cloudera/parcels/CDH/lib/hive/conf/目录下的hive环境变量文件hive-env.sh,注释export HIVE_OPTS配置(集群所有机器都要修改)<

<think>好的,我现在要帮助用户解决在CDH 6.3.2中将Hive升级3.1版本的问题。首先,我需要回顾用户提供的引用内容,看看有哪些相关的步骤和注意事项。 根据引用[1],用户提到了解压Hive 3.1.3的包,备份原Hive目录,然后替换相关文件。步骤包括备份/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib下的hive目录,然后替换成新版本。这可能涉及到文件替换和配置更新。但需要注意,直接替换文件是否会影响其他依赖Hive的服务,引用[3]提到所有底层用到Hive的服务可能需要更新jar包,所以升级后可能需要检查相关服务,比如Hue、Impala等是否兼容。 引用[2]提到了Hadoop版本是3.0.0-cdh6.3.2,而用户想升级Hive 3.1.1,需要确认兼容性。可能需要检查Hive 3.1与CDH 6.3.2Hadoop版本是否兼容。此外,用户需要准备正确的依赖,比如protobuf版本,可能需要安装特定版本的库,比如protobuf-2.5.0,这可能会影响Hive的运行。 引用[4]讨论了Hive UDF的配置,升级后可能需要重新部署UDF,尤其是当使用多个HS2实例时,需要确保所有实例都更新了UDF的jar包,并重新创建函数。这提示在升级后需要重新处理UDF相关配置,可能涉及到HDFS路径的更新。 引用[5]展示了通过hive -e导出数据的方法,升级后需要确认Hive CLI或Beeline的兼容性,确保命令行工具正常工作,不会因为版本变化导致语法或执行错误。 接下来,我需要整理升级步骤。首先,下载正确的Hive 3.1.3包,解压。然后备份原有的Hive目录,替换新文件。这可能包括替换lib目录中的jar包和其他资源。需要停止Hive服务,进行替换,然后重启。但CDH通常通过Parcel管理服务,直接替换文件可能不符合标准流程,但用户提供的引用[1]显示他们直接替换了文件,可能需要确认这种方式是否可行,或者是否有更好的方法,比如使用自定义Parcel。 另外,需要处理配置文件的更新,Hive 3.1可能有新的配置项或废弃的旧配置,需要对比新旧版本的hive-site.xml,调整参数。同时,元数据库的升级是关键步骤,Hive 3.x可能需要元数据迁移,比如运行schematool来升级元数据库,如引用[2]提到的可能需要运行schematool -upgradeSchema。这一步非常重要,否则元数据不兼容会导致Hive无法启动。 还需要考虑Hive的依赖组件,比如HDFS、YARN、Tez等的兼容性。如果Hive 3.1需要更高版本的Tez,可能需要同时升级Tez。同时,检查HiveServer2、Metastore服务是否配置正确,特别是如果使用高可用或安全认证,如Kerberos,需要确保配置无误。 注意事项方面,升级前必须备份元数据库,防止升级失败导致数据丢失。测试环境先行验证,确保所有查询和UDF正常工作。升级后需重启相关服务,并监控日志排查错误。另外,引用[3]提到其他服务可能需要更新jar包,比如Hue或Impala,需要检查它们的兼容性,必要时升级或调整配置。 可能的问题包括版本冲突,比如Hive 3.1依赖的库与CDH 6.3.2其他组件不兼容,此时可能需要手动解决依赖,或者寻找适配的Hive版本。此外,权限问题,新版本Hive可能对HDFS目录的权限有不同要求,需要调整目录权限,如/tmp/hive可能需要新的ACL设置。 总结步骤大致为:准备环境,备份,替换文件,更新配置,升级元数据,处理依赖服务,验证测试。同时,注意事项包括兼容性检查、备份、测试环境验证、处理UDF和监控日志。</think>### CDH 6.3.2 升级 Hive3.1 版本的步骤与注意事项 #### **一、升级步骤** 1. **环境准备** - 下载 Hive 3.1.3 安装包: ```bash wget https://downloads.apache.org/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz ``` - 解压并检查文件完整性: ```bash tar -zxvf apache-hive-3.1.3-bin.tar.gz ``` 2. **备份原 Hive 组件** - 停止 CDH 集群中所有 Hive 相关服务(HiveServer2、Metastore 等)。 - 备份原 Hive 目录(路径可能因 CDH 版本略有差异): ```bash cd /opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib cp -r hive/ hive_backup # 备份原文件[^1] ``` 3. **替换 Hive 文件** - 将新版本 Hive 文件复制到 CDH 目录: ```bash cp -r apache-hive-3.1.3-bin/* /opt/cloudera/parcels/CDH-6.3.2/lib/hive/ ``` - 确保权限与原有文件一致: ```bash chown -R cloudera:cloudera /opt/cloudera/parcels/CDH-6.3.2/lib/hive ``` 4. **元数据库升级** - 使用 Hive 3.1 的 `schematool` 升级元数据(需提前备份元数据库): ```bash schematool -dbType mysql -upgradeSchema ``` - 验证元数据版本: ```bash schematool -dbType mysql -info ``` 5. **配置更新与依赖检查** - 修改 `hive-site.xml`,确保以下关键配置兼容: ```xml <property> <name>hive.metastore.schema.verification</name> <value>true</value> <!-- 强制校验元数据版本 --> </property> ``` - 检查 Hadoop 3.0.0-cdh6.3.2Hive 3.1 的兼容性[^2],必要时更新依赖库(如 Guava、Protobuf)。 6. **服务重启与验证** - 通过 Cloudera Manager 重启 Hive 服务。 - 执行基础功能测试: ```sql SHOW DATABASES; -- 验证元数据连通性 CREATE TABLE test (id INT); -- 验证写入功能 ``` --- #### **二、注意事项** 1. **兼容性问题** - Hive 3.1 默认使用 Tez 作为执行引擎,需确保 CDH 6.3.2 中 Tez 版本兼容(建议 Tez 0.10.1 以上)。 - 若使用 Impala,需验证 Impala 与 Hive 3.1 的兼容性(Impala 可能需升级至特定版本)[^3]。 2. **UDF 与外部依赖** - 升级后需重新注册 UDF,尤其是通过 HDFS 共享的 UDF: ```sql CREATE FUNCTION my_udf AS &#39;com.example.udf.MyUDF&#39; USING JAR &#39;hdfs:///udfs/myudf.jar&#39;; -- 需更新路径[^4] ``` 3. **数据迁移与备份** - 若需跨 CDH 集群迁移数据,可使用 `hive -e "SELECT * FROM table" > data.txt` 导出基础数据[^5]。 - **务必提前备份元数据库**(如 MySQL 或 PostgreSQL),防止升级失败导致数据丢失。 4. **日志与排错** - 监控 HiveServer2 和 Metastore 日志: ```bash tail -f /var/log/hive/hiveserver2.log # 实时查看错误信息 ``` --- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值