Piy*_*ush 9 amazon-s3 amazon-web-services apache-spark pyspark
我在spark中编写了一个python代码,我想在Amazon的Elastic Map reduce上运行它.
我的代码在我的本地机器上工作得很好,但我对如何在亚马逊的AWS上运行它感到有些困惑?
更具体地说,我应该如何将我的python代码转移到主节点?我是否需要将我的Python代码复制到我的s3存储桶并从那里执行?或者,我应该ssh到Master并将我的python代码scp到Master中的spark文件夹?
现在,我尝试在我的终端上本地运行代码并连接到群集地址(我通过读取spark的--help标志的输出来做到这一点,所以我可能在这里缺少一些步骤)
./bin/spark-submit --packages org.apache.hadoop:hadoop-aws:2.7.1 \
--master spark://hadoop@ec2-public-dns-of-my-cluster.compute-1.amazonaws.com \
mypythoncode.py
Run Code Online (Sandbox Code Playgroud)
我尝试使用和没有我的权限文件,即
-i permissionsfile.pem
Run Code Online (Sandbox Code Playgroud)
然而,它失败了,堆栈跟踪显示了一些东西
Exception in thread "main" java.lang.IllegalArgumentException: AWS Access Key ID and Secret Access Key must be specified as the username or password (respectively) of a s3n URL, or by setting the fs.s3n.awsAccessKeyId or fs.s3n.awsSecretAccessKey properties (respectively).
at org.apache.hadoop.fs.s3.S3Credentials.initialize(S3Credentials.java:66)
at org.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStore.initialize(Jets3tNativeFileSystemStore.java:49)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
......
......
Run Code Online (Sandbox Code Playgroud)
我的方法是否正确,我需要解决Access问题才能开始,或者我是朝着错误的方向前进?
这样做的正确方法是什么?
我在youtube上搜索了很多但是找不到关于在Amazon的EMR上运行Spark的任何教程.
如果有帮助,我正在处理的数据集是亚马逊公共数据集的一部分.
Spark,如果不需要其他程序,可以取消选中其他框.[在GUI中通过GUI提交spark],您可以添加Step并选择Spark作业,并将您的spark文件上传到S3,然后选择新上传的S3文件的路径.一旦运行,它将成功或失败.如果失败,请稍等片刻,然后单击步骤列表中该步骤行的"查看日志".继续调整脚本,直到它运行完毕.
[通过命令行提交] SSH按照页面顶部的ssh说明进入驱动程序节点.进入后,使用命令行文本编辑器创建一个新文件,并粘贴脚本的内容.然后spark-submit yourNewFile.py.如果失败,您将直接看到错误输出到控制台.调整你的脚本,然后重新运行.这样做直到你按预期工作.
注意:从本地计算机到远程计算机运行作业很麻烦,因为实际上可能导致本地spark实例负责通过网络进行一些昂贵的计算和数据传输.这就是为什么要从EMR中提交AWS EMR作业的原因.
| 归档时间: |
|
| 查看次数: |
4850 次 |
| 最近记录: |