名称为的HiveConf不存在

fnvucqvd  于 2022-11-05  发布在  Hive
关注(0)|答案(1)|浏览(209)

我已经创建了一个EMR集群,并在我的spark配置中指定了以下内容:

hive.metastore.glue.role.arn: arn:aws:iam::omitted:role/EMR_DefaultRole

我可以确认已从AWS中的EMR控制台正确设置了该值:

在我的作业运行逻辑中,我执行

spark.sql("show databases").show()

这将生成以下日志:

22/10/22 01:18:18 WARN HiveConf: HiveConf of name hive.metastore.glue.role.arn does not exist
22/10/22 01:18:18 ERROR AWSGlueClientFactory: Unable to build AWSGlueClient: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
22/10/22 01:18:18 WARN Hive: Failed to access metastore. This class should not accessed in runtime.
org.apache.hadoop.hive.ql.metadata.HiveException: MetaException(message:Unable to build AWSGlueClient: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException)
    at org.apache.hadoop.hive.ql.metadata.Hive.getAllDatabases(Hive.java:1237)
    at org.apache.hadoop.hive.ql.metadata.Hive.reloadFunctions(Hive.java:175)
    at org.apache.hadoop.hive.ql.metadata.Hive.<clinit>(Hive.java:167)
    at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:503)
    at org.apache.spark.sql.hive.client.HiveClientImpl.newState(HiveClientImpl.scala:183)
    at org.apache.spark.sql.hive.client.HiveClientImpl.<init>(HiveClientImpl.scala:117)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
...

看起来我的Glue客户机无法被示例化,因为在我的conf中找不到glue角色ARN。
我真的非常感谢你在这方面的一些想法,或者任何调试建议。任何有帮助的东西--提前感谢:)

v09wglhw

v09wglhw1#

尝试使用hive.metastore.client.factory.class属性将com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory类设置为元存储客户机工厂。
有关使用代码的配置的完整示例,请参阅Metastore configuration文档页;使用spark-hive-site分类的配置,请参阅Use the AWS Glue Data Catalog as the metastore for Spark SQL页。另外,请注意,在第一种情况下,您需要在属性名称前加上spark.hadoop.前缀。

相关问题