在HDP Hue Pig UI中运行任何Pig作业时出错。错误:“请初始化HIVE_HOME”

时间:2014-04-21 21:34:17

标签: hadoop hive apache-pig hue hcatalog

当我尝试从Hue Pig UI启动Pig Script Job时,该过程启动一个作业,然后进度条在那里停留1-3分钟并最终全部变为红色,唯一输出为:“请初始化HIVE_HOME 。“

我试图运行的我的猪脚本来自Pig validation in the HDP installation manual

猪脚本:
A =使用PigStorage(':')加载'passwd';
B = foreach A生成\ $ 0作为id;将B存储到'/tmp/id.out';

我正在尝试在Hortonworks数据平台的Hue版本(v2.3根据他们的website)工作中获取Pig Script UI。我正在手动执行此操作,使用yum安装我需要的软件包并手动设置配置。我正在使用CentOS 6.4在Amazon AWS机器上工作。我关注this installation documentation

最初我认为我需要Oozie运行才能从Hue执行Pig Job,但是在遵循Hue日志时我看到它在执行Pig Script时启动了WebHCat,因此我安装并验证了WebHCat是通过访问http://$WebHCat.server.full.hostname:50111 / templeton / v1 / status并验证我收到了非错误的响应。因此,我完全相信WebHCat正常工作。我还必须注意,由于core-site.xml中的配置允许Hue用户在运行作业时将其作为hdfs用户,因此Hune用户正在运行WebHCat服务器,这是我之前遇到的错误试图在Hue UI中运行Pig Script。

到目前为止,我已将错误跟踪到实际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子句:         if [-d“/ usr / lib / hive”];然后           HIVE_HOME = / usr / lib中/蜂巢         其他           echo“请初始化HIVE_HOME”           退出-1         科幻 是错误源于何处,但我不明白为什么它没有认识到安装Hive的lib目录确实存在。

这是我被困的地方。我知道“/ usr / lib / hive”存在,因为我已经确认该目录存在于Hue,WebHCat和Pig都运行的机器上。我不知道如何调试这里出了什么问题。我考虑手动设置HIVE_HOME,但这可能没有实际意义,因为Pig没有认识到该目录存在于文件系统中,因此如果它稍后尝试访问代码中的路径就会出错。

此时我可能会遗漏一些明显的东西,但我非常感谢能得到的任何帮助。

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,但错误消息略有不同。这就是我修复它的方式。

你应该在/ etc / passwd中有一个“hue”用户。该用户的主目录应为“/ usr / lib / hue”。这是Hue安装期间分配的默认主目录。

  1. 为“hue”用户创建主目录。

    sudo mkdir /home/hue
    
  2. 更改目录权限

    sudo chown hue:hadoop /home/hue
    
  3. 将/ etc / passwd中的用户“hue”的主目录从“/ usr / lib / hue”更改为“/ home / hue”

    hue:x:1013:492:Hue:/home/hue:/bin/bash
    
  4. 就是这样。现在应该没事了。

答案 1 :(得分:0)

我通过删除" -useHCatlog"解决了类似的问题。来自" Pig脚本"下的de arguments列表的参数在HUE的Pig页面上的textarea。