Hive启动时遇到java.lang.NoClassDefFoundError: org/apache/tez/dag/api/SessionNotRunning报错

Hive启动的时候报错如下图所示:
在这里插入图片描述
因为这个Bug搞了三小时,在这里记录以下,避免下次踩坑。
在Hive启动的时候去配置启动引擎为tez,之后启动hive遇到错误:
java.lang.NoClassDefFoundError: org/apache/tez/dag/api/SessionNotRunning
显示会话服务无法开启。
解决方法:将tez和tez/lib下的jar包都复制到hive/lib目录下。
编辑hadoop-env.sh:

vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh

在该文件下添加如下内容:

export TEZ_HOME=/opt/module/tez
for jar in `ls $TEZ_HOME |grep jar`; do
    export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$TEZ_HOME/$jar
done
for jar in `ls $TEZ_HOME/lib`; do
    export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$TEZ_HOME/lib/$jar
done

最后再source更新一下:

source ~/.bashrc

不用重启hadoop集群。可以进入hive即可正常使用。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
根据提供的引用内容,这个误通常是由于缺少Tez依赖项导致的。Tez是Hadoop的一个高性能数据处理框架,Hive使用它来执行查询。为了解决这个问题,你可以尝试以下几个步骤: 1.检查Hive的配置文件hive-site.xml中是否正确配置了Tez相关的属性,例如tez.lib.uris和hive.execution.engine等。 2.检查Hive的classpath中是否包含了Tez相关的jar包,例如tez-api.jar和tez-runtime-internals.jar等。 3.检查Hadoop集群中是否正确安装了Tez,并且Tez相关的jar包是否已经上传到了HDFS上。 以下是一个可能的解决方案: 1.在hive-site.xml中添加以下属性: ```xml <property> <name>tez.lib.uris</name> <value>/path/to/tez.tar.gz</value> </property> <property> <name>hive.execution.engine</name> <value>tez</value> </property> ``` 其中,/path/to/tez.tar.gz是Tez的安装包路径。 2.将Tez相关的jar包添加到Hive的classpath中。可以通过以下命令将它们添加到Hive的classpath中: ```shell export HIVE_AUX_JARS_PATH=/path/to/tez-jars/* ``` 其中,/path/to/tez-jars是Tez的jar包所在的目录。 3.确保Tez已经正确安装并上传到了HDFS上。可以通过以下命令检查: ```shell hadoop fs -ls /path/to/tez ``` 如果Tez已经上传到了HDFS上,应该会看到类似于以下的输出: ```shell Found 1 items drwxr-xr-x - user supergroup 0 2021-08-01 12:00 /path/to/tez/tez.tar.gz ``` 如果Tez没有上传到HDFS上,可以使用以下命令将其上传: ```shell hadoop fs -put /path/to/tez.tar.gz /path/to/tez/ ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦里Coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值