说明:事先完成了以下的准备工作:
ubuntu16
安装了hadoop集群(完全分布式)
hadoop集群有5个节点:hadoop1~hadoop6(没有hadoop2)
每个节点都安装了flink-1.12.0(略),flink有六个节点
运行的代码jar包获取方式:
在windows上的IntelliJ IDEA上编写代码,打包成jar包提交到ubuntu上的集群上运行
运行flink自带的例子
1、standlone模式
1.1 standlone模式:
独立的flink集群,不需要依赖于其他的资源管理平台,自己有节点就可以启动。
1.2 standlone模式配置:
hadoop6节点上安装好flink后(到配置环境变量这一步),部署standlone模式。
(1) 修改flink安装目录下conf/flink-conf.yaml 文件
jobmanager.rpc.address: hadoop6
(2) 修改conf/workes文件
hadoop1
hadoop3
hadoop4
hadoop5
(3) hadoop6节点上执行以下命令,把flink安装文件分发到其他节点上,如把flink安装文件分发到hadoop1节点上。(注意也要分发到其他节点,此处举例子分发到hadoop1节点),分发到其他节点后要添加Flink的环境变量,此处略。
scp -r /home/ubuntu/Hadoop/flink-1.12.0 hadoop1:/home/ubuntu
(3) 启动集群
在hadoop6上执行命令:
start-cluster.sh
访问hadoop6:8081可以看到web界面。
1.3运行wordcount例子
(1) 运行flink自带的批处理的例子
在hadoop6节点上执行命令:
./bin/flink run ./examples/batch/WordCount.jar
运行结果:
2、 Flink on Yarn
2.1 Session-Cluster模式
(1) 启动hadoop集群(yarn hdfs)
(2) 启动yarn-session
在hadoop1节点(节点任选),进入flink安装目录,执行以下命令创建flink集群:
./bin/yarn-session.sh -n 2 -s 2 -jm 1024 -tm 1024 -nm test
集群创建成功之后可以看到下面的效果,给出的网址可以用来查看web UI界面,查看任务运行的情况。此时我们可以在YARN的web页面查看到application_1611892734589_0002这个应用。
用jps命令,在hadoop1节点上可以看到FlinkYarnSessionCli这个进程,在hadoop5节点上可以看到YarnSessionClusterEntrypoint进程。
(3) 执行任务
流处理:执行windows提交的jar包
hadoop4节点(节点任选),输入以下命令,用于输入数据。
nc -l 9000
hadoop3节点(节点任选)执行以下命令,-m后是第二步创建集群命令得到的地址,–host后是执行nc -l 9000命令的节点
./bin/flink run -m hadoop5:45373 -c com.wc.StreamWordCount /home/ubuntu/patchstream.jar --host hadoop4 --port 9000
hadoop3节点上的执行结果:
然后再执行nc -l 命令的那个窗口输入数据,可以在UI界面上看到结果
批处理 :任选节点执行命令,运行flink自带的例子,输入输出文件放在hdfs上。(注意:保持hadoop1节点状态不变,因为是在hadoop1节点上执行命令创建的flink集群)
./bin/flink run ./examples/batch/WordCount.jar --input 输入文件在hdfs上的路径 --output 输出文件的hdfs路径
2.2 Ser-Job-Cluster模式
(1) 开启hadoop集群(hdfs yarn)
(2) 执行job
流处理: windows提交的jar包
hadoop6节点(节点任选),执行以下命令,用于输入数据。
nc -l 9000
在hadoop1节点执行以下命令:
./bin/flink run -m yarn-cluster -yjm 1024 -ytm 1024 -c com.wc.StreamWordCount /home/ubuntu/patchstream.jar --host hadoop6 --port 9000
执行命令后的结果,用jps命令查看各个节点,节点hadoop5上有YarnTaskExecutorRunner进程。
在执行nc -l 9000命令的窗口输入数据,运行结果:
批处理: 任选节点, 运行flink自带的例子。(先把流处理把在hadoop1上创建的flink集群停掉)。输入输出文件放在hdfs上
./bin/flink run -m yarn-cluster -yjm 1024 -ytm 1024 -c com.wc.WordCount /home/ubuntu/FlinkWCProj-1.0-SNAPSHOT.jar --input hdfs://hadoop1:8020/input/flink/wordcount/wordcount.txt --output hdfs://hadoop1:8020/output/flink/wordcount/wordcountyarnmod2_batch_3
运行结果:
刚刚接触flink,有不对的地方希望大家指正。