0

Я бег в работу AWS ОГО Pig с помощью сценария-runner.jar, как описано здесь: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-hadoop-script.htmlRun Свинья с помадой на AWS ЭХ

Теперь я хочу, чтобы подключить Netflix»Lipstick контролировать мои сценарии. Я создал сервер, а в вики здесь: https://github.com/Netflix/Lipstick/wiki/Getting-Started я не могу вполне понять, как сделать последний шаг:

hadoop jar lipstick-console-[version].jar -Dlipstick.server.url=http://$LIPSTICK_URL 

Должен ли я заменить скрипт-runner.jar с этим?

Кроме того, после выполнения процесса сборки в вики я в конечном итоге с 3-мя различными консольных банки:

lipstick-console-0.6-SNAPSHOT.jar 
lipstick-console-0.6-SNAPSHOT-withHadoop.jar 
lipstick-console-0.6-SNAPSHOT-withPig.jar 

Какова цель последних двух банок?

UPDATE:

Я думаю, что я делаю успехи, но он все еще не похоже на работу.

  1. я установить параметр pig.notification.listener, как это описано сервера URL here и помады. В EMR существует несколько способов сделать это. Так как я использую рубин API, я должен был указать шаг

    hadoop_jar_step: 
        jar: 's3://elasticmapreduce/libs/script-runner/script-runner.jar' 
        properties: 
        - pig.notification.listener.arg: com.netflix.lipstick.listeners.LipstickPPNL 
        - lipstick.server.url: http://pig_server_url 
    
  2. Далее я добавил lipstick-console-0.6-SNAPSHOT.jar к Hadoop классов. Для этого я должен был создать действие самозагрузки следующим образом:

    bootstrap_actions: 
        - name: copy_lipstick_jar 
        script_bootstrap_action: 
         path: #s3 path to bootstrap_lipstick.sh 
    

    , где содержание bootstrap_lipstick.sh является

    #!/bin/bash                                     
    hadoop fs -copyToLocal s3n://wp-data-west-2/load_code/java/lipstick-console-0.6-SNAPSHOT.jar /home/hadoop/lib/ 
    

копии самозагрузки действий банка помады, чтобы узлы кластера, и /home/hadoop/lib/ уже находится в wayopop classpath (EMR позаботится об этом).

Это все еще не работает, но я думаю, что мне не хватает чего-то действительно незначительного ... Любые идеи оценены.

Спасибо!

ответ

2

В настоящее время основной класс губной помады является заменой на основной класс свиней. Это взлом (и далеко не идеальный), чтобы иметь доступ к логическим и физическим планам для вашего скрипта до и после оптимизации, которые просто недоступны в противном случае. Как таковой, к сожалению, не будет работать, чтобы просто зарегистрировать класс LipstickPPNL в качестве PPNL для Pig. Вы должны запустить Lipstick Main, как будто это Pig.

Я не пробовал использовать губную помаду для EMR, но похоже, вам понадобится использовать настраиваемый шаг jar, а не шаг сценария. См. Документы здесь: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-launch-custom-jar-cli.html

Название баннера будет lipstick-console-0.6-SNAPSHOT-withHadoop.jar. Он содержит все необходимые зависимости для запуска губной помады. Кроме того, необходимо установить lipstick.server.url.

Кроме того, вы можете взглянуть на https://www.mortardata.com/, который работает на EMR и имеет встроенную интеграцию помады.