在AWS EMR上涂上口红的HadoopPig

svgewumm  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(437)

我使用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负责)。
它仍然不起作用,但我想我错过了一些真正的小。。。有什么好主意都可以。
谢谢!

wribegjk

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上运行,并内置口红集成。

相关问题