天天看點

大資料下Flink on YarnSession 高可用叢集環境部署開辟資源釋出任務

作者:小楊網際網路

前言:

搭建大資料環境叢集環境算是比較麻煩的一個事情,并且對硬體要求也比較高其中搭建大資料環境需要準備jdk環境和zk環境,還有hdfs,還有ssh之間的免密操作,還有主機名稱通路不通的問題 等。

必然會出現的問題:環境版本,配置問題,記憶體問題,節點端口通訊等。

最終效果圖:

大資料下Flink on YarnSession 高可用叢集環境部署開辟資源釋出任務

一 環境準備:

三台伺服器:

jdk jdk1.8 環境變量
hadoop hadoop-3.1.3 版本
flink flink-1.6.1 版本
192.168.192.150 免密登入
從1 192.168.192.151 免密登入
從2 192.168.192.152 免密登入

三台伺服器設定免密登入,且配置目前主機的别名映射:

vim /etc/hosts

大資料下Flink on YarnSession 高可用叢集環境部署開辟資源釋出任務

三台伺服器的配置資訊:

我這裡電腦是16G運作記憶體,也可以看裝置管理器(虛拟機設定太大運作記憶體虛拟機會報錯,适量記憶體配置)

大資料下Flink on YarnSession 高可用叢集環境部署開辟資源釋出任務

二 配置檔案:

2.1 配置hadoop-env.sh檔案

vim /opt/hadoop-3.1.3/etc/hadoop/hadoop-env.sh
           
export JAVA_HOME=/usr/local/jdk1.8.0_301

export HADOOP_HOME=/opt/hadoop-3.1.3           
大資料下Flink on YarnSession 高可用叢集環境部署開辟資源釋出任務

2.2 配置core-site.xml檔案

vim /opt/hadoop-3.1.3/etc/hadoop/core-site.xml
<property>
  <name>fs.default.name</name>
  <value>hdfs://192.168.192.150:9000</value>
</property>

           
大資料下Flink on YarnSession 高可用叢集環境部署開辟資源釋出任務

2.3 配置yarn-site.xml檔案

vim /opt/hadoop-3.1.3/etc/hadoop/yarn-site.xml
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
  <value>192.168.192.150:8025</value>
</property>
<property>
  <name>yarn.resourcemanager.scheduler.address</name>
  <value>192.168.192.150:8030</value>
</property>
<property>
  <name>yarn.resourcemanager.address</name>
  <value>192.168.192.150:8050</value>
</property>
<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>
<property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
</property>

           
大資料下Flink on YarnSession 高可用叢集環境部署開辟資源釋出任務

2.4配置mapred-site.xml檔案

vim /opt/hadoop-3.1.3/etc/hadoop/mapred-site.xml
<property>
  <name>mapred.job.tracker</name>
  <value>192.168.192.150:54311</value>
</property>
<property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
<property>
  <name>mapreduce.map.env</name>
  <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
<property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
           
大資料下Flink on YarnSession 高可用叢集環境部署開辟資源釋出任務

2.5 配置hdfs-site.xml檔案

vim /opt/hadoop-3.1.3/etc/hadoop/hdfs-site.xml
<property>
  <name>dfs.replication</name>
  <value>2</value>
</property>
<property>
  <name>dfs.namenode.name.dir</name>
  <value>file:/data/hadoop/hadoop_data/hdfs/namenode</value>
</property>
           
大資料下Flink on YarnSession 高可用叢集環境部署開辟資源釋出任務

2.6 配置workers檔案

vim /opt/hadoop-3.1.3/etc/hadoop/workers
大資料下Flink on YarnSession 高可用叢集環境部署開辟資源釋出任務

2.7 配置start-dfs.sh和stop-dfs.sh檔案

vim /opt/hadoop-3.1.3/sbin/start-dfs.sh

vim /opt/hadoop-3.1.3/sbin/stop-dfs.sh

HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root           

因為hdfs啟動是root使用者需要配置root配置,也可以加到/etc/profile 全局環境變量中

大資料下Flink on YarnSession 高可用叢集環境部署開辟資源釋出任務

2.8 配置start-yarn.sh和stop-yarn.sh檔案

vim /opt/hadoop-3.1.3/sbin/start-yarn.sh

vim /opt/hadoop-3.1.3/sbin/stop-yarn.sh

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root           
大資料下Flink on YarnSession 高可用叢集環境部署開辟資源釋出任務

2.9 把配置好的配置複制到其他倆台節點伺服器上面,直接複制/opt/hodoop3.1.3

scp -r /opt/hodoop3.1.3 slave1:/opt/

scp -r /opt/hodoop3.1.3 slave2:/opt/

三 啟動叢集:

3.1 初始化NameNode

/opt/hadoop-3.1.3/bin/hadoop namenode -format

(注意:這裡如果jps沒有namenode就需要手動啟動了)

hadoop-daemon.sh start namenode

大資料下Flink on YarnSession 高可用叢集環境部署開辟資源釋出任務
大資料下Flink on YarnSession 高可用叢集環境部署開辟資源釋出任務

3.2 直接執行全部啟動的腳本

start-all.sh

大資料下Flink on YarnSession 高可用叢集環境部署開辟資源釋出任務

四,啟動後狀态

master->192.168.192.150

大資料下Flink on YarnSession 高可用叢集環境部署開辟資源釋出任務

slave1-> 192.168.192.151

大資料下Flink on YarnSession 高可用叢集環境部署開辟資源釋出任務

slaev2->192.168.192.152

大資料下Flink on YarnSession 高可用叢集環境部署開辟資源釋出任務

QuorumPeerMain zookeeper的程序

ResourceManager flink程序

TaskManagerRunner flink程序

NodeManager yarn程序

NameNode HDFS程序

DataNode HDFS程序

web頁面通路:

大資料位址:

http://192.168.192.150:8088

大資料下Flink on YarnSession 高可用叢集環境部署開辟資源釋出任務

flink通路位址:

http://192.168.192.150:8081

大資料下Flink on YarnSession 高可用叢集環境部署開辟資源釋出任務

五,采用yarn-session+ flink送出任務執行(這裡有很多種任務送出,flink單服務送出,yarn-session送出)

./bin/flink run -m yarn-cluster -yn 2 -yjm 1024 -ytm 1024 -c com.xiaoyang.streaming.SocketDemoFullCount ../Flink-1.0-SNAPSHOT.jar
大資料下Flink on YarnSession 高可用叢集環境部署開辟資源釋出任務

去hadoop界面檢視任務執行情況

大資料下Flink on YarnSession 高可用叢集環境部署開辟資源釋出任務

為啥要采用這種方式部署:

(開辟資源+送出任務)

沒次建立新的flink叢集任務之間互不影響,任務執行完成後對應叢集也會消失。

先開辟資源再送出任務

這種會使用是以任務都會送出到一個資源,任務需要手動停止,不易于拓展和管理

六,問題記錄排查和解決

6.1任務啟動失敗

大資料下Flink on YarnSession 高可用叢集環境部署開辟資源釋出任務

這種問題一看就是腳本問題啟動問題

錯誤腳本:

./bin/flink run -m yarn-cluster -yn 2 -yjm 1024 -ytm 1024 ../Flink-1.0-SNAPSHOT.jar -c com.xiaoyang.streaming.SocketDemoFullCount

正确腳本:

./bin/flink run -m yarn-cluster -yn 2 -yjm 1024 -ytm 1024 -c com.xiaoyang.streaming.SocketDemoFullCount ../Flink-1.0-SNAPSHOT.jar

6.2 叢集配置問題别名

叢集裡面的配置最好使用ip配置,不要使用别名,這樣在通訊的時候不會出現端口問題,這樣啟動任務的時候會有連接配接問題。

6.3 權限配置問題

權限配置問題需要配置要麼配置到全局變量或者 指定配置裡面,不然會報錯。

HDFS_DATANODE_USER=root

HDFS_DATANODE_SECURE_USER=hdfs

HDFS_NAMENODE_USER=root

HDFS_SECONDARYNAMENODE_USER=root

YARN_RESOURCEMANAGER_USER=root

HADOOP_SECURE_DN_USER=yarn

YARN_NODEMANAGER_USER=root

6.4 hdfs 節點啟動問題

主節點必須要有NameNode ,從節點要有DataNode 不然啟動hdfs啟動會報錯。

6.5 環境變量配置問題,hadoop配置jdk環境,如果不配置啟動也會報錯。

6.6 配置問題 /opt/hadoop-3.1.3/etc/hadoop/目錄下的配置檔案

如果配置錯誤也會導緻報錯各種問題,是以配置需要仔細檢查

大資料下Flink on YarnSession 高可用叢集環境部署開辟資源釋出任務

6.7 其他問題,這裡包括版本包的問題,依賴包的問題,不能太新也不能太舊

總結:

首先部署hadoop叢集其實還是比較麻煩的,環境配置,各個配置的依賴,節點資訊,當然部署過程難免也會遇到很多問題,但是我們在解決一個困擾很久的問題的時候你不僅在成長還會收獲滿滿的成就感。

————沒有與生俱來的天賦,都是後天的努力拼搏(我是小楊,謝謝你的關注和支援)

繼續閱讀