我的环境: 我正在尝试通过Spark Thrift服务器连接Cassandra。然后,我在Hive Metastore中创建一个元表,其中包含Cassandra表数据。在Web应用程序中,我通过JDBC驱动程序连接到元表。我已经为Spark Thrift Server启用了公平调度。
问题: 当我通过JMeter对100个用户进行300秒持续时间的并发性负载测试时,我得到的初始请求响应时间不到几秒(例如前30秒)。然后响应时间逐渐增加(例如2到3秒)。当我检查Spark UI时,所有作业的执行时间不到100毫秒。我还注意到,收到请求后,作业和任务处于待定阶段。因此,我假设即使任务花费了几秒钟的时间,但调度程序仍会延迟提交它们。如何解决作业提交中的延迟?
以下是我的配置详细信息, 工人人数-2 每个工人的执行者数量-1 每个执行器的核心数-14 工人总人数-30 每个执行器的内存-20Gb 工作人员总内存-106Gb
公平计划XML中的配置
<pool name="default">
<schedulingMode>FAIR</schedulingMode>
<weight>2</weight>
<minShare>15</minShare>
</pool>
<pool name="test">
<schedulingMode>FIFO</schedulingMode>
<weight>2</weight>
<minShare>3</minShare>
</pool>
我正在以Spark Standalone模式执行。
答案 0 :(得分:0)
不是其他查询正在运行时队列中有未决查询的情况。尝试减少spark.locality.wait说1秒