标签: apache-spark-standalone

我应该为Spark选择哪种群集类型?

我是Apache Spark的新手,我刚刚了解到Spark支持三种类型的集群:

  • 独立 - 意味着Spark将管理自己的集群
  • YARN - 使用Hadoop的YARN资源管理器
  • Mesos - Apache的专用资源管理器项目

由于我是Spark的新手,我想我应该首先尝试Standalone.但我想知道哪一个是推荐的.说,将来我需要构建一个大型集群(数百个实例),我应该去哪个集群类型?

hadoop-yarn mesos apache-spark apache-spark-standalone

70
推荐指数
3
解决办法
3万
查看次数

工人,工人实例和执行者之间的关系是什么?

Spark Standalone模式下,有主节点和工作节点.

这里有几个问题:

  1. 2工作者实例是否意味着一个工作节点有2个工作进程?
  2. 每个工作实例是否为特定应用程序(管理存储,任务)或一个工作节点拥有一个执行程序的执行程序?
  3. 是否有流程图解释了如何计算spark运行时间?

apache-spark apache-spark-standalone

64
推荐指数
4
解决办法
4万
查看次数

Apache Spark:客户端和集群部署模式之间的差异

TL; DR:在Spark Standalone集群中,客户端和集群部署模式之间有什么区别?如何设置应用程序运行的模式?


我们有一个带有三台机器的Spark Standalone集群,它们都使用Spark 1.6.1:

  • 主机,也是我们运行应用程序的地方 spark-submit
  • 2台相同的工人机器

Spark文档中,我读到:

(...)对于独立群集,Spark目前支持两种部署模式.在客户端模式下,驱动程序在与提交应用程序的客户端相同的进程中启动.但是,在集群模式下,驱动程序从集群内的一个工作进程启动,客户端进程在完成其提交应用程序的责任时立即退出,而无需等待应用程序完成.

但是,通过阅读本文,我并不真正了解实际差异,而且我不了解不同部署模式的优点和缺点.

另外,当我使用start-submit启动我的应用程序时,即使我将属性设置spark.submit.deployMode为"cluster",我的上下文的Spark UI也显示以下条目:

上下文UI

所以我无法测试两种模式以查看实际差异.话虽这么说,我的问题是:

1)Spark Standalone 客户端部署模式和集群部署模式之间有哪些实际区别?使用每个人的专业和利益是什么?

2)如何选择我的应用程序将运行哪一个,使用spark-submit

apache-spark apache-spark-standalone

36
推荐指数
2
解决办法
3万
查看次数

了解Spark:Cluster Manager,Master和Driver节点

阅读完这个问题后,我想提出更多问题:

  1. Cluster Manager是一个长期运行的服务,它在哪个节点上运行?
  2. Master和Driver节点是否可能是同一台机器?我认为应该有一个规则说明这两个节点应该是不同的?
  3. 如果Driver节点出现故障,谁负责重新启动应用程序?什么会发生什么?即主节点,Cluster Manager和Workers节点将如何参与(如果它们)以及以何种顺序?
  4. 与上一个问题类似:如果主节点出现故障,将会发生什么,以及谁负责从故障中恢复?

failover hadoop hadoop-yarn apache-spark apache-spark-standalone

14
推荐指数
2
解决办法
3783
查看次数

Spark Master失败后会发生什么?

驱动程序是否需要持续访问主节点?或者只需要获得初始资源分配?如果在创建Spark上下文后master不可用,会发生什么?这是否意味着申请会失败?

apache-spark apache-spark-standalone

11
推荐指数
3
解决办法
2998
查看次数

如何在独立主服务器中并行运行多个spark应用程序

使用Spark(1.6.1)独立主机,我需要在同一个spark master上运行多个应用程序. 所有申请在第一个申请后提交,始终保持'WAIT'状态.我还观察到,一个运行中包含所有核心工人的总和.我已经尝试过限制它,SPARK_EXECUTOR_CORES但是它用于纱线配置,而我正在运行的是"独立主机".我尝试在同一个主人上运行许多工作人员,但每次首次提交的申请都会消耗所有工人.

config high-availability apache-spark apache-spark-standalone

9
推荐指数
1
解决办法
5971
查看次数

Spark独立编号执行器/内核控件

所以我有一个带有16个内核和64GB内存的Spark独立服务器.我在服务器上运行主服务器和工作服务器.我没有启用动态分配.我在Spark 2.0上

我不明白的是,当我提交工作并指明:

--num-executors 2
--executor-cores 2 
Run Code Online (Sandbox Code Playgroud)

只应占用4个核心.然而,当提交作业时,它会占用所有16​​个内核,并且无论如何都会绕过num-executors参数旋转8个执行程序.但如果我将executor-cores参数更改为4它将相应调整,4个执行器将旋转.

apache-spark apache-spark-standalone

7
推荐指数
1
解决办法
5301
查看次数

如何使Spark驱动程序对Master重启有弹性?

我有一个Spark Standalone(不是YARN/Mesos)集群和一个运行(在客户端模式下)的驱动程序应用程序,它与该集群通信以执行其任务.但是,如果我关闭并重新启动Spark主服务器和工作程序,则驱动程序不会重新连接到主服务器并恢复其工作.

也许我对Spark Master和驱动程序之间的关系感到困惑.在这种情况下,主人是否负责重新连接到驱动程序?如果是这样,主服务器是否将其当前状态序列化到某个可以在重启时恢复的磁盘?

apache-spark apache-spark-standalone

7
推荐指数
1
解决办法
1066
查看次数

Spark Apache 中的 Worker 无法连接到 master

我正在使用独立集群管理器部署 Spark Apache 应用程序。我的架构使用 2 台 Windows 机器:一组作为主机,另一组作为从机(工作程序)。

Master:我在其上运行:\bin>spark-class org.apache.spark.deploy.master.Master这是 Web UI 显示的内容:

Slave:我在其上运行:\bin>spark-class org.apache.spark.deploy.worker.Worker spark://192.*.*.186:7077这就是 Web UI 显示的内容:

问题是worker节点无法连接到master节点,并显示以下错误:

17/09/26 16:05:17 INFO Worker: Connecting to master 192.*.*.186:7077...
17/09/26 16:05:22 WARN Worker: Failed to connect to master 192.*.*.186:7077
org.apache.spark.SparkException: Exception thrown in awaitResult:
    at org.apache.spark.util.ThreadUtils$.awaitResult(ThreadUtils.scala:205)
    at org.apache.spark.rpc.RpcTimeout.awaitResult(RpcTimeout.scala:75)
    at org.apache.spark.rpc.RpcEnv.setupEndpointRefByURI(RpcEnv.scala:100)
    at org.apache.spark.rpc.RpcEnv.setupEndpointRef(RpcEnv.scala:108)
    at org.apache.spark.deploy.worker.Worker$$anonfun$org$apache$spark$deploy$worker$Worker$$tryRegisterAllMasters$1$$anon$1.run(Worker.scala:241)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
  Caused by: java.io.IOException: Failed to connect to /192.*.*.186:7077
    at org.apache.spark.network.client.TransportClientFactory.createClient(TransportClientFactory.java:232)
    at org.apache.spark.network.client.TransportClientFactory.createClient(TransportClientFactory.java:182)
    at …
Run Code Online (Sandbox Code Playgroud)

apache-spark apache-spark-standalone

7
推荐指数
1
解决办法
8827
查看次数

驱动程序命令关闭后,Spark 工作器停止

基本上,主节点也作为从节点之一执行。一旦 master 上的 slave 完成,它就会调用 SparkContext 停止,因此这个命令会传播到所有在处理过程中停止执行的 slave。

错误登录其中一名工作人员:

信息 SparkHadoopMapRedUtil:尝试_201612061001_0008_m_000005_18112:已提交

INFO Executor:已完成阶段 8.0 中的任务 5.0 (TID 18112)。发送给驱动程序的 2536 字节结果

信息 CoarseGrainedExecutorBackend:驱动程序命令关闭

错误 CoarseGrainedExecutorBackend:收到信号终止

apache-spark apache-spark-standalone

6
推荐指数
1
解决办法
7543
查看次数