1、Flink1.10集群環境搭建


Centos7下安裝Flink1.10(Standalone模式)

1、Linux下安裝jdk及環境配置

虛擬機設置如下,ios鏡像使用的Centos7。

參考博客Linux系統下安裝jdk及環境配置(兩種方法) - 韋邦杠 - 博客園 (cnblogs.com)

從官網上Java Downloads | Oracle下載jdk-8u301-linux-x64.tar.gz。進入目錄/usr,更改目錄權限chmod -R 777 local

使用xftp將jdk壓縮包傳輸到/usr/loacl目錄下。進入/usr/local目錄輸入解壓命令:tar zxvf jdk-8u301-linux-x64.tar.gz

配置環境變量:vi /etc/profile

export JAVA_HOME=/usr/local/jdk1.8.0_301
export CALSSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

輸入source /etc/profile刷新設置。

使用 javajavacjava -version 驗證是否安裝成功

配置完成。傳給另外兩台虛擬機:

scp -r /usr/local/jdk1.8.0_301 root@hadoop01:/usr/local/

scp -r /usr/local/jdk1.8.0_301 root@hadoop03:/usr/local/

scp /etc/profile root@hadoop01:/etc/profile

scp /etc/profile root@hadoop03:/etc/profile

另外兩台虛擬機刷新配置:source /etc/profile,輸入java -version驗證

2、配置ssh、root免密及關閉防火牆

關閉虛擬機,更改虛擬機名字為Hadoop01,創建完整克隆,分別命名為Hadoop02 Hadoop03

網絡配置

問題記錄:

重啟網絡服務:service network restart失敗

Restarting network (via systemctl):  Job for network.service failed because the control process exited with error code. See "systemctl status network.service" and "journalctl -xe" for details.
                                                           [失敗]

1、首先,在VMware workstation的菜單 編輯 -> 虛擬網絡編輯器,查看子網IP及DHCP

配置的IP地址應該在起始地址和結束地址范圍內。

2、進入虛擬機,打開終端,輸入ip addr

查看文件列表 ls /etc/sysconfig/network-scripts

3、輸入vi /etc/sysconfig/network-scripts/ifcfg-ens33

此處,三個虛擬機的網關都應與主機保持一致,在VMware workstation的菜單 編輯 -> 虛擬網絡編輯器->NAT設置中查看,IP地址分別為:

Hadoop01 192.168.115.130

Hadoop02 192.168.115.140

Hadoop03 192.168.115.150

每個虛擬機的mak地址都是不同的,所以每次配置時都需要先查看ip addr。配置完成后,保存退出。

4、輸入service network restart 重啟網絡服務。

輸入ip addr查看是否配置成功。

使用電腦的命令提示行查看是否能ping通

按照上面的步驟,配置另外兩個虛擬機的網絡。配置完成后,檢查是否能互相ping通。

192.168.115.130 ping 192.168.115.140、192.168.115.150

192.168.115.140 ping 192.168.115.130、192.168.115.150

至此,網絡配置基本完成。

配置ssh

彎路走得有點多。。。

輸入vi /etc/ssh/sshd_config,打開ssh配置文件

將 PermitRootLogin 和 PubkeyAuthentication 的設置打開。

輸入systemctl estart sshd.service 啟動ssh服務;

設置開機自動啟動ssh服務systemctl enable sshd.service

配好其中一台,另外兩台如果出問題也可以克隆配好的那台,然后改個IP就好啦

配置hosts

輸入hostname查看當前主機名。

輸入hostnamectl set-hostname xxx 修改主機名為hadoop01、hadoop02、hadoop03。

輸入vi /etc/hosts打開文件,在最后一行加入:IP地址 主機名,如下:

三台虛擬機都這樣配,配置完成后,互相ping主機名進行驗證。

關閉防火牆

輸入systemctl status firewalld 查看防火牆狀態

使用systemctl stop firewalld關閉防火牆

可以看到,此時防火牆已關閉。輸入systemctl disable firewalld命令,即可永久關閉防火牆。

關閉SELINUX

使用vi /etc/selinux/config編輯文件,將SELINUX=enfocing修改為disabled.

配置ssh免密登陸

參考文檔centos7 root用戶下配置虛擬機的免密登錄_赴前塵-CSDN博客

通過命令 ssh-keygen -t rsa 生成公鑰和私鑰,輸入命令后直接按三次確認鍵就能看到下面輸出界面。

之后進入到.ssh文件夾下,就能看到生成的公鑰id_rsa.pub和私鑰文件id_rsa。hadoop02、hadoop03同樣操作。

在Hadoop02上輸入cat /root/.ssh/id_rsa.pub查看公鑰內容,復制備用。

同樣,在Hadoop03上,復制公鑰內容備用。

  • 以下都是在hadoop01上執行的操作:

.ssh目錄下執行 touch authorized_keys創建存放秘鑰的文件。

執行 cp id_rsa.pub authorized_keys 將公鑰放進authorized_keys文件,可無密登錄本機;

執行 chmod 644 authorized_keys 修改 authorized_keys 權限;

執行 sudo service sshd restart 重啟ssh服務;

ssh hadoop01 命令測試本機免密登錄,第一次需要輸入 yes 下次就不用再輸入了

輸入echo '公鑰' >> authorized_keys 將前面復制的Hadoop02、Hadoop03公鑰內容寫入authorized_keys中

分別執行

scp /root/.ssh/authorized_keys hadoop02:/root/.ssh

scp /root/.ssh/authorized_keys hadoop03:/root/.ssh

將hadoop01上的authorized_keys 分發給hadoop02,hadoop03(如果有需要輸入yes的步驟,輸入yes即可)

  • 以下都是在hadoop02上執行的操作

執行 cd /root/.ssh進入到.ssh目錄下,chmod 644 authorized_keys修改 authorized_keys 權限

  • 以下都是在hadoop03上執行的操作

執行 cd /root/.ssh進入到.ssh目錄下,chmod 644 authorized_keys修改 authorized_keys 權限

權限配置完成后,回到hadoop01,輸入ssh hadoop02連接 hadoop02,exit退出連接;ssh hadoop03連接 hadoop03,exit退出連接。

同樣,在Hadoop02、Hadoop03進行測試。

至此, root用戶下三台虛擬機互相免密登錄配置完成。

3、Hadoop正式安裝

zookeeper分布式集群環境搭建

此處搭建zookeeper分布式集群是為搭建HA(高可用)-Hadoop集群環境做准備。因為后面搭建的並不是HA-Hadoop集群,所以此處可直接跳過。

從官網上下載apache-zookeeper-3.5.9-bin.tar.gz。

使用xftp將zookeeper壓縮包傳輸到/usr/loacl目錄下。進入/usr/local目錄輸入解壓命令:tar -zxvf apache-zookeeper-3.5.9-bin.tar.gz

輸入mv /usr/local/apache-zookeeper-3.5.9-bin /usr/local/zookeeper,將文件夾重命名

進入目錄/usr/local/zookeeper/conf,將文件zoo_sample.cfg重命名為zoo.cfg:mv /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg

  • 配置zookeeper環境變量

vi /etc/profile

export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin

刷新配置文件source /etc/profileecho $ZOOKEEPER_HOME打印一下看能不能輸出

  • 配置zoo.cfg

輸入vi /usr/local/zookeeper/conf/zoo.cfg,添加以下內容:

dataDir=/usr/local/zookeeper/data
server.1=hadoop01:2888:3888
server.2=hadoop02:2888:3888
server.3=hadoop03:2888:3888

ZooKeeper 集群中, 每台服務器上的 zoo.cfg 配置文件內容一致

創建文件/usr/local/zookeeper/data/myid,並寫入相應的id

mkdir /usr/local/zookeeper/data

echo 1 > /usr/local/zookeeper/data/myid

server.1 的 myid 文件內容就是 "1"。

每個服務器的 myid 內容都不同,且需要保證和自己的 zoo.cfg 配置文件中 "server.id=host:port:port" 的 id 值一致。

按照相同步驟,為 Hadoop02 和 Hadoop03 配置 zoo.cfg 和 myid 文件。zoo.cfg文件內容相同,Hadoop02 的 myid 文件內容為 2,Hadoop03 的 myid 文件內容為 3。

最后,在各機器上執行/usr/local/zookeeper/bin/zkServer.sh start來啟動zookeeper集群,使用jps命令查看ZooKeeper的啟動進程。

/usr/local/zookeeper/bin/zkServer.sh stop關閉zookeeper。

Hadoop分布式集群搭建

參考博客:

3台centos7上安裝hadoop3.1.4_sndayYU的博客-CSDN博客

從官網下載hadoop-3.1.4.tar.gz,解壓到/usr/local/hadoop目錄下:進入/usr/local目錄cd /usr/local,輸入解壓命令tar -zxvf hadoop-3.1.4.tar.gz,重命名文件夾mv /usr/local/hadoop-3.1.4 /usr/local/hadoop

修改5個配置文件

不一定以此為准,具體情況具體分析,建議多在網上找找相對應的配置文件

1、vi /usr/local/hadoop/etc/hadoop/hadoop-env.sh,第54行

export JAVA_HOME=/usr/local/jdk1.8.0_301

2、修改/usr/local/hadoop/etc/hadoop/core-site.xml

vi /usr/local/hadoop/etc/hadoop/core-site.xml

<!--指定HADOOP所使用的文件系統schema(URI),HDFS的老大(NameNode)的地址-->
		<property>
   				<name>fs.defaultFS</name>
                <value>hdfs://hadoop01:9000</value>
         </property>
        <!--指定HADOOP運行時產生文件的存儲目錄-->
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/usr/local/hadoop/data</value>
        </property>

3、修改/usr/local/hadoop/etc/hadoop/hdfs-site.xml

vi /usr/local/hadoop/etc/hadoop/hdfs-site.xml

		
		<property>
                <name>dfs.namenode.http-address</name>
                <value>hadoop01:9870</value>
        </property>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>hadoop03:9868</value>
        </property>

4、修改/usr/local/hadoop/etc/hadoop/mapred-site.xml

vi /usr/local/hadoop/etc/hadoop/mapred-site.xml

<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
</configuration>

5、修改/usr/local/hadoop/etc/hadoop/yarn-site.xml

vi /usr/local/hadoop/etc/hadoop/yarn-site.xml

		<property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>hadoop02</value>
        </property>
        <property>
                <name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>		
        </property>
        <!-- 設置虛擬內存更大些,默認2.1,即物理內存1G,虛擬內存2.1G -->
        <property>
                <name>yarn.nodemanager.vmem-pmem-ratio</name>
                <value>2.1</value>
        </property>

配置環境變量和workers

  • 配置workers

    輸入vim /usr/local/hadoop/etc/hadoop/workers

hadoop01
hadoop02
hadoop03
  • 配置環境變量

    vi /etc/profile

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

傳到其它兩台服務器

scp -r /usr/local/hadoop root@hadoop02:/usr/local/

scp -r /usr/local/hadoop root@hadoop03:/usr/local/

scp /etc/profile root@hadoop02:/etc/profile

scp /etc/profile root@hadoop03:/etc/profile

使配置環境變量生效:. /etc/profile

三台虛擬機啟用參數,並進行驗證:

hadoop version

win10配置hosts

Windows下修改hosts文件_bjchen的博客-CSDN博客_windows修改hosts文件

配置非root用戶的ssh免密登錄

在啟動集群時出現錯誤:

原因是在非root用戶下,未配置ssh免密登錄。以下為配置方法:

進入.ssh目錄cd ~/.ssh,通過命令 ssh-keygen -t rsa 生成公鑰和私鑰。hadoop02、hadoop03同樣操作。

進入.ssh目錄,將hadoop01、hadoop02和hadoop03的公鑰合並到authorized_key文件中。

cat id_rsa.pub>> authorized_keys
ssh Pluto@hadoop02 cat ~/.ssh/id_rsa.pub>> authorized_keys
ssh Pluto@hadoop03 cat ~/.ssh/id_rsa.pub>> authorized_keys

將hadoop01上的authorized_keys、known_hosts文件傳給hadoop02和hadoop03。

scp ~/.ssh/authorized_keys Pluto@hadoop02:~/.ssh/
scp ~/.ssh/authorized_keys Pluto@hadoop03:~/.ssh/
scp ~/.ssh/known_hosts Pluto@hadoop02:~/.ssh/
scp ~/.ssh/known_hosts Pluto@hadoop03:~/.ssh/

最后,在三台虛擬機的~/.ssh目錄下輸入chmod 600 ~/.ssh/authorized_keys修改authorized_keysd文件的權限。

此時,非root用戶下的ssh免密登錄配置完成。

啟動集群

首次需要格式化磁盤。在hadoop01上,以非root用戶進到/usr/local/hadoop目錄下,輸入hdfs namenode -format

[Pluto@hadoop01 hadoop]$ pwd
/usr/local/hadoop
[Pluto@hadoop01 hadoop]$ hdfs name -format

輸入指令:/usr/local/hadoop/sbin/start-dfs.sh

如果有這樣的報錯信息:

可以輸入:sudo chown -R 你自己電腦的用戶名 /usr/local/hadoop

在hadoop02上,以非root用戶進入/usr/local/hadoop目錄下,輸入指令:/usr/local/hadoop/sbin/start-yarn.sh

在hadoop03上進行驗證,使用jps查看進程。

[root@hadoop hadoop]# jps #顯示以下幾個進程說明啟動成功
96662 Jps
95273 DataNode #可有可無
95465 SecondaryNameNode #重要
95144 NameNode #重要
95900 NodeManager #可有可無
95775 ResourceManager #非常重要

驗證

  • 前端查看

在Hadoop01打開網頁:hdaoop01:9870

在Hadoop02打開網頁:hdaoop02:8088

  • 文件上傳驗證:

創建測試文件demo.txt

隨便寫點什么

上傳文件

檢查上傳的文件:

可以看到正是我們上傳的文件及內容

#注意啟動后驗證完必須關掉
start-all.sh

#關閉
stop-all.sh

4、Flink集群環境(Standalone模式)搭建

前置准備:CentOS7、jdk1.8、hadoop-3.1.4、flink-1.10.3

計划:

  • 在130安裝JobManager,150上安裝第二個JobManager;
  • 在3台服務器上都安裝TaskManager;

注:flink集群使用hadoop操作。

下載

上傳並解壓

使用Hadoop用戶,部署到/usr/local/hadoop/目錄下。

cd /usr/local/hadoop

解壓:tar zxf flink-1.10.3-bin-scala_2.12.tgz

將 flink-shaded-hadoop-2-uber-2.8.3-10.0.jar 放到flink-1.10.3 /lib目錄下:mv flink-shaded-hadoop-2-uber-2.8.3-10.0.jar flink-1.10.3/lib

配置文件

cd /usr/local/hadoop/flink-1.10.3/conf

  • flink-conf.yaml

輸入:vi flink-conf.yaml

添加下面內容:

jobmanager.rpc.address: hadoop01

  • maters

輸入:vi masters

添加內容:

hadoop01:8081
hadoop03:8081

  • slaves

輸入:vi slaves

添加內容:

hadoop01
hadoop02
hadoop03

  • 復制到另外兩台服務器

scp -r /usr/local/hadoop/flink-1.10.3 hadoop02:/usr/local/hadoop

scp -r /usr/local/hadoop/flink-1.10.3 hadoop03:/usr/local/hadoop

測試

啟動hdfs:/usr/local/hadoop/sbin/start-dfs.sh

啟動flink:/usr/local/hadoop/flink-1.10.3/bin/start-cluster.sh

使用jps查看進程:

可以看到flink啟動成功,打開瀏覽器,輸入:hadoop01:8081

至此,Flink集群環境(Standalone模式)搭建成功。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM