大家好,新年快乐;)!
我正在使用Apache Spark,HDFS和Elastichsearch构建lambda架构。
在下图中,这里是我要做的:
到目前为止,我已经在java中为我的spark spark和spark应用程序编写了源代码。我在spark文档中读到火花可以在Mesos或YARN clutser中运行。如图所示,我已经有一个hadoop集群。是否可以在同一个hadoop集群中运行我的spark streaming和spark应用程序?如果是,是否有任何特定配置要做(例如节点数,RAM ......)。或者我是否必须为火花流特别添加一个hadoop集群?
我希望我的解释清楚。
亚瑟尔
答案 0 :(得分:1)
有可能。您将流媒体和批处理应用程序提交到相同的纱线群集。但是,在这两个工作之间共享集群资源可能有点棘手(根据我的理解)。
所以我建议您查看Spark Jobserver提交申请。当您想要维护多个火花上下文时,Spark-jobserver可以让您的生活更轻松。两个应用程序的所有必需配置都在一个地方。
答案 1 :(得分:1)
您无需构建单独的群集来运行spark流。
将spark.master
属性更改为yarn-client
文件中的yarn-cluster
或conf/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以了解群集的资源管理。