这篇是讲解CDH集群搭建之后,自己搭建flink去集成
tar -xzvf flink-1.7.2-bin-hadoop28-scala_2.11.tgz
vim ./.bash_profile
export FLINK_HOME=/home/bigdata/flink/flink-1.9.1
export HADOOP_CONF_DIR=/etc/hadoop/conf.cloudera.yarn/
source ~/.bash_profile
vim conf/flink-conf.yaml
改成各自节点的名称或者 IP 地址
#这个配置项有坑,可以借鉴这篇博客:https://www.jianshu.com/p/e48b73221c67
jobmanager.rpc.address: cnsz72vl0020
#端口
jobmanager.rpc.port: 6123
#JobManager的Web界面的端口(默认:8081)
#jobmanager.web.port: 8081
#开启高可用模式
high-availability: zookeeper
#指定 HDFS 的路径,用于存储 JobManager 的元数据 这里有坑 要相关jar包 (必选项) hdfs://cnsz71vl0663:8020/flink
high-availability.storageDir: hdfs://ns/flink/
#没jar包会报错: Could not find a file system implementation for scheme ‘hdfs’.
#The scheme is not directly supported by Flink and no Hadoop file system to support this scheme could be loaded
在flink的lib目录下添加jar包
chown -R bigdata:bigdata flink-shaded-hadoop-2-uber-2.7.5-7.0.jar (权限和所属组修改,hdfs报错有几种路径和权限)
#配置 zk 各个节点的端口(cnsz71vl0666,cnsz71vl0664,cnsz71vl0665)
high-availability.zookeeper.quorum: bigdata1:2181,bigdata2:2181,bigdata3:2181
#配置每个taskmanager生成的临时文件目录(注释)
taskmanager.tmp.dirs: /export/servers/flink-1.6.1/tmp (不要这个,有时候会报错)
#是否进行预分配内存,默认不进行预分配,这样在我们不使用flink集群时候不会占用集群资源
taskmanager.memory.preallocate: false
#zk 节点根目录,放置所有 flink 集群节点的 namespace (可选项)
high-availability.zookeeper.path.root: /home/bigdata/flink/ha
#zk 节点集群 id,放置了 flink 集群所需要的所有协调数据(这个可以不要,高可用的时候会冲突)
high-availability.cluster-id: /home/bigdata/flink/cluster_one
#配置Yarn重试次数
yarn.application-attempts: 10
#slots的数量需要被指定
parallelism.default: 1
创建目录(root权限)
su hdfs
hdfs dfs -mkdir -p /flink 然后给这个目录权限
hdfs dfs -chmod -R 777 /flink
(bigdata用户)
mkdir -p /home/bigdata/flink/cluster_one
mkdir -p /home/bigdata/flink/ha
mkdir -p /home/bigdata/flink/zok
从节点
vim conf/slaves
nsz72vl0019
nsz72vl0020
主节点
vim conf/masters
nsz72vl0019:8081
nsz72vl0020:8081
#查看运行任务 和结束任务
bin/flink list 查看flink运行个数
bin/flink cancel ‘’
yarn application --list
yarn appclication -kill “application_1587607494804_0008”
启动flink
/home/bigdata/flink/flink-1.9.1/log 日志路径
启动:/home/bigdata/flink/flink-1.9.1/bin/start-cluster.sh
停止:/home/bigdata/flink/flink-1.9.1/bin/stop-cluster.sh
./bin/flink run -m yarn-cluster -yn 2 ./examples/batch/WordCount.jar
./bin/flink run -m yarn-cluster -yn 2 ./examples/batch/WordCount.jar 测试用这个
./bin/yarn-session.sh -n 2 -tm 800
报错:File file:/home/bigdata/.flink/application_1587552951708_0001/lib/slf4j-log4j12-1.7.15.jar does not exist
yarn logs -applicationId application_1587607494804_0004 看相关日志
一直提示找不到文件 要设置权限visudo
cloudera-scm ALL=(ALL) NOPASSWD: ALL (这里放的和root的位置一样,)这个改成当时用的名称(这里可以不加的)
/home/bigdata/flink/flink-1.9.1/bin/yarn-session.sh -n4 -jm1024 -tm 4096 -s 2
可以看yarn的模式是否成功 bin/yarn-session.sh -d -s 2 -tm 800 -n 2
/home/bigdata/flink/flink-1.9.1/bin/yarn-session.sh -n 2 -tm 800 -s 1 -d
#-n 表示申请2个容器,
#-s 表示每个容器启动多少个slot
#-tm 表示每个TaskManager申请800M内存
#-d 表示以后台程序方式运行
启动成功jps(出现即可,不同配置不一样)
TaskManagerRunner
StandaloneSessionClusterEntrypoint
bin/yarn-session.sh -n 2 -tm 800 -s 1 -d
yarn-cluste
/home/bigdata/flink/flink-1.9.1/bin/yarn-session.sh主要是用来在Yarn上启动常驻Flink集群。
页面(也可以去yarn的任务页面看,是否有flink任务)
http://cnsz72vl0020:8081