4

我将Hive/Hue/MapReduce 与 json Serde 一起使用。为了让它工作,我将json_serde.jar复制到每个集群节点上的几个 lib 目录中:

  • /opt/cloudera/parcels/CDH/lib/hive/lib
  • /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/lib
  • /opt/cloudera/parcels/CDH/lib/hadoop/lib
  • /opt/cloudera/parcels/CDH/lib/hadoop-0.20-mapreduce/lib
  • ...

在集群的每次 CDH 更新中,我都必须再次执行此操作。有没有更优雅的方式让集群中的 Serde 分布是自动的并且可以抵抗更新

4

2 回答 2

4

如果使用HiveServer2(Cloudera 5.0+ 中的默认值),则以下配置将在整个集群中运行,而无需将 jar 复制到每个节点。

在您的hive-site.xml配置文件中,或者如果您在“ hive-site.xml 的 HiveServer2 高级配置片段(安全阀) ”配置框中使用 Cloudera Manager

<property>
 <name>hive.aux.jars.path</name>
 <value>/user/hive/aux_jars/hive-serdes-1.0-snapshot.jar</value>
</property>

然后在您的 HDFS 文件系统 (/user/hive/aux_jars) 中创建目录并将 jar 文件放入其中。如果您正在运行 HUE,您可以通过 Web UI 执行此部分,只需单击右上角的文件浏览器

于 2014-08-15T17:20:22.133 回答
1

这取决于 Hue 的版本以及是否使用 Beeswax 或 HiveServer2:

于 2013-10-02T16:34:32.230 回答