2017-08-09 1 views
0

J'ai un script cochon qui accepte certains arguments. Je dois utiliser uniquement la cmdlet AWS PowerShell. Je suis en mesure de créer cluster avec porc installée à l'aide ci-dessous commande:Travail AWS EMR avec PowerShell Cmdlet

$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" 

Mais je ne suis pas en mesure d'ajouter étape pour le travail de porc. J'ai suivi certains articles mais ceux-ci sont très anciens ou ceux qui utilisent un pot personnalisé pour soumettre le travail. J'ai juste besoin de soumettre un script cochon qui accepte certains paramètres. Toute aide sera très appréciée Note: J'ai besoin de commandes spécifiques à PowerShell. Je suis capable de le faire en utilisant AWS cli.

Répondre

0

J'ai eu le moyen de soumettre des scripts cochons de PowerShell. Je suivais ce link. Mais le problème était que c'est en ce qui concerne les scripts Hive. Ainsi, l'étape où la création d'étape comme

$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") 

donc j'ai suivi les mêmes étapes, mais en quelque sorte dans le cas des scripts de porcs arguments doivent être transmis en utilisant l'option -p ne pas utiliser l'option -d Donc ma création étape est comme :

$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") 

Je ne suis pas la version de porc spécifiant comme je l'ai déjà créé un cluster DME ayant la dernière version de porc INSTALLÉ Merci