我运行的火花与纱线与流 - 通过DireactStream
方法(没有接收器)星火用长丝流:执行者没有充分利用
spark-submit --master yarn --deploy-mode cluster --num-executors 2 --executor-memory 8g --driver-memory 2g --executor-cores 8 ..
我消耗卡夫卡。我有2个主题(每个有3个分区)。我有一个DStream(我有一个DStream)分为16个部分(假设执行者的数量*核心数量= 2 * 8 = 16是否正确?),然后我做foreachPartition并将每个分区写入本地文件,然后通过http发送给其他服务器(不是spark)(使用带有pooling manager的apache http sync客户端,通过带有多部分的post)。
当我通过Spark UI检查了这一步的详细信息(或者JOB是否正确命名?)时,它显示总共16个任务一次执行8个任务的单个执行器。
这是火花UI细节 -
细则舞台717上(尝试0)
Index ID Attempt Status Locality Level Executor ID/Host Launch Time Duration GC Time Shuffle Read Size/Records Errors
0 5080 0 SUCCESS NODE_LOCAL 1/executor1_machine_host_name 2016/12/27 12:11:46 2 s 11 ms 313.3 KB/6137
1 5081 0 SUCCESS NODE_LOCAL 1/executor1_machine_host_name 2016/12/27 12:11:46 2 s 11 ms 328.5 KB/6452
2 5082 0 SUCCESS NODE_LOCAL 1/executor1_machine_host_name 2016/12/27 12:11:46 2 s 11 ms 324.3 KB/6364
3 5083 0 SUCCESS NODE_LOCAL 1/executor1_machine_host_name 2016/12/27 12:11:46 2 s 11 ms 321.5 KB/6306
4 5084 0 SUCCESS NODE_LOCAL 1/executor1_machine_host_name 2016/12/27 12:11:46 2 s 11 ms 324.8 KB/6364
5 5085 0 SUCCESS NODE_LOCAL 1/executor1_machine_host_name 2016/12/27 12:11:46 2 s 11 ms 320.8 KB/6307
6 5086 0 SUCCESS NODE_LOCAL 1/executor1_machine_host_name 2016/12/27 12:11:46 2 s 11 ms 323.4 KB/6356
7 5087 0 SUCCESS NODE_LOCAL 1/executor1_machine_host_name 2016/12/27 12:11:46 3 s 11 ms 316.8 KB/6207
8 5088 0 SUCCESS NODE_LOCAL 1/executor1_machine_host_name 2016/12/27 12:11:48 2 s 317.7 KB/6245
9 5089 0 SUCCESS NODE_LOCAL 1/executor1_machine_host_name 2016/12/27 12:11:48 2 s 320.4 KB/6280
10 5090 0 SUCCESS NODE_LOCAL 1/executor1_machine_host_name 2016/12/27 12:11:48 2 s 323.0 KB/6334
11 5091 0 SUCCESS NODE_LOCAL 1/executor1_machine_host_name 2016/12/27 12:11:48 2 s 323.7 KB/6371
12 5092 0 SUCCESS NODE_LOCAL 1/executor1_machine_host_name 2016/12/27 12:11:48 2 s 316.7 KB/6218
13 5093 0 SUCCESS NODE_LOCAL 1/executor1_machine_host_name 2016/12/27 12:11:48 2 s 321.0 KB/6301
14 5094 0 SUCCESS NODE_LOCAL 1/executor1_machine_host_name 2016/12/27 12:11:48 2 s 321.4 KB/6304
15 5095 0 SUCCESS NODE_LOCAL 1/executor1_machine_host_name 2016/12/27 12:11:49 2 s 319.1 KB/6267
我期待它来执行16并行任务(2执行人* 8芯)任一一个或多个执行者。我想我错过了一些东西。请帮忙。
更新:
传入的数据不是均匀分布的。例如第一个话题有5 * 5 = 25k个消息(5k = maxRatePerPartition,5s =批量间隔)的第二个分区,另外两个分区几乎有0个数据。第二个主题每批有500-4000个消息,均匀分布在3个分区中。
当主题1中没有数据时,我会看到跨2个执行者的16个并行任务处理。
Index ID Attempt Status Locality Level Executor ID/Host Launch Time Duration GC Time Shuffle Read Size/Records Errors
0 330402 0 SUCCESS NODE_LOCAL 1/executor1_machine_host_name 2016/12/28 04:31:41 1 s 19.2 KB/193
1 330403 0 SUCCESS NODE_LOCAL 2/executor2_machine_host_name 2016/12/28 04:31:41 1 s 21.2 KB/227
2 330404 0 SUCCESS NODE_LOCAL 1/executor1_machine_host_name 2016/12/28 04:31:41 1 s 20.8 KB/214
3 330405 0 SUCCESS NODE_LOCAL 2/executor2_machine_host_name 2016/12/28 04:31:41 1 s 20.9 KB/222
4 330406 0 SUCCESS NODE_LOCAL 1/executor1_machine_host_name 2016/12/28 04:31:41 2 s 21.0 KB/222
5 330407 0 SUCCESS NODE_LOCAL 2/executor2_machine_host_name 2016/12/28 04:31:41 1 s 20.5 KB/213
6 330408 0 SUCCESS NODE_LOCAL 1/executor1_machine_host_name 2016/12/28 04:31:41 1 s 20.4 KB/207
7 330409 0 SUCCESS NODE_LOCAL 2/executor2_machine_host_name 2016/12/28 04:31:41 1 s 19.2 KB/188
8 330410 0 SUCCESS NODE_LOCAL 1/executor1_machine_host_name 2016/12/28 04:31:41 1 s 20.4 KB/214
9 330411 0 SUCCESS NODE_LOCAL 2/executor2_machine_host_name 2016/12/28 04:31:41 1 s 20.1 KB/206
10 330412 0 SUCCESS NODE_LOCAL 1/executor1_machine_host_name 2016/12/28 04:31:41 0.6 s 18.7 KB/183
11 330413 0 SUCCESS NODE_LOCAL 2/executor2_machine_host_name 2016/12/28 04:31:41 1 s 20.6 KB/217
12 330414 0 SUCCESS NODE_LOCAL 1/executor1_machine_host_name 2016/12/28 04:31:41 1 s 20.0 KB/206
13 330415 0 SUCCESS NODE_LOCAL 2/executor2_machine_host_name 2016/12/28 04:31:41 1 s 20.7 KB/216
14 330416 0 SUCCESS NODE_LOCAL 1/executor1_machine_host_name 2016/12/28 04:31:41 1 s 18.8 KB/186
15 330417 0 SUCCESS NODE_LOCAL 2/executor2_machine_host_name 2016/12/28 04:31:41 1 s 20.4 KB/213
请检查此问题[回答一次](http://stackoverflow.com/questions/38465692/spark-coalesce-relationship-with-number-of-executors-and-cores/40410040#40410040)。 – mrsrinivas
尝试给予'--num-executors 6'(因为你有2个主题,每个主题有3个分区)。 ** 1个分区= 1个执行者**是理想的选择。('--executor-cores'将取决于你的核心可用性和每个分区所需的并行化) – mrsrinivas
我试着用6个执行器和4个内核,但这个阶段的所有任务仍然在同一个执行器上执行(现在每次4个) –