hadoop - 将环境变量传递给 Hive Transform 或 MapReduce

标签 hadoop hive hadoop-streaming

我正在尝试将自定义环境变量传递给 Hive 转换中使用的可执行文件(下面示例中的 my-mapper.script) 例如:

SELECT
   TRANSFORM(x, y, z)
   USING 'my-mapper.script'
FROM
(
   SELECT
      x, y, z
   FROM
      table
)

我知道在 Hadoop 流中这可以使用

来实现
-cmdenv EXAMPLE_DIR=/home/example/dictionaries/

但我不知道如何在 Hive Transform/MapReduce 中执行此操作。

有什么想法吗?

最佳答案

您可以使用简单的 2 行 bash 脚本包装脚本来设置环境。例如

#!/bin/sh
export FOO=boo
my-mapper.script

然后在查询中使用这个脚本

USING 'wrapper.sh'

my-mapper.script 将在环境中看到 FOO(值为“boo”)。

关于hadoop - 将环境变量传递给 Hive Transform 或 MapReduce,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16339123/

相关文章:

hadoop - Apache Shark 0.9.1 无法连接到 HDFS?

hadoop - 在 PIG 中加载多个文件

hadoop - 在HDFS上存储graphx顶点并稍后加载

Hadoop 流 - 从 reducer 输出中删除尾随选项卡

Python MapReduce Hadoop 流作业需要 3 个输入文件?

hadoop - Hortonworks的Cloudera Hue替代品

java - Hive 无法初始化类 java.net.NetworkInterface

hadoop - Hive CREATE TABLE LIKE 另一个表设置分区键

hadoop - Map Reduce 输出到 CSV 还是我需要键值?

hadoop - Hive:无法在具有 100 个或更多分区列的表中插入数据错误:在最大长度为 767 的列 "PART_NAME"中