Digital Ocean中的Spark集群设置

时间:2019-03-02 17:19:00

标签: pyspark

我正在尝试在DigitalOcean中设置一个Spark集群,并在那里创建了一个主节点和两个从节点。即使有未使用的执行程序和大量RAM可用,我也无法从pyspark方法setMaster()连接到主服务器。

我得到的错误是: 最初的工作没有接受任何资源;检查您的集群用户界面,以确保工作人员已注册并拥有足够的资源。

我在master中的spark-env.sh文件如下:

export SPARK_MASTER_HOST='<MASTER IP ADDRESS>'
export JAVA_HOME='/usr/lib/jvm/java-8-oracle'
export SPARK_LOCAL_IP='<MASTER IP ADDRESS>'

slave中的spark-env.sh文件如下所示:

export SPARK_MASTER_HOST='<MASTER IP ADDRESS>'
export JAVA_HOME='/usr/lib/jvm/java-8-oracle'
export SPARK_LOCAL_IP='<SLAVE IP ADDRESS>'

我尝试对SPARK_MASTER_HOST以及SPARK_LOCAL_IP使用专用IP,但错误拒绝消失。我究竟做错了什么?

1 个答案:

答案 0 :(得分:0)

可能您已修复它。但是下面是我遵循并为我工作的步骤。

  1. 将目录更改为Spark-> Conf目录
  2. 创建文件spark-env.sh.template的副本,并仅命名spark-env.sh
  3. 打开该文件(nano spark-env.sh或在任何其他编辑器中)
  4. 设置SPARK_PUBLIC_DNS的值(SPARK_PUBLIC_DNS = XX.XX.XX.XX)。该IP将成为您DO的Droplet公共IP地址。
  5. 允许4040端口进入防火墙(由于UI在4040端口中运行,因此需要启用它。ufw启用4040 / tcp)。
  6. 将目录更改为SPARK_HOME。
  7. bin / spark-shell(这将在您的终端中打开Spark Shell)
  8. 如果成功,您会注意到Web UI正在http://XX.XX.XX.XX:4040端口中监听。
  9. 一旦收到scala提示,请在系统中打开浏览器,然后尝试访问该URL(http://XX.XX.XX.XX:4040)和Bingo!您的工作网址将会显示。

我希望这会对您有所帮助。如果您已经找到了自己的解决方案,请忽略。

编码愉快。 干杯!