hadoop - Spark Streaming 和 Spark 应用程序可以在同一个 YARN 集群中运行吗?

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

大家好,新年快乐;)!

我正在使用 Apache Spark、HDFS 和 Elasticsearch 构建 lambda 架构。 在下图中,我正在尝试做的事情: enter image description here

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

我希望我的解释很清楚。

亚西尔

最佳答案

您无需构建单独的集群来运行 Spark Streaming。

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

另外修改核心内存的这些属性以使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

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

引用here用于在 Yarn 上运行 Spark 时进行集群的资源管理。

关于hadoop - Spark Streaming 和 Spark 应用程序可以在同一个 YARN 集群中运行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41636560/

相关文章:

hadoop - 无法在 hadoop 2.6.5 安装中找到 etc 文件夹

python - 即使使用较旧的 spark 版本,也没有名为 'pyspark.streaming.kafka' 的模块

java - Apache Spark 我在这里坚持了什么?

scala - 增量数据如何使用Spark

apache-spark - Spark Streaming - 基于 TIMESTAMP 字段的处理

hadoop - 访问远程服务器获取数据并将其放入hdfs

hadoop - 在 pyspark 数据帧计数函数中得到 `java.nio.BufferOverflowException`

hadoop - 在 Hadoop 2.7.2(CentOS 7) Cluster 中,Datanode 启动但没有连接到 namenode

Scala:如何使用 Scala 替换 Dataframes 中的值

apache-spark - 结构化流 OOM