天天看点

CDH之后搭建flink

这篇是讲解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

继续阅读