我们正在使用DataStax Enterprise,它支持Spark和Spark Job服务器。
我们有3个节点的olap casandra集群,每个节点配置8核处理器和32G的RAM
就我们的spark作业而言,我能够以低延迟并行运行最多4个spark作业。
我使用预先创建的Spark上下文通过Spark作业服务器API提交作业,内置的Spark作业服务器也有一次并行提交8个Spark的限制,并且一旦提交了更多的作业,它就会开始拒绝作业。
我需要一种机制,在这种机制中,我的Spark作业在任何时候都只应该处理4个作业,其余的Spark作业应该留在队列中,直到任何Spark作业被修复,我们有可用的插槽来处理。
我如何在DSE Cassandra上使用内置的Spark或正常的Spark方式实现这一点?
我不知道如何在spark集群上设置排队机制,以及如何使用不同的参数进行控制。
DSE spark有自己的资源管理器,没有任何MESOS或YARN功能,我想我们可以将作业提交到一个特定的队列。
1条答案
按热度按时间izkcnapc1#
DataStax Enterprise(DSE)为运行DSE Analytics工作负载的集群提供了开源Spark Job Server。具体来说,DSE 6.8.12附带Spark Job Server v0.8.0。
您要求的查询机制在作业服务器中不可用。
在任何情况下,作业服务器都只是提供一个REST API,用于将作业提交到Spark集群。Spark master的角色是协调和管理Spark应用程序,从Spark worker节点请求资源(CPU,内存)来执行作业。
如果没有足够的可用资源(没有足够的CPU、内存或两者),那么提交的Spark应用程序将在队列中等待,直到资源可用。
如果您认为Spark应用程序占用了节点上太多的内存或CPU,请考虑通过在
dse.yaml
中设置相关的Spark worker选项来降低工作节点可用的资源量。有关详细信息,请参阅Configuring Spark nodes in DataStax Enterprise。干杯!干杯!