這篇是講解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