클러스터가 가동 중입니다. 내 코드를 실행하는 단계를 추가하려고합니다. 코드 자체는 단일 인스턴스에서 올바르게 작동합니다. S3에서 작동하도록 할 수는 없습니다.S3에서 amazon emr spark submission이 작동하지 않습니다.
aws emr add-steps --cluster-id j-XXXXX --steps Type=spark,Name=SomeSparkApp,Args=[--deploy-mode,cluster,--executor-memory,0.5g,s3://<mybucketname>/mypythonfile.py]
정확히 내가해야하는 예입니다. 내가 도대체 뭘 잘못하고있는 겁니까?
오류 내가 얻을 :
Exception in thread "main" java.lang.IllegalArgumentException: Unknown/unsupported param List(--executor-memory, 0.5g, --executor-cores, 2, --primary-py-file, s3://<mybucketname>/mypythonfile.py, --class, org.apache.spark.deploy.PythonRunner)
Usage: org.apache.spark.deploy.yarn.Client [options]
Options:
--jar JAR_PATH Path to your application's JAR file (required in yarn-cluster
mode)
.
.
.
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Command exiting with ret '1'
나는이 대신으로 지정 : 내가 대신이 오류가
aws emr add-steps --cluster-id j-XXXXX --steps Type=spark,Name= SomeSparkApp,Args=[--executor-memory,0.5g,s3://<mybucketname>/mypythonfile.py]
을 :
Error: Only local python files are supported: Parsed arguments:
master yarn-client
deployMode client
executorMemory 0.5g
executorCores 2
편집 : IT 때 함께 더 얻는다 I SSH를 클러스터에 넣은 후 수동으로 파이썬 파일을 만들고 다음과 같이 지정하십시오 :
aws emr add-steps --cluster-id 'j-XXXXX' --steps Type=spark,Name= SomeSparkApp,Args=[--executor-memory,1g,/home/hadoop/mypythonfile.py]
하지만 일을하지 마십시오.
도움을 주시면 감사하겠습니다. AWS 자신의 블로그에 잘 문서화 된 방법으로 여기서 https://blogs.aws.amazon.com/bigdata/post/Tx578UTQUV7LRP/Submitting-User-Applications-with-spark-submit이 작동하지 않아서 정말 실망 스럽습니다.
EMR 클러스터에 'S3'에 액세스 할 수있는 적절한 IAM 권한이 있습니까? – Kristian
예, S3에서 부팅 스트랩 작업을 할 수 있습니다. 그 부분은 성공합니다. BTW - 내가 GUI를 사용할 때, 그것은 효과가 있었다. 정말 좌절 했어. :) – Gopala
DId 혹시 이것을 알아 냈습니까? 우리는 같은 문제에 직면 해있다. 로컬 FS에서 병을 사용하면 작동합니다. S3를 통해 하나 전달하면 실패합니다. – luckytaxi