1.環境變量配置
若要在Yarn上運行Flink應用,必須實現告訴Flink和yarn有關的配置。需要怎麼告訴Flink呢?
提交Flink任務的client端必須要設置YARN_CONF_DIR或者HADOOP_CONF_DIR環境變量,通過這個環境變量來讀取YARN和HDFS的配置信息,否則提交任務會失敗。
2.提交Flink任務到yarn的兩種方式
同時啓動Yarn application和Flink task
flink run -m yarn-cluster -ys 8 -ynm myapp -yn 4 -yjm 1024 -ytm 4096 -d -c com.paultech.MyApp ./myapp.jar
參數說明:
- -m 運行模式,這裏使用yarn-cluster,即yarn集羣模式。
- -ys slot個數。
- -ynm Yarn application的名字。
- -yn task manager 數量。
- -yjm job manager 的堆內存大小。
- -ytm task manager 的堆內存大小。
- -d detach模式。可以運行任務後無需再控制檯保持連接。
- -c 指定jar包中class全名。
先啓動Yarn application,再在指定的application內運行Flink task
啓動yarn session的命令如下:
yarn-session.sh -d -n 4 -nm riskmanater -jm 1024 -tm 4096 -t relative/path/to/file
相關參數解釋:
- -d: Detach模式
- -nm: Application名稱
- -jm: Job Manager 容器的內存
- -tm: Task Manager 容器的內存
- -t: 傳送文件至集羣,使用相對路徑。程序中讀取文件仍使用相對路徑
這裏的參數和上面flink的類似,只不過少了前綴y
在特定Flink yarn session上提交Flink任務:
flink run -yid application_12345678 --class MainClassFullPath riskmanager.jar
這裏使用-yid
參數來指定任務運行於那個Flink yarn session之上。