繁体   English   中英

如何将 hive 辅助 jars 添加到 Dataproc 集群

[英]How to add hive auxiliary jars to Dataproc cluster

当您在 Dataproc 中启动 hive session 时,您可以添加位于 gcs 存储桶中的 jars。
add jar gs://my-bucket/serde.jar;

I don't want to have to add all the jars I need each time I start a hive session so I tried adding the jar paths to hive-site.xml in the hive.aux.jars.path property.

<property>
  <name>hive.aux.jars.path</name>
  <value>gs://my-bucket/serde.jar</value>
</property>

然后我在尝试启动 hive session 时遇到此错误。
Exception in thread "main" java.lang.IllegalArgumentException: Wrong FS: file://gs, expected: file:///

Is there a way to add custom jars that live in a gcs bucket to the hive classpath or would I have to copy the jars from my bucket and update hive.aux.jars.path each time I create a dataproc cluster?

*编辑
即使添加了以下属性并重新启动 hive 我仍然得到同样的错误。

  <property>
    <name>hive.exim.uri.scheme.whitelist</name>
    <value>hdfs,pfile,gs</value>
    <final>false</final>
  </property>

This is a known Hive bug ( HIVE-18871 ) - hive.aux.jars.path supports only local paths in Hive 3.1 and lower.

解决方法是使用Dataproc 初始化操作,将 jars 从 GCS 复制到所有 Dataproc 集群节点上的相同本地 FS 路径,并将此本地路径指定为hive.aux.jars.path的值。

更新

HIVE-18871 修复已移植回 Dataproc 1.3+ 映像,因此您可以将hive.aux.jars.path属性中的 GCS URI 与具有此修复的新 Dataproc 映像一起使用。

我想您还需要将属性hive.exim.uri.scheme.whitelist设置为白名单 gcs uri。

因此,在您的情况下,在创建 Dataproc 集群时,请设置属性

hive.aux.jars.path = gs://my-bucket/serde.jar
hive.exim.uri.scheme.whitelist = hdfs,pfile,gs

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM