【问题标题】:Can Spark streaming and Spark applications be run within the same YARN cluster?Spark 流和 Spark 应用程序可以在同一个 YARN 集群中运行吗?
【发布时间】:2017-05-28 22:34:24
【问题描述】:

大家好,新年快乐;)!

我正在使用 Apache Spark、HDFS 和 Elastichsearch 构建 lambda 架构。 在下图中,这是我想要做的事情:

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

我希望我的解释清楚。

亚西尔

【问题讨论】:

标签: hadoop apache-spark spark-streaming hadoop-yarn


【解决方案1】:

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

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

另外修改 coresmemory 的这些属性以使 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

否则可能导致集群死锁或资源利用不当。

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2018-03-31
      • 1970-01-01
      • 2017-04-16
      • 1970-01-01
      • 2020-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多