Hive On Spark报错:Failed to execute spark task, org.apache.hadoop.hive.ql.metadata.HiveException

Hive On Spark报错:Failed to execute spark task, org.apache.hadoop.hive.ql.metadata.HiveException
我的问题是因为版本不兼容。
HIVE | SPARK
3.0.x | 2.3.0
2.3.x | 2.0.0
2.2.x | 1.6.0
2.1.x | 1.6.0
2.0.x | 1.5.0
1.2.x | 1.3.1
1.1.x | 1.2.0

严格按照这个执行。

基于CM搭建的CDH集群之hive组件升级过程(hive1.1.0升级到hive-3.0.0且确保纳入CM管理)

1、在hive1.1.0版本下创建lib300目录

cd /opt/cloudera/parcels/CDH/lib/hive;
mkdir lib300

2、下载hive1.1.0版本,并将该版本lib下所有文件拷贝到lib300中

3、修改/opt/cloudera/parcels/CDH/lib/hive/bin/hive中HIVE_LIB变量

HIVE_LIB=${HIVE_HOME}/lib300

4、更新hadoop上jline jar包,并删除老的jlien jar包,然后进行软连接

rm -rf jline-0.9.94.jar  
ln -s /opt/cloudera/parcels/CDH/lib/hive/lib121/jline-2.12.jar /opt/cloudera/parcels/CDH/lib/hadoop-yarn/lib/jline-2.12.jar

5、启动hive相关服务(或者通过CM重启所有服务)

6、beeline(!connect jdbc:hive2://localhost:10000) 登录spark hiveserver2进行验证(或者通过hive登录)

### 解决方案概述 当遇到 `HiveException` 导致无法实例化 `SessionHiveMetaStoreClient` 的问题时,通常是因为 Hive 配置文件中的参数设置不正确、依赖库版本冲突或者 MetaStore 服务未正常运行等原因引起的。以下是可能的原因分析以及解决方案: --- #### 可能原因一:配置文件错误 如果 Hive 的核心配置文件(如 `hive-site.xml` 或者 Hadoop 的 `core-site.xml` 和 `hdfs-site.xml`)存在路径或参数错误,则可能导致客户端无法连接到 MetaStore。 **解决方法** 确认以下关键参数是否已正确定义并指向正确的地址和端口[^1]: ```xml <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/metastore?createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.cj.jdbc.Driver</value> </property> <property> <name>hive.metastore.uris</name> <value>thrift://localhost:9083</value> </property> ``` --- #### 可能原因二:Metastore 服务未启动 如果 Metastore 服务未启动或不可访问,也会引发此异常。 **解决方法** 通过命令行检查 MetaStore 是否正在运行,并尝试重新启动它: ```bash # 检查状态 sudo netstat -anp | grep 9083 # 启动 MetaStore nohup hive --service metastore & ``` 确保 Thrift 协议监听的端口号与配置一致。 --- #### 可能原因三:JAR 文件缺失或版本冲突 某些情况下,由于 JAR 文件丢失或不同组件之间的版本兼容性问题,可能会导致类加载失败。 **解决方法** 验证是否存在必要的驱动程序及其版本匹配情况。例如 MySQL 连接器应放置于 `$HIVE_HOME/lib/` 下面: ```bash ls $HIVE_HOME/lib/mysql-connector-java*.jar ``` 如果没有找到对应的 JDBC 驱动包,请下载适合当前数据库类型的最新稳定版并放入指定目录下。 --- #### 可能原因四:权限不足 操作系统层面可能存在文件读写权限不足的情况,这会阻止 Hive 访问其所需的资源。 **解决方法** 赋予足够的权限给相关数据存储位置及日志记录区域: ```bash chmod -R 755 /path/to/hive/data/directory/ chown -R hive:hive /path/to/hive/logs/ ``` --- #### 示例代码片段 下面是一个简单的脚本用于测试基本功能是否恢复正常: ```python from pyhive import hive conn = hive.connect(host='localhost', port=10000, username='your_username') cursor = conn.cursor() cursor.execute('SHOW DATABASES;') for result in cursor.fetchall(): print(result) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值