Spark流媒体和Spark应用程序可以在同一个YARN集群中运行吗?

时间:2017-01-13 14:14:45

标签: hadoop apache-spark spark-streaming yarn

大家好,新年快乐;)!

我正在使用Apache Spark,HDFS和Elastichsearch构建lambda架构。 在下图中,这里是我要做的: enter image description here

到目前为止,我已经在java中为我的spark spark和spark应用程序编写了源代码。我在spark文档中读到火花可以在Mesos或YARN clutser中运行。如图所示,我已经有一个hadoop集群。是否可以在同一个hadoop集群中运行我的spark streaming和spark应用程序?如果是,是否有任何特定配置要做(例如节点数,RAM ......)。或者我是否必须为火花流特别添加一个hadoop集群?

我希望我的解释清楚。

亚瑟尔

2 个答案:

答案 0 :(得分:1)

有可能。您将流媒体和批处理应用程序提交到相同的纱线群集。但是,在这两个工作之间共享集群资源可能有点棘手(根据我的理解)。

所以我建议您查看Spark Jobserver提交申请。当您想要维护多个火花上下文时,Spark-jobserver可以让您的生活更轻松。两个应用程序的所有必需配置都在一个地方。

答案 1 :(得分:1)

您无需构建单独的群集来运行spark流。

spark.master属性更改为yarn-client文件中的yarn-clusterconf/spark-defaults.conf。如果指定,则提交的spark应用程序将由YARN的ApplicationMaster处理,并由NodeManagers执行。

另外,修改 cores memory 的这些属性,使Spark与Yarn对齐。

spark-defaults.conf

spark.executors.memory
spark.executors.cores
spark.executors.instances

yarn-site.xml

yarn.nodemanager.resource.memory-mb
yarn.nodemanager.resource.cpu-vcores

否则,它可能导致群集死锁或资源利用率不合理。

在运行Spark on Yarn时,请参阅here以了解群集的资源管理。