简介
我在AWS上创建了一个小型Spark群集。 Master是一个t2.small(1核,1GB RAM)按需服务器,1个worker是一个现场实例m5.2xlarge(48 VCPU,30GB RAM)
Spark版本2.2.1,带有aws-java-sdk-1.7.4
spark-defaults.conf:
spark.hadoop.fs.s3a.impl=org.apache.hadoop.fs.s3a.S3AFileSystem
掌握spark-env.sh:
export SPARK_MASTER_HOST=10.0.129.94
export SPARK_WORKER_PORT=7080
worker spark-env.sh:
export SPARK_WORKER_PORT=7080
Master Inbound Security Group:
工人入境安全组:
主私人IP:10.0.129.94(SparkMaster主机名)
工作人员私有IP:10.0.129.210(SparkSlave主机名)
Spark Submit commmand:
spark-submit --jars /home/torqmo/spark-2.2.1-bin-hadoop2.7/jars/commons-cli-1.2.jar,/home/torqmo/spark-2.2.1-bin-hadoop2.7/jars/hadoop-common-2.7.3.jar,/home/torqmo/spark-2.2.1-bin-hadoop2.7/jars/hadoop-mapreduce-client-core-2.7.3.jar,/home/torqmo/spark-2.2.1-bin-hadoop2.7/jars/hadoop-aws-2.7.3.jar,/home/torqmo/spark-2.2.1-bin-hadoop2.7/jars/aws-java-sdk-1.7.4.jar --master spark://SparkMaster:7077 --executor-memory 2G --executor-cores 3 converter/convert.py --from-hour /2018/01/17/15/
ps aux master:
torqmo 22170 0.3 8.5 3033396 174428 ? Sl 10:34 0:09 /usr/lib/jvm/java-8-oracle/jre/bin/java -cp /home/torqmo/spark-2.2.1-bin-hadoop2.7/conf/:/home/torqmo/spark-2.2.1-bin-hadoop2.7/jars/* -Xmx1g org.apache.spark.deploy.master.Master --host 10.0.129.94 --port 7077 --webui-port 8080
ps aux worker:
torqmo 6043 0.2 1.6 6767740 536740 ? Sl 10:32 0:07 /usr/lib/jvm/java-8-oracle/jre/bin/java -cp /home/torqmo/spark-2.2.1-bin-hadoop2.7/conf/:/home/torqmo/spark-2.2.1-bin-hadoop2.7/jars/* -Xmx1g org.apache.spark.deploy.worker.Worker --webui-port 8081 --port 7080 spark://SparkMaster:7077
问题
我只是试图给它一个pyspark脚本,将一个桶中的JSON文件转换为Parquet到另一个桶。
我已经通过telnet检查了双方的防火墙访问,并参考了这个文档:https://spark.apache.org/docs/latest/security.html#configuring-ports-for-network-security
一切都很好网络,telnet显示端口正常打开。
Master Web UI和Worker UI都显示可用资源,它们并非全部被占用,我看到ALIVE工作者,我看到正在运行的作业,在Worker UI上没有stderr,但我得到了这个等待状态......
如何进一步调试?我在这里看到了很多关于这个问题的线索,但在检查了十几个之后 - 它们都不是我的情况。
感谢任何帮助!