我使用script-runner.jar运行aws emr pig作业,如下所述:http://docs.aws.amazon.com/elasticmapreduce/latest/developerguide/emr-hadoop-script.html
现在,我想连接Netflix的唇膏来监控我的脚本。我设置了服务器,在wiki中:https://github.com/netflix/lipstick/wiki/getting-started 我不太明白怎么做最后一步:
hadoop jar lipstick-console-[version].jar -Dlipstick.server.url=http://$LIPSTICK_URL
我应该用这个替换script-runner.jar吗?
另外,在wiki中完成构建过程后,我得到了3个不同的控制台jar:
lipstick-console-0.6-SNAPSHOT.jar
lipstick-console-0.6-SNAPSHOT-withHadoop.jar
lipstick-console-0.6-SNAPSHOT-withPig.jar
后两个jar的用途是什么?
更新:
我想我在进步,但似乎还是不起作用。
我在这里设置了PIG.NoTeCiTask.ListNead参数和口红服务器URL。在emr中有多种方法可以做到这一点。因为我使用的是ruby 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
接下来,我补充道 lipstick-console-0.6-SNAPSHOT.jar
到hadoop类路径。为此,我必须创建一个引导操作,如下所示:
bootstrap_actions:
- name: copy_lipstick_jar
script_bootstrap_action:
path: #s3 path to bootstrap_lipstick.sh
BooprthpLip Spk.SH的含量在哪里
# !/bin/bash
hadoop fs -copyToLocal s3n://wp-data-west-2/load_code/java/lipstick-console-0.6-SNAPSHOT.jar /home/hadoop/lib/
Bootstrap动作将唇膏罐复制到群集节点,以及 /home/hadoop/lib/
已经在hadoop类路径中(emr负责)。
它仍然不起作用,但我想我错过了一些真正的小。。。有什么好主意都可以。
谢谢!
1条答案
按热度按时间wribegjk1#
目前唇膏的主要类别是替代Pig的主要类别。在优化前后访问脚本的逻辑和物理计划是一种黑客行为(远不理想),否则根本无法访问这些计划。不幸的是,仅仅将lipstickppnl类注册为pig的ppnl是行不通的。你必须把口红当作Pig来做。
我没有试图在EMR上运行口红,但是看起来你需要使用自定义的JAR步骤,而不是脚本步骤。请参见此处的文档:http://docs.aws.amazon.com/elasticmapreduce/latest/developerguide/emr-launch-custom-jar-cli.html
jar名称将是
lipstick-console-0.6-SNAPSHOT-withHadoop.jar
. 它包含所有必要的依赖来运行口红。另外lipstick.server.url
需要设置。或者,你可以看看https://www.mortardata.com/ 在EMR上运行,并内置口红集成。