gpt4 book ai didi

amazon-web-services - 如何在 Amazon Aws 上运行 Python Spark 代码?

转载 作者:行者123 更新时间:2023-12-04 07:52:53 26 4
gpt4 key购买 nike

我在 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

我在有和没有我的权限文件的情况下都试过了,即
-i permissionsfile.pem

但是,它失败了,堆栈跟踪显示了以下内容
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)
......
......

我的方法是否正确,我需要解决访问问题才能继续前进,还是我走错了方向?

正确的做法是什么?

我在 youtube 上搜索了很多,但找不到任何关于在 Amazon 的 EMR 上运行 Spark 的教程。

如果有帮助,我正在处理的数据集是亚马逊公共(public)数据集的一部分。

最佳答案

  • 转到 EMR,创建新集群... [建议:仅从 1 个节点开始,仅用于测试目的]。
  • 点击复选框安装Spark ,如果您不需要这些附加程序,则可以取消选中其他框。
  • 通过选择 VPC 和安全 key (ssh key ,又名 pem key )进一步配置集群
  • 等待它启动。一旦您的集群说“等待”,您就可以继续进行了。
  • [通过 GUI 提交 Spark] 在 GUI 中,您可以添加一个 Step 并选择 Spark 作业,然后将您的 spark 文件上传到 S3 ,然后选择新上传的 S3 文件的路径。一旦运行,它将成功或失败。如果失败,请稍等片刻,然后单击步骤列表中该步骤行的“查看日志”。不断调整你的脚本,直到你让它工作。

    [通过命令行提交] 按照页面顶部的 ssh 说明通过 SSH 连接到驱动程序节点。进入后,使用命令行文本编辑器创建一个新文件,并将脚本的内容粘贴进去。然后 spark-submit yourNewFile.py。如果失败,您将直接看到错误输出到控制台。调整你的脚本,然后重新运行。这样做直到你让它按预期工作。

  • 注:从本地机器到远程机器运行作业很麻烦,因为您实际上可能导致本地 spark 实例负责一些昂贵的计算和网络上的数据传输。这就是您要从 EMR 中提交 AWS EMR 作业的原因。

    关于amazon-web-services - 如何在 Amazon Aws 上运行 Python Spark 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40443659/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com