大家好,新年快乐!
我正在用apachespark、hdfs和elastichsearch构建一个lambda架构。在下图中,我想做的是:
到目前为止,我已经用java为spark流媒体和spark应用程序编写了源代码。我在spark文档中看到spark可以在mesos或yarn clutser中运行。如图所示,我已经有了一个hadoop集群。是否可以在同一个hadoop集群中运行spark流和spark应用程序?如果是,是否有任何特定的配置要做(例如节点数、ram…)。或者我必须为spark流添加hadoop集群吗?
我希望我的解释清楚。
亚西尔
2条答案
按热度按时间fwzugrvs1#
运行spark流不需要构建单独的集群。
更改
spark.master
属性到yarn-client
或者yarn-cluster
在conf/spark-defaults.conf
文件。如有规定,提交的spark申请将由Yarn应用程序管理员处理,并由节点管理员执行。此外,还可以改变磁芯和存储器的这些特性,使Spark与Yarn对齐。
在
spark-defaults.conf
```spark.executors.memory
spark.executors.cores
spark.executors.instances
否则可能导致集群死锁或资源利用不当。
在Yarn上运行spark时,集群的资源管理请参见此处。
lmvvr0a82#
这是可能的。您将流式处理和批处理应用程序提交到同一个Yarn集群。但在这两个作业之间共享集群资源可能有点棘手(据我所知)。
因此,我建议您查看spark jobserver以提交您的应用程序。当您想要维护多个spark上下文时,spark jobserver使您的生活更轻松。两个应用程序所需的所有配置将在一个位置。