虛擬機環境搭建
虛擬機環境搭建比較容易,網上教程很多,我常用的是ubantu18.04,資源鏈接為:https://pan.baidu.com/s/1ACDAwWqUi4Q9FSVCbtGDUQ。提取碼:sdlh。
進入后第一步安裝VMware tools;再設置root密碼:先sudo passwd,再輸入設置的用戶密碼,再輸入root密碼,再確認,最后ok。su root進入root用戶,進行軟件更新以及ssh server的安裝。
安裝成功之后要先使用命令“sudo apt-get update”再使用命令“sudo apt-get upgrade”。因為我習慣使用vim,所以直接安裝它:sudo apt install vim。因為Linux環境很多時候需要使用ssh連接遠程服務器,所以我們看ssh server是否開啟,第一次一般都是沒有這個東西的。
查詢命令:/etc/init.d/ssh status
安裝命令:sudo apt-get install openssh-server
開啟服務命令:systemctl restart sshd
這里我們需要先修改一些配置文件 sudo vim /etc/ssh/sshd_config,將#PermitRootLogin prohibit-password下添加一行“PermitRootLogin yes”。修改之后再使用命令:systemctl restart sshd重啟服務。
一般到這個時候,虛擬機之間就可以連接了,如:ssh xxx.xxx.xxx.xxx
退出遠程連接:exit
JAVA安裝
使用命令下載文件,使用命令解壓縮,也可以使用“sudo apt install openjdk-8-jre-headless”安裝。
配置環境變量:sudo vim /etc/profile
添加如下代碼
#java export JAVA_HOME=/usr/local/jdk export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
這里的jdk是我下載的java版本的軟連接(ln -s jdk1.8 jdk),這樣做的好處是可以方便以后版本更新,不用修改配置文件。
flink安裝
去官網下載需要安裝的版本。下載之后在系統里解壓縮“tar -zxvf xxx.tar.gz或者tar -xvf xxx.tar.tgz”,然后先配置flink的環境變量。
配置環境變量:sudo vim /etc/profile
添加如下代碼
#flink export FLINK_HOME=/home/elfin/Flink_install/flink export PATH=$PATH:$FLINK_HOME/bin
注意路徑每個人的不一樣,一般大家喜歡放在 /usr/local/ 下,我這里是放在家目錄下的用戶目錄中。可以修改用戶目錄下的 .bashrc文件,在其中添加一行:“source /etc/profile”。
每個linux系統都需要進行配置,為了方便也可以先配置一個再同步相應數據(環境變量這些還是要一個一個配好的)。在配置flink之前,我們先設置計算設備別名與免密登錄。
設置設備別名:
192.158.144.172 flink_master
192.158.144.178 flink_slave
免密登錄:
(1) 安裝ssh-server:sudo apt-get install openssh-server 這里我的機器不能連接遠程機器,所有需要安裝ssh-sever。完成之后可以使用“ssh localhost”驗證是否可以連接遠程服務器。
(2) 配置文件:/etc/ssh/sshd_config 添加如下內容
1 # 啟用 RSA 認證 2 RSAAuthentication yes 3 # 啟用公鑰私鑰配對認證方式 4 PubkeyAuthentication yes 5 # 公鑰文件路徑 6 AuthorizedKeysFile .ssh/authorized_keys
注意上面的密鑰文件是不存在的,所以我們先對每個節點生成密鑰,再將公鑰放到authorized_keys中。
(3) 對每個機器生成密鑰文件,默認生成到 /.ssh 下
命令:ssh-keygen -t rsa -P ''
如圖所示,生成了密鑰文件 id_rsa、id_rsa.pub
再生成一個匯總的公鑰文件:authorized_keys
(4) 將elfin_keys的內容匯總
master的內容追加到slave
參考鏈接:SSH免密登錄
配置文件
配置flink需要進入conf文件夾,即:/home/elfin/Flink_install/flink/conf,此文件夾與bin文件夾同級,子文件如下:
這里面我們主要是要配置三個文件:主配置文件flink-conf.yaml、masters、slaves。其中log4j、logback見名知意,這些都是配置日志的,暫時先不管它。
flink-conf.yaml配置
我們主要修改jobmanager.heap.size、taskmanager.heap.size、taskmanager.numberOfTaskSlots、parallelism.default;我在這里將slot槽修改為2.
masters配置
主要是配置Job Managers,可以理解為某個項目配置。
這里我選擇在本地作為master,所以默認為localhost:8081即可
slaves配置
主要是配置Task Managers,可以理解為項目的任務做配置。命令:sudo vim slaves
配置你的slaves的IP或者主機名,如:
192.158.144.178
192.158.144.172
flink-slave1
flink-slave2
配置好之后你就可以啟動你的集群了,這里我們使用自帶的腳本。命令:./bin/start-cluster.sh (這里的bin目錄為flink目錄中的bin),啟動之后如圖所示:
這里的master1、slave1都作為一個task節點。 登錄flink-master:8081可以看到:
測試flink自帶的jar包:
先監控slave的9000端口:nc -lp 9000
再運行jar包:flink run ./examples/streaming/SocketWindowWordCount.jar --hostname flink-slave --port 9000
運行結果:
slave節點輸入數據,master端口顯示: