Flink Solt優(yōu)化需求與方案
Slot可以認(rèn)為是taskmanager上面一塊獨(dú)立分配的資源,是taskmanager并行執(zhí)行的能力的體現(xiàn)。Taskmanager中有兩種使用slot的方法:
一個taskmanager中設(shè)置了一個slot。
一個taskmanager中設(shè)置了多個slot。
每個task slot 表示TaskManager 擁有資源的一個固定大小的子集。假如一個taskManager 有三個slot,那么它會將其管理的內(nèi)存分成三份給各個slot。資源slot化意味著一個subtask 將不需要跟來自其他job 的subtask 競爭被管理的內(nèi)存,取而代之的是它將擁有一定數(shù)量的內(nèi)存儲備。需要注意的是,這里不會涉及到CPU 的隔離,slot 目前僅用來隔離task 的受管理的內(nèi)存。通過調(diào)整task slot 的數(shù)量,允許用戶定義subtask 之間隔離的方式。如果一個TaskManager 一個slot,那將意味著每個task group運(yùn)行在獨(dú)立的JVM 中(該JVM可能是通過一個特定的容器啟動的),而一個TaskManager 多個slot 意味著更多的subtask 可以共享同一個JVM。而在同一個JVM 進(jìn)程中的task 將共享TCP 連接(基于多路復(fù)用)和心跳消息。它們也可能共享數(shù)據(jù)集和數(shù)據(jù)結(jié)構(gòu)。因此,對于資源密集型任務(wù)(尤其是對cpu使用較為密集的)不建議使用單個taskmanager中創(chuàng)建多個slot使用,否則容易導(dǎo)致taskmanager心跳超時,出現(xiàn)任務(wù)失敗。如果需要設(shè)置單taskmanager多slot,參考如下操作。
方式一:在配置文件中配置taskmanager.numberOfTaskSlots,通過修改提交任務(wù)的客戶端配置文件中的配置flink-conf.yaml配置,如下圖:將該值設(shè)置為需要調(diào)整的數(shù)值即可。
方式二:啟動命令的過程中使用-ys命令傳入,例如以下命令:
./flink run -m yarn-cluster -p 1 -ys 3 ../examples/streaming/WindowJoin.jar
在啟動后在一個taskmanager中會啟動3個slot。
設(shè)置單taskmanager多slot需要優(yōu)化以下參數(shù)
參數(shù)名稱
默認(rèn)值
意義與調(diào)整建議
yarn.containers.vcores
1
每個taskmanager(也就是container)內(nèi)部需要啟動使用的vcore的數(shù)量
配置建議:與配置的slot數(shù)量相同一致
taskmanager.network.netty.server.numThreads
1(如果配置為-1,則默認(rèn)跟slot數(shù)量保持一致)
Taskmanager作為服務(wù)端,并行線程數(shù)通道數(shù)量
配置建議:與配置的slot數(shù)量相同一致
taskmanager.network.netty.client.numThreads
1(如果配置為-1,則默認(rèn)跟slot數(shù)量保持一致)
Taskmanager作為客戶端,并行線程數(shù)通道數(shù)量
配置建議:與配置的slot數(shù)量相同一致
taskmanager.network.netty.num-arenas
1(如果配置為-1,則默認(rèn)跟slot數(shù)量保持一致)
Netty域的數(shù)量
配置建議:與配置的slot數(shù)量相同一致
taskmanager.network.memory.max
1G
Netty使用的緩存數(shù)量的最大值,通常情況下隨著slot數(shù)量增加,netty線程數(shù)量增加,那么緩存數(shù)據(jù)的量會越來越多此時需要增加這個緩存的數(shù)量。
配置建議:2G以上,如果
增加taskmanager的啟動內(nèi)存,即-yjm
跟slot數(shù)量保持一致
一個taskmanager在啟動后,如果設(shè)置了多個slot,每個slot會均分啟動內(nèi)存
EI企業(yè)智能 Flink FusionInsight JVM
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。