EmrActivity的输入/输出 - AWS Data Pipeline

时间:2017-03-22 20:45:10

标签: amazon-web-services apache-spark emr amazon-emr amazon-data-pipeline

我正在尝试使用Data Pipeline来运行Spark应用程序。如何在Spark应用程序中访问我为EmrActivity指定的输入/输出(S3DataNode)?

我的问题与此类似 - https://forums.aws.amazon.com/message.jspa?messageID=507877

早些时候我曾经将输入和输出作为参数传递给Spark应用程序。

由于

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。关于此,有非常有限的文档。这是我的理解:

  1. 您为EmrActivity指定inputoutput。这将创建数据节点和活动之间的依赖关系。

  2. 在EmrActivity中,您可以像这样引用输入源:#{input.directoryPath},#{output.directoryPath}

  3. 示例:

        ... 
        {
          "name": "Input Data Node",
          "id": "inputDataNode",
          "type": "S3DataNode",
          "directoryPath": "s3://my/raw/data/path"
        },
        {
          "name": "transform",
          "id": "transform",
          "type": "EmrActivity",          
          "step": [
            "s3://us-east-1.elasticmapreduce/libs/script-runner/script-runner.jar,s3://my/transform/script.sh,#{input.directoryPath},#{output.directoryPath}"
          ],
          "runsOn": {
            "ref": "emrcluster"
          },
          "input": {
            "ref": "inputDataNode"
          },
          "output": {
            "ref": "outputDataNode"
          }
        },
        {
          "name": "Output Data Node",
          "id": "outputDataNode",
          "type": "S3DataNode",           
          "directoryPath": "s3://path/to/output/"
        },
        ...