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

时间:2013-05-02 13:21:24

标签: hadoop hive hadoop-streaming

我正在尝试将自定义环境变量传递给Hive Transform中使用的可执行文件(下例中的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 个答案:

答案 0 :(得分:2)

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

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

然后在查询中使用此脚本

USING 'wrapper.sh'

my-mapper.script将在环境中看到 FOO (值为#34; boo")。

答案 1 :(得分:0)

你在找这样的东西吗?

% hive -hiveconf CURRENT_DATE='2012-09-16' -f test.hql