[英]Low performance of yarn cluster with batch flink jobs
我出於測試目的在紗線上玩flink,我具有以下設置:
3台AWS機器(32核和64 GB內存)
我手動安裝了帶有hdfs和yarn服務的Hadoop 2(不使用EMR)。
#1機器運行在主文件中定義的HDFS-(NameNode&SeconderyNameNode)和YARN-(resourcemanager)
#2機器運行HDFS-(datanode)和YARN-(nodemanager),在slaves文件中定義
#3機器運行HDFS-(datanode)和YARN-(nodemanager),在slaves文件中定義
我想提交Apache flink作業,該作業從hdfs讀取大約20GB的日志,然后對其進行處理,然后將結果存儲在cassandra中
問題是我認為我做錯了,因為這項工作花費大量時間,大約一個小時,而且我認為它不是很優化。
我使用以下命令運行flink:
./flink-1.3.0/bin/flink運行-yn 2 -ys 30 -yjm 7000 -ytm 8000 -m yarn-cluster /home/ubuntu/reports_script-1.0-SNAPSHOT.jar
而且我在flink日志上看到有60個任務槽正在使用中,但是當我查看yarn頁面時,我看到vcore和內存的使用率非常低
我究竟做錯了什么?
需要注意的幾件事:
每個TaskManager容器的vcore數量的默認值為1。 要增加它,請使用yarn.containers.vcores
參數。 除非您使用容器執行程序來強制容器僅使用vcore
使用許多CPU內核,否則它可能對工作完全沒有影響(並且在YARN UI中看起來很奇怪)。
為TaskManager提供7GB內存意味着它實際上將獲得約5.2 GB的JVM堆,因為對JVM采取了一些措施。 5.3GB的30個插槽意味着每個插槽約170 MB的內存。 那行得通,但是實際上並不很多。
檢查Flink Web UI,以確保您的作業確實以適當的並行度運行。 您還可以檢查時間在哪里(執行哪個操作)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.