• hive with tez:无法从链中的任何提供者加载aws凭据


    环境信息

    hadoop 3.1.0

    hive-3.1.3

    tez 0.9.1

    问题描述

    可以从hadoop命令行正确地访问s3a uri。我可以创建外部表和如下命令:

    1. create external table mytable(a string, b string) location 's3a://mybucket/myfolder/';
    2. select * from mytable limit 20;

    执行正确,但是

    select count(*) from mytable;

    失败日志:

    1. INFO : Compiling command(queryId=root_20230919030746_7b38e3c8-8429-4d45-8a01-343bd26d8f6e): select count(*) from lyb0
    2. INFO : Concurrency mode is disabled, not creating a lock manager
    3. INFO : Semantic Analysis Completed (retrial = false)
    4. INFO : Returning Hive schema: Schema(fieldSchemas:[FieldSchema(name:_c0, type:bigint, comment:null)], properties:null)
    5. INFO : Completed compiling command(queryId=root_20230919030746_7b38e3c8-8429-4d45-8a01-343bd26d8f6e); Time taken: 0.257 seconds
    6. INFO : Concurrency mode is disabled, not creating a lock manager
    7. INFO : Executing command(queryId=root_20230919030746_7b38e3c8-8429-4d45-8a01-343bd26d8f6e): select count(*) from lyb0
    8. INFO : Query ID = root_20230919030746_7b38e3c8-8429-4d45-8a01-343bd26d8f6e
    9. INFO : Total jobs = 1
    10. INFO : Launching Job 1 out of 1
    11. INFO : Starting task [Stage-1:MAPRED] in serial mode
    12. INFO : Subscribed to counters: [] for queryId: root_20230919030746_7b38e3c8-8429-4d45-8a01-343bd26d8f6e
    13. INFO : Session is already open
    14. INFO : Dag name: select count(*) from lyb0 (Stage-1)
    15. INFO : Status: Running (Executing on YARN cluster with App id application_1695092793092_0001)
    16. ----------------------------------------------------------------------------------------------
    17. VERTICES MODE STATUS TOTAL COMPLETED RUNNING PENDING FAILED KILLED
    18. ----------------------------------------------------------------------------------------------
    19. Map 1 container INITIALIZING -1 0 0 -1 0 0
    20. Reducer 2 container INITED 1 0 0 1 0 0
    21. ----------------------------------------------------------------------------------------------
    22. VERTICES: 00/02 [>>--------------------------] 0% ELAPSED TIME: 9.55 s
    23. ----------------------------------------------------------------------------------------------
    24. ERROR : Status: Failed
    25. ERROR : Vertex failed, vertexName=Map 1, vertexId=vertex_1695092793092_0001_3_00, diagnostics=[Vertex vertex_1695092793092_0001_3_00 [Map 1] killed/failed due to:ROOT_INPUT_INIT_FAILURE, Vertex Input: lyb0 initializer failed, vertex=vertex_1695092793092_0001_3_00 [Map 1], org.apache.hadoop.fs.s3a.AWSClientIOException: doesBucketExist on hivesql: com.amazonaws.AmazonClientException: No AWS Credentials provided by SimpleAWSCredentialsProvider : org.apache.hadoop.fs.s3a.CredentialInitializationException: Access key or secret key is unset: No AWS Credentials provided by SimpleAWSCredentialsProvider : org.apache.hadoop.fs.s3a.CredentialInitializationException: Access key or secret key is unset
    26. at org.apache.hadoop.fs.s3a.S3AUtils.translateException(S3AUtils.java:177)
    27. ……
    28. at java.lang.Thread.run(Thread.java:750)
    29. Caused by: com.amazonaws.AmazonClientException: No AWS Credentials provided by SimpleAWSCredentialsProvider : org.apache.hadoop.fs.s3a.CredentialInitializationException: Access key or secret key is unset
    30. at org.apache.hadoop.fs.s3a.AWSCredentialProviderList.getCredentials(AWSCredentialProviderList.java:139)
    31. ……
    32. at org.apache.hadoop.fs.s3a.Invoker.once(Invoker.java:109)
    33. ... 31 more
    34. Caused by: org.apache.hadoop.fs.s3a.CredentialInitializationException: Access key or secret key is unset
    35. at org.apache.hadoop.fs.s3a.SimpleAWSCredentialsProvider.getCredentials(SimpleAWSCredentialsProvider.java:75)
    36. at org.apache.hadoop.fs.s3a.AWSCredentialProviderList.getCredentials(AWSCredentialProviderList.java:117)
    37. ... 45 more
    38. ]
    39. ERROR : Vertex killed, vertexName=Reducer 2, vertexId=vertex_1695092793092_0001_3_01, diagnostics=[Vertex received Kill in INITED state., Vertex vertex_1695092793092_0001_3_01 [Reducer 2] killed/failed due to:OTHER_VERTEX_FAILURE]
    40. ERROR : DAG did not succeed due to VERTEX_FAILURE. failedVertices:1 killedVertices:1
    41. ERROR : FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.tez.TezTask. Vertex failed, vertexName=Map 1, vertexId=vertex_1695092793092_0001_3_00, diagnostics=[Vertex vertex_1695092793092_0001_3_00 [Map 1] killed/failed due to:ROOT_INPUT_INIT_FAILURE, Vertex Input: lyb0 initializer failed, vertex=vertex_1695092793092_0001_3_00 [Map 1], org.apache.hadoop.fs.s3a.AWSClientIOException: doesBucketExist on hivesql: com.amazonaws.AmazonClientException: No AWS Credentials provided by SimpleAWSCredentialsProvider : org.apache.hadoop.fs.s3a.CredentialInitializationException: Access key or secret key is unset: No AWS Credentials provided by SimpleAWSCredentialsProvider : org.apache.hadoop.fs.s3a.CredentialInitializationException: Access key or secret key is unset
    42. at org.apache.hadoop.fs.s3a.S3AUtils.translateException(S3AUtils.java:177)
    43. ……

    尝试将core-site.xml中的所有fs.s3a属性添加到tez-site.xml中,并在配置单元会话内设置fs,s3 a,access. key和fs.s3a.secret.key=,但仍出现相同错误。

    解决方法

    确保未在tez-site.xml中设置tez.use.cluster.hadoop-libs,或者如果设置了,则值应为false
    但是当设置为false时,tez无法运行。

    当设置为true时,得到了aws凭据错误,即使在每个可能的位置或环境变量中设置了它们。
    最终通过将这个属性添加到hive-site.xml中使它工作起来

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

    这是正确的解决方案。但是,只是让你知道,现在你暴露了S3密钥密码在各种日志文件。一些文件,知道如下;
    Hive-〉/logs//webhcat/webhcat.log.
    Hadoop -〉1个内存6个内存1个
    如果您有权访问源代码,则可以修改此方法,使其不在配置单元日志中生成上述属性。

    参考资料:

    https://www.saoniuhuo.com/question/detail-2512416.html

    https://www.saoniuhuo.com/question/detail-1939018.html

  • 相关阅读:
    如何掌握HEC-RAS建模方法与涉河建设项目防洪评价报告编制
    网络安全(黑客)自学
    C/C++语言100题练习计划 73——Error(二分答案算法实现)
    ECharts图表动态修改series显示隐藏
    坤坤音效键盘(Python实现)
    spring事务面试题
    1.2汉诺塔问题
    Dockerfile概念简介
    “新DeFi”生态的构建,流支付协议Zebec或厚积薄发
    A7-100T的图像处理开发板
  • 原文地址:https://blog.csdn.net/iamonlyme/article/details/133020230