当我尝试从Hue Pig UI启动Pig脚本作业时,该过程将启动一个作业,然后进度条在其中停留1-3分钟,最后全部变成红色,唯一的输出是:“请初始化HIVE_HOME。”
我尝试运行的Pig脚本是Pig validation in the HDP installation manual中的一个。
pig 脚本:
A =使用PigStorage(':')加载'passwd';
B = foreach A生成\ $ 0作为id;将B存储到'/tmp/id.out';
我正在尝试使Hortonworks Data Platform的Hue版本(根据其website为v2.3)中的Pig脚本UI工作。我正在手动执行此操作,使用yum安装所需的软件包并手动设置配置。我正在使用CentOS 6.4在Amazon AWS机器上工作。我正在关注this installation documentation。
最初,我认为我需要启动并运行Oozie才能从Hue执行Pig作业,但是在跟踪Hue日志时,我发现它在执行Pig脚本时正在启动WebHCat,因此我安装并验证了WebHCat是否正在运行到http://$WebHCat.server.full.hostname:50111 / templeton / v1 / status并验证我收到了无错误的响应。因此,我完全相信WebHCat可以正常工作。我还必须注意,由于core-site.xml中的配置,因此Hue用户正在运行WebHCat服务器,这允许Hue用户在运行作业时冒充hdfs用户,这是我之前遇到的一个错误试图在Hue UI中运行Pig脚本。
到目前为止,我已经在实际的Pig program file中将错误跟踪到了代码块。有问题的代码块是:
# CLASSPATH initially contains $PIG_CONF_DIR
CLASSPATH="${PIG_CONF_DIR}"
CLASSPATH=${CLASSPATH}:$JAVA_HOME/lib/tools.jar
if [ "$includeHCatalog" == "true" ]; then
# need to provide the hcatalog jar file path as well as
# the location of the hive jars on which hcatalog depends
hiveMetaStoreJar=hive-metastore-*.jar
thriftJar=libthrift-*.jar
hiveExecJar=hive-exec-*.jar
fbJar=libfb303-*.jar
jdoECJar=jdo*-api-*.jar
slfJar=slf4j-api-*.jar
hbaseHiveJar=hive-hbase-handler-*.jar
if [ "$HIVE_HOME" == "" ]; then
if [ -d "/usr/lib/hive" ]; then
HIVE_HOME=/usr/lib/hive
else
echo "Please initialize HIVE_HOME"
exit -1
fi
fi
此代码块引起问题的事实非常令人困惑,并且错误对我自己也无法追溯。
我知道这个if-else子句:
如果[-d“/ usr / lib / hive”];然后
HIVE_HOME = / usr / lib / hive
其他
回声“请初始化HIVE_HOME”
-1号出口
科幻
这是错误的根源,但我不明白为什么它没有意识到安装Hive的lib目录确实存在。
这就是我被困住的地方。我知道存在“/ usr / lib / hive”,因为我已经验证了该目录在所有运行Hue,WebHCat和Pig的计算机上是否存在。我不知道如何调试这里出了什么问题。我考虑过手动设置HIVE_HOME,但是由于Pig无法识别该目录存在于文件系统中,因此如果尝试稍后在代码中访问该路径,可能会出现问题,因此这可能是没有意义的。
在这一点上,我可能会遗漏一些明显的东西,但是我将不胜感激。
最佳答案
我有相同的问题,但错误消息略有不同。这就是我修复它的方式。
您应该已经在/ etc / passwd中拥有一个“hue”用户。该用户的主目录应为“/ usr / lib / hue”。这是Hue在安装过程中分配的默认主目录。
sudo mkdir /home/hue
sudo chown hue:hadoop /home/hue
hue:x:1013:492:Hue:/home/hue:/bin/bash
而已。现在应该没事了。
关于hadoop - 在HDP Hue Pig UI中运行任何Pig作业时出错。错误: “Please initialize HIVE_HOME”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23206419/