大家好,新年快乐;)!
我正在使用 Apache Spark、HDFS 和 Elasticsearch 构建 lambda 架构。 在下图中,我正在尝试做的事情:
到目前为止,我已经用 java 编写了 Spark 流和 Spark 应用程序的源代码。我在 Spark 文档中读到 Spark 可以在 Mesos 或 YARN clutser 中运行。如图所示,我已经有一个hadoop集群了。是否可以在同一个 hadoop 集群中运行我的 Spark Streaming 和 Spark 应用程序?如果是,是否需要进行任何特定配置(例如节点数量、RAM...)。或者我是否必须添加专门用于 Spark 流的 hadoop 集群?
我希望我的解释很清楚。
亚西尔
最佳答案
您无需构建单独的集群来运行 Spark Streaming。
将 conf/spark-defaults.conf< 中的
文件。当指定时,提交的 Spark 应用程序将由 YARN 的 ApplicationMaster 处理,并由 NodeManager 执行。 spark.master
属性更改为 yarn-client
或 yarn-cluster
/
另外修改核心和内存的这些属性以使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/