You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hive集成Tez执行报错排查:主类缺失及AWS凭证问题解决

Hive+Tez+S3环境下的错误排查与解决

环境信息

  • Hadoop 3.3.5
  • Hive 3.1.3
  • Tez 0.10.2(适配Hadoop 3.3.5版本构建)
  • 数据存储于S3桶

问题1:Tez引擎启动失败,找不到主类

将Hive执行引擎从MR切换为Tez后,执行select count(*) from m1.t1立即报错,核心错误信息如下:

Error: Could not find or load main class org.apache.tez.dag.app.DAGAppMaster

注:MR引擎下该查询可正常运行。

临时调整

修改tez-site.xml,设置tez.use.cluster.hadoop-libs=true,Tez可正常启动YARN应用,但触发新的S3凭证加载错误。

问题2:S3凭证加载失败

调整tez.use.cluster.hadoop-libs为true后,查询启动后因S3权限认证失败终止,核心错误:

org.apache.hadoop.fs.s3a.auth.NoAuthWithAWSException: No AWS Credentials provided by TemporaryAWSCredentialsProvider SimpleAWSCredentialsProvider EnvironmentVariableCredentialsProvider IAMInstanceCredentialsProvider : com.amazonaws.SdkClientException: Unable to load AWS credentials from environment variables (AWS_ACCESS_KEY_ID (or AWS_ACCESS_KEY) and AWS_SECRET_KEY (or AWS_SECRET_ACCESS_KEY))

已在以下位置配置S3凭证但无效:

  • Hadoop的core-site.xml(配置fs.s3a.access.key、fs.s3a.secret.key)
  • Hive的hive-site.xml
  • 系统环境变量AWS_ACCESS_KEY_ID、AWS_SECRET_KEY

尝试将core-site.xml中所有fs.s3a相关属性复制到tez-site.xml,或在Hive会话内手动设置凭证,均无法解决问题。

最终解决方案

修改hive-site.xml,添加hive.conf.hidden.list属性,移除其中所有与S3凭证相关的配置项:

<property>
    <name>hive.conf.hidden.list</name>
    <value>javax.jdo.option.ConnectionPassword,hive.server2.keystore.password,fs.s3a.proxy.password,dfs.adls.oauth2.credential,fs.adl.oauth2.credential</value>
</property>

默认情况下,Hive会隐藏所有fs.s3a凭证相关配置,导致Tez无法获取这些参数。显式配置该属性并剔除S3凭证相关项后,Tez可正常加载凭证,查询执行恢复正常。


内容的提问来源于stack exchange,提问作者user21214141

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 23:50:33