flink的onYarn模式环境搭建

一.onYarn模式

把资源管理器交给yarn模式进行管理

1.两种运行模式

1)session-cluster模式

session:会话,开辟一块新的公共的空间

先启动集群,直接向yarn申请空间,资源(session)保持不变,这个集群会常驻在yarn的集群中,不需要时进行手动停止,job任务可以向这个session提交,所有任务共享这个session,如果资源用完,需要等待之间的任务执行完毕释放资源才可以使用。

例:有100个工人,装修公司有5家,a公司有30人,b公司有10人等,a公司不同任务分配一定数量的工作人员,如果a公司人员分配完后,又新来一个job任务,这个任务只能等待之前的任务结束释放人员后,才能使用。

适合场景:规模小,数据量不大,执行时间短的小任务

2)per-job-cluster模式

启动服务不会默认开启任何集群,提交job任务的时候才分配资源,每个job任务都会对应一个小集群,单独申请,与其它job任务无关,job任务执行完毕后自动释放资源。(动态分配)

例:100人去打乒乓球,球只有10个,球不够就增加球,球多了就释放球

适合场景:规模大,数据量较大,执行时间较长的任务

二.flink的jar包问题

flink的jar下载路径:Apache Flink: Downloadshttps://flink.apache.org/downloads.html#apache-flink-1144

flink的onYarn模式需要用到hadoop,所以需要添加hadoop的支持

 1)flink1.8(不包含)版本之前,直接下载flink-xxx-hadoop-xxx.jar

flink的onYarn模式环境搭建_第1张图片

 

 2)flink1.8-1.10版本,flink不包含hadoop的内容,下载需要的hadoop版本,放到flink的 lib/ 目录下

 3) flink1.10版本后,直接把hadoop casspath设置到环境变量中

三.搭配环境变量 

   步骤

     a. 把hadoop casspath设置到环境变量中

#在家目录下
vi .bashrc
#添加
export HADOOP_CLASSPATH=`hadoop classpath`
source .bashrc

     b.  修改配置文件 , flink/conf/下,修改master,worker

#修改主节点配置文件
vi masters
主节点(node160):8081
#修改从节点
vi workers
从节点(node181)

     c. 启动hadoop服务

start-all.sh

          jps,检验是否启动成功,成功如下显示  

flink的onYarn模式环境搭建_第2张图片

      d.  提交flink任务

            1).session-cluster模式 

                   a.提交job任务前先开启session集

 ${FLINK_HOME}/bin/yarn-session.sh -n 1 -s 2 -jm 1024 -tm 1024 -nm xxx -d
             -n  TaskManager的数量
             -s  每个TaskManager上的slot的数量
             -jm JobManager的内存
             -tm TaskManager的内存
             -nm yarn的AppName

                   注意:如果这里报错信息如下,则是安全模式没有关闭

Caused by: org.apache.hadoop.ipc.RemoteException: Cannot create directory /user/bduser/.flink/application_1653643891961_0002. Name node is in safe mode.

                     关闭安全模式

hdfs dfsadmin -safemode leave

                     查看session是否开启,另开一个窗口

                    flink的onYarn模式环境搭建_第3张图片

               b.查看webUI ->在浏览器中输入 IP地址:8088 -> 进入

                   flink的onYarn模式环境搭建_第4张图片

                  flink的onYarn模式环境搭建_第5张图片

               c. 提交任务 -> 开启两个端口 -> 一个提交任务,一个开启8888端口

flink run -c Demo2_WordCount_DataStream -p 1 ./file/flink/myScala-1.0-SNAPSHOT.jar --host node160 --port 8888
#开启端口
nc -lk 8888

                d.查看结果

                   (1)在8888端口输入内容

                           flink的onYarn模式环境搭建_第6张图片

                     (2)进入webUI,进入方法在b条,查看结果

                       flink的onYarn模式环境搭建_第7张图片

                       flink的onYarn模式环境搭建_第8张图片

                 e.取消任务

flink cancel JobID

                    (1) JobID位置   Running Jobs -> 点击任务 -> 复制IP地址

                         flink的onYarn模式环境搭建_第9张图片

                         flink的onYarn模式环境搭建_第10张图片

                f.关闭session

yarn application -kill applicationID

                     (1) applicationID位置

                         flink的onYarn模式环境搭建_第11张图片

          1)per-job-cluster模式

               直接提交任务,自动在yarn集群中申请资源

               a.开启8888端口 (提交任务后再端口输入内容)

nc -lk 8888

               b.提交任务

 flink run -m yarn-cluster -c 类的全路径 -p 并行度 jar包的完整路径 参数
例: flink run -m yarn-cluster -c Demo2_WordCount_DataStream -p 1 ./file/flink/myScala-1.0-SNAPSHOT.jar --host node160 --port 8888

                c.查看jps

                    flink的onYarn模式环境搭建_第12张图片

                d.查看webUI结果

                   flink的onYarn模式环境搭建_第13张图片

                    flink的onYarn模式环境搭建_第14张图片

                    flink的onYarn模式环境搭建_第15张图片

                e.取消任务

flink calcel ID

                    flink的onYarn模式环境搭建_第16张图片

     e.以上都可以出来则环境搭配成功,最后关闭集群

start-hadoop.sh

 

               

 

你可能感兴趣的:(flink,大数据,big,data)