首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Amazon EMR-4上的Tez上运行Pig

在Amazon EMR-4上的Tez上运行Pig
EN

Stack Overflow用户
提问于 2016-04-15 20:13:05
回答 1查看 370关注 0票数 1

我正尝试在amazon emr 4.5.0的tez上运行pig。配置在没有tez的情况下工作,我只是想让它在Tez上工作。

为了创建集群(从命令行),我们使用(TEZ_VERSION被定义为0.5.2):

代码语言:javascript
复制
--bootstrap-actions Path=s3://support.elasticmapreduce/tez/bigtop/install-tez.rb,Args=[-v,$TEZ_VERSION,--tez-site,tez.lib.uris=s3://support.elasticmapreduce/tez/$TEZ_VERSION/tez-$TEZ_VERSION-minimal.tar.gz]

此外,我还覆盖了PIG_CLASSPATH:

代码语言:javascript
复制
--configurations file://pig_tez_classification.json

包含:

代码语言:javascript
复制
[
  {
    "Classification": "hadoop-env",
    "Properties": {

    },
    "Configurations": [
      {
        "Classification": "export",
        "Properties": {
          "PIG_CLASSPATH": "/etc/tez/conf"
        },
        "Configurations": [

        ]
      }
    ]
  }
]

需要PIG_CLASSPATH来防止此错误:

代码语言:javascript
复制
ERROR org.apache.pig.backend.hadoop.executionengine.tez.TezJob  - Cannot submit DAG
org.apache.tez.dag.api.TezUncheckedException: Invalid configuration of tez jars, tez.lib.uris is not defined in the configuration

为了防止此错误,需要覆盖tez.lib.uris:

代码语言:javascript
复制
ERROR org.apache.pig.backend.hadoop.executionengine.tez.TezJob (PigTezLauncher-0): Cannot submit DAG
java.io.FileNotFoundException: File does not exist: hdfs://ip-172-31-3-207.eu-west-1.compute.internal:8020/apps/tez/0.5.2/tez-0.5.2-minimal.tar.gz

看起来安装脚本将tar.gz文件写入到hdfs中的正确位置,但是当我稍后通过ssh登录时,该文件不在那里。我认为在EMR-4中,引导操作是在不同的时间运行的,那么在hdfs可用之前呢?

在所有这些之后,我仍然得到这个错误:

代码语言:javascript
复制
WARN  org.apache.pig.backend.hadoop.executionengine.tez.TezJob  - Exception while gathering stats
java.lang.NullPointerException
    at org.apache.pig.tools.pigstats.tez.TezDAGStats.accumulateStats(TezDAGStats.java:191)
    at org.apache.pig.tools.pigstats.tez.TezPigScriptStats.accumulateStats(TezPigScriptStats.java:180)
    at org.apache.pig.backend.hadoop.executionengine.tez.TezJob.run(TezJob.java:194)
    at org.apache.pig.backend.hadoop.executionengine.tez.TezLauncher$1.run(TezLauncher.java:167)

尝试使用tez版本0.8.2会产生以下结果:

代码语言:javascript
复制
ERROR org.apache.pig.backend.hadoop.executionengine.tez.TezJob  - Cannot submit DAG
org.apache.tez.dag.api.SessionNotRunning: TezSession has already shutdown

这似乎是由于使用的tez版本的不同,因为它仍然打印出来:

代码语言:javascript
复制
INFO  org.apache.pig.tools.pigstats.tez.TezPigScriptStats  - Script Statistics:

       HadoopVersion: 2.7.2-amzn-0                                                                                        
          PigVersion: 0.14.0-amzn-0                                                                                       
          TezVersion: 0.5.2                                                                                               
              UserId: hadoop

那么,有人知道如何让pig on tez on amazon emr (无论是什么版本)运行吗?

EN

回答 1

Stack Overflow用户

发布于 2016-04-16 00:07:53

我用emr-4.4.0成功地运行了它。然而,我无法让pig与上传到HDFS的tar.gz正常工作。相反,我必须解压tarball并上传所有单独的文件,然后将tez.lib.uris设置为hdfs:/apps/tez-0.8.2,hdfs:/apps/tez-0.8.2/lib

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36646838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档