Запуск Свинья на Tez на Amazon EMR-4

Я пытаюсь запустить свинью на Tez на Amazon EMR 4.5.0. Конфигурация работает без Tez, я просто пытаюсь заставить его работать на Tez.

Для создания кластера (из командной строки) мы используем (TEZ_VERSION определен как 0.5.2):

--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:

--configurations file://pig_tez_classification.json

Содержит:

[
  {
    "Classification": "hadoop-env",
    "Properties": {

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

        ]
      }
    ]
  }
]

PIG_CLASSPATH необходим для предотвращения этой ошибки:

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 необходима для предотвращения этой ошибки:

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 станет доступным?

После всего этого я все еще получаю эту ошибку:

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)

Попытка с версией 0.8.2 tez дает:

ERROR org.apache.pig.backend.hadoop.executionengine.tez.TezJob  - Cannot submit DAG
org.apache.tez.dag.api.SessionNotRunning: TezSession has already shutdown

Который, кажется, из-за разницы в используемой версии tez, потому что это все еще печатает

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

Так кто-нибудь знает, как получить свинью на Tez на Amazon EMR (какие версии) работает?

1 ответ

Я успешно запускаю его с emr-4.4.0. Однако мне не удалось заставить pig работать правильно с tar.gz, загруженным в HDFS. Вместо этого мне пришлось распаковать архив и загрузить все отдельные файлы, а затем установить tez.lib.uris на hdfs:///apps/tez-0.8.2,hdfs:///apps/tez-0.8.2/lib

Другие вопросы по тегам