0

我使用腳本runner.jar運行的AWS EMR豬的工作如下所述:http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-hadoop-script.html運行豬用口紅在AWS EMR

現在,我想連上Netflix的脣膏來監視我的腳本。我設置服務器,並在維基這裏: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參數如所描述here和口紅服務器URL。在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/已經在hadoop classpath中(EMR負責)。

它仍然無法正常工作,但我認爲我錯過了一些非常小的事情......任何想法都會被讚賞。

謝謝!

回答

2

目前口紅的主類是豬的主類替代品。這是一種破解(而且遠非理想),以便在優化之前和之後訪問腳本的邏輯和物理計劃,這些計劃根本無法訪問。因此,不幸的是,僅僅將LipstickPPNL類註冊爲豬的PPNL是不行的。你必須像口交豬一樣運行口紅。

我還沒有嘗試在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上運行並且具有內置的脣膏集成功能。