我有一个接受一些论点的猪脚本。我只需要使用AWS PowerShell Cmdlet。 我可以使用以下命令创建使用pig安装的集群:
$app = New-Object Amazon.ElasticMapReduce.Model.Application
$app.Name="Pig"
$jobid = Start-EMRJobFlow -Name "Pig Job" -Application $app -Instances_MasterInstanceType "m3.xlarge" -Instances_KeepJobFlowAliveWhenNoSteps $true -Instances_InstanceCount 1 -LogUri "s3://mybucket/logs" -VisibleToAllUsers $true -ReleaseLabel "emr-5.7.0" -SecurityConfiguration "my-sec-grp" -JobFlowRole "EMR_EC2_DefaultRole" -ServiceRole "EMR_DefaultRole"
但我无法为猪工作添加步骤。 我关注了一些文章,但那些文章已经很老了,或者那些正在使用一些自定义jar来提交作业。我只需要提交一个接受一些参数的猪脚本。 任何帮助将受到高度赞赏 注意:我需要PowerShell特定的命令。我可以使用AWS cli执行此操作。
答案 0 :(得分:0)
我找到了从powershell提交pig脚本的方法。我正在关注这个link。但问题在于其关于Hive脚本。所以创建步骤的步骤为
$runhivescriptargs = @("s3://us-east-1.elasticmapreduce/libs/hive/hive-script", `
"--base-path", "s3://us-east-1.elasticmapreduce/libs/hive", `
"--hive-versions","latest", `
"--run-hive-script", `
"--args", `
"-f", "s3://elasticmapreduce/samples/hive-ads/libs/join-clicks-to-impressions.q", `
"-d", "SAMPLE=s3://elasticmapreduce/samples/hive-ads",`
"-d", "DAY=2009-04-13", `
"-d", "HOUR=08", `
"-d", "NEXT_DAY=2009-04-13", `
"-d", "NEXT_HOUR=09",`
"-d", "INPUT=s3://elasticmapreduce/samples/hive-ads/tables", `
"-d", "OUTPUT=s3://my-output-bucket/joinclick1", `
"-d", "LIB=s3://elasticmapreduce/samples/hive-ads/libs")
所以我遵循相同的步骤,但不管怎样,在猪脚本的情况下,需要使用-p选项传递参数而不使用-d选项 所以我的步骤创建就像:
$runpigscriptargs = @("s3://us-east-1.elasticmapreduce/libs/pig/pig-script", `
"--base-path", "s3://us-east-1.elasticmapreduce/libs/pig", `
"--run-pig-script", `
"--args", `
"-f", $scriptfile, `
"-p", "Id=$Id",`
"-p", "jarPath=$jarPath",`
"-p", "inputPath=$newInputPath", `
"-p", "outputPath=$outputPath")
我没有指定猪版本,因为我已经创建了一个安装了最新版本猪的EMR集群 感谢