我有一個簡單的DataPipeline作業,它只有一個EmrActivity,只有一個步驟嘗試執行我的配置單元腳本s3桶。AWS Datapipeline,運行配置單元腳本的EmrActivity步驟立即失敗,'沒有這樣的文件或目錄'
爲EmrActivity的配置是這樣的:
{
"name" : "Extract and Transform",
"id" : "HiveActivity",
"type" : "EmrActivity",
"runsOn" : { "ref" : "EmrCluster" },
"step" : ["command-runner.jar,/usr/share/aws/emr/scripts/hive-script --run-hive-script --args -f s3://[bucket-name-removed]/s1-tracer-hql.q -d INPUT=s3://[bucket-name-removed] -d OUTPUT=s3://[bucket-name-removed]"],
"runsOn" : { "ref": "EmrCluster" }
}
而對於相應EmrCluster資源的配置它的運行:
{
"id" : "EmrCluster",
"type" : "EmrCluster",
"name" : "Hive Cluster",
"keyPair" : "[removed]",
"masterInstanceType" : "m3.xlarge",
"coreInstanceType" : "m3.xlarge",
"coreInstanceCount" : "2",
"coreInstanceBidPrice": "0.10",
"releaseLabel": "emr-4.1.0",
"applications": ["hive"],
"enableDebugging" : "true",
"terminateAfter": "45 Minutes"
}
我得到該錯誤消息始終是以下:
java.io.IOException: Cannot run program "/usr/share/aws/emr/scripts/hive-script --run-hive-script --args -f s3://[bucket-name-removed]/s1-tracer-hql.q -d INPUT=s3://[bucket-name-removed] -d OUTPUT=s3://[bucket-name-removed]" (in directory "."): error=2, No such file or directory
at com.amazonaws.emr.command.runner.ProcessRunner.exec(ProcessRunner.java:139)
at com.amazonaws.emr.command.runner.CommandRunner.main(CommandRunner.java:13)
...
主要的錯誤消息是「...(在目錄」。「中):err或= 2,沒有這樣的文件或目錄「。
我已登錄到主節點並驗證/usr/share/aws/emr/scripts/hive-script
的存在。我還試着在hive-script
等幾個地方指定一個基於s3的位置;始終是相同的錯誤結果。
我可以直接在EMR中手動創建羣集,看起來與我在此DataPipeline中指定的內容完全相同,步驟使用相同的"command-runner.jar,/usr/share/aws/emr/scripts/hive-script ..."
命令字符串,並且工作正常。
有沒有人遇到過這種情況,並可以告訴我我失蹤和/或做錯了什麼?我已經在這一段時間了。