apache-spark - 在EMR从站上运行命令?

标签 apache-spark yarn emr amazon-emr

我正在尝试在所有从属计算机上使用pip install更新正在运行的EMR群集。我怎样才能做到这一点?

我无法通过引导步骤执行此操作,因为它是运行时间很长的EMR,因此我无法删除它。

EMR集群正在运行Spark&Yarn,因此我通常会使用spark slaves.sh,但在主节点上找不到该脚本。它安装在我找不到的地方吗?还是有某种安装方法?

我还看到了其他问题,例如使用 yarn 分散 shell ,但是我找不到如何做到这一点的有效示例。

顺便说一句,我相信集群正在使用EMR 4.8.0,Spark 1.6.1。

最佳答案

您可以从节点上运行yarn命令以获取所有节点的列表,并且可以使用SSH在所有这些节点上运行命令。就像前面提到的文章一样,您可以运行类似

#Copy ssh key(like ssh_key.pem) of the cluster to master node.
aws s3 cp s3://bucket/ssh_key.pem ~/

# change permissions to read 
chmod 400 ssh_key.pem

# Run a PIP command
yarn node -list|sed -n "s/^\(ip[^:]*\):.*/\1/p" | xargs -t -I{} -P10 ssh -o StrictHostKeyChecking=no -i ~/ssh_key.pem hadoop@{} "pip install package"

关于apache-spark - 在EMR从站上运行命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40897671/

相关文章:

hadoop - 运行任何mapreduce jar时,YARN应用程序在提交后失败

apache-spark - SparkConf 类未找到

apache-spark - Spark 2.3 是否改变了它处理小文件的方式?

hadoop - Hadoop单节点群集设置问题

python - hadoop 流 : importing modules on EMR

hadoop - Spark/Hadoop - 无法使用服务器端加密保存到 s3

hadoop - Map Reduce - 如何规划数据文件

Python Spark 数据帧 : replace null with SparseVector

serialization - Spark Parallelize? (找不到名称为 'id'的创建者属性)

apache-spark - NettyBlockTransferService不遵守spark.blockManager.port配置