1、Flink Local模式部署
Ⅰ、依赖环境:
linux机器
jdk1.8及以上【配置JAVA_HOME环境变量】
Ⅱ、下载地址
https://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-1.6.1/flink-1.6.1-bin-hadoop27-scala_2.11.tgz
Ⅲ、local模式快速安装启动
(1)解压:tar -zxvf flink-1.6.1-bin-hadoop27-scala_2.11.tgz
(2)cd flink-1.6.1
(3)启动:./bin/start-cluster.sh
(4)停止:./bin/stop-cluster.sh
(5)访问web界面
http://hostname:8081
2、Flink StandAlone模式部署和解析
Ⅰ、依赖环境
jdk1.8及以上【配置JAVA_HOME环境变量】
ssh免密码登录【集群内节点之间免密登录】
Ⅱ、集群规划:
master(JobManager) slave/worker(TaskManager)
hadoop100(master) hadoop101(slave) hadoop102(slave)
Ⅲ、集群安装
1:修改conf/flink-conf.yaml
jobmanager.rpc.address: hadoop100
2:修改conf/slaves
hadoop101
hadoop102
3:拷贝到其他节点
scp -rq /usr/local/flink-1.6.1 hadoop101:/usr/local
scp -rq /usr/local/flink-1.6.1 hadoop102:/usr/local
4:在hadoop100(master)节点启动
bin/start-cluster.sh
5:访问http://hadoop100:8081
Ⅳ、Flink配置文件重要参数解析
jobmanager.heap.mb:jobmanager节点可用的内存大小
taskmanager.heap.mb:taskmanager节点可用的内存大小
taskmanager.numberOfTaskSlots:每台机器可用的cpu数量
parallelism.default:默认情况下任务的并行度
taskmanager.tmp.dirs:taskmanager的临时数据存储目录
Ⅴ、slot和parallelism总结
1.slot是静态的概念,是指taskmanager具有的并发执行能力
2.parallelism是动态的概念,是指程序运行时实际使用的并发能力
3.设置合适的parallelism能提高运算效率,太多了和太少了都不行
Ⅵ、集群节点重启和扩容
启动jobmanager
如果集群中的jobmanager进程挂了,执行下面命令启动。
bin/jobmanager.sh start
bin/jobmanager.sh stop
启动taskmanager
添加新的taskmanager节点或者重启taskmanager节点
bin/taskmanager.sh start
bin/taskmanager.sh stop
Ⅶ、Flink standalone集群中job的容错
jobmanager挂掉
正在执行的任务会失败
存在单点故障,(Flink支持HA)
taskmanager挂掉
如果有多余的taskmanager节点,flink会自动把任务调度到其它节点执行
3、Flink on Yarn模式部署和解析
Ⅰ、依赖环境
至少hadoop2.2
hdfs & yarn
Ⅱ、Flink on Yarn 的两种使用方式
Flink on Yarn的两种运行方式:
第一种【yarn-session.sh(开辟资源) flink run(提交任务)】
启动一个一直运行的flink集群
./bin/yarn-session.sh -n 2 -jm 1024 -tm 1024 [-d]
附着到一个已存在的flink yarn session
./bin/yarn-session.sh -id application_1463870264508_0029
执行任务
./bin/flink run ./examples/batch/WordCount.jar -input hdfs://hadoop100:9000/LICENSE -output hdfs://hadoop100:9000/wordcount-result.txt
停止任务 【web界面或者命令行执行cancel命令】
第二种【flink run -m yarn-cluster(开辟资源 提交任务)】
启动集群,执行任务
./bin/flink run -m yarn-cluster -yn 2 -yjm 1024 -ytm 1024 ./examples/batch/WordCount.jar
注意:client端必须要设置YARN_CONF_DIR或者HADOOP_CONF_DIR或者HADOOP_HOME环境变量,通过这个环境变量来读取YARN和HDFS的配置信息,否则启动会失败
./bin/yarn-session.sh 命令分析:
./bin/flink run 命令分析:
Ⅲ、Flink在Yarn上的分布:
ResourceManager
NodeManager
AppMater(jobmanager和它运行在一个Container中)
Container(taskmanager运行在上面)
Ⅳ、使用on-yarn的好处:
提高集群机器的利用率
一套集群,可以执行MR任务,spark任务,flink任务等…
Ⅴ、Flink on yarn内部实现: