1. 程式人生 > >(一)大資料生態圈叢集搭建之 --Linux環境準備

(一)大資料生態圈叢集搭建之 --Linux環境準備

搭建準備工作

本地機環境

準備安裝包

  • JDK-1.8以上的版本, 需上傳至虛擬機器節點

虛擬機器工具

  • VMware – 用於在本地機上安裝虛擬機器.
  • 虛擬機器使用centOS 6.5的映象.

連線工具

連線工具有很多, 推薦使用XShell, 也可使用其他的, 因人而異.

上傳工具

上傳工具也有很多, 推薦Xftp和fileZilla.

CentOS虛擬機器環境搭建

  我們使用四臺節點來搭建叢集, 將它們分別命名為node01, node02, node03, node04(命名可任意). 除此之外, 再用一臺節點當作客戶端節點: client.

  首先, 需要先建立node01節點, 建立過程即在虛擬機器中安裝CentOS, 不會的可自行Bing, Google. 其餘四臺節點等通用配置設定完成之後, 用VMware自帶的克隆功能克隆後稍加修改即可.

通用配置

靜態IP配置

cd /etc/sysconfig/network-scripts/	進入該目錄, 找到ifcfg-eth0的檔案,用vim開啟修改
將ONBOOT=no 改為yes			設定其跟隨開機自啟動
將BOOTPROTP=dhcp改為static		設定IP的獲取由隨機改為靜態IP

再這之後新增以下內容(*注意 : 新增修改時, 不要加上說明用的中文*):

IPADDR=192.168.75.133		手動設定的靜態IP
PREFIX=24
GATEWAY=192.168.75.2		閘道器ip. 開啟VMware的虛擬網路編輯器, 選中nat模式檢視nat設定中會有
DNS1=8.8.8.8			設定dns

:wq	儲存檔案並退出

service network restart		退出後, 重啟網路服務

  網路設定好之後, 就可以在本地機中用XShell遠端連線虛擬機器了. 怎麼連線自行bing, 我們的操作通常是在連線工具上執行, 這樣會更加方便.

時間同步配置

節點安裝ntp命令: yum install ntp -y

上網查詢最新的時間伺服器ntp1.aliyun.com, 可選擇其他家的

同步時間: ntpdate ntp1.aliyun.com

JDK環境配置

  使用上傳工具將jdk和hadoop的包傳到虛擬機器中, 這裡筆者將jdk傳到/usr/local目錄中, 將hadoop傳到/opt/software/hadoop目錄中, 路徑因個人配置而異, 要記得自己存放的位置, 後文會對這些路徑進行配置, 到時需修改為與個人配置相關的路徑, 後續內容不再重複此點.

進入jdk存放的位置	cd /usr/local
解壓安裝包	tar -zxf jdk-8u181-linux-x64.tar.gz
給解壓出來的檔案設定許可權	chmod -R 777 jdk1.8.0_181
配置java環境變數	vim /etc/profile
在檔案最後插入	
export JAVA_HOME=/usr/local/jdk1.8.0_181
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
讓修改的檔案生效	source /etc/profile

控制檯輸入java -version 來檢視jdk是否生效.如果提示java版本則表明成功

虛擬機器clone && 主機名配置

  vmware中克隆節點
在這裡插入圖片描述

  克隆三個節點完成以後, 此時克隆的三個節點的主機名, 靜態ip地址, 網絡卡實體地址與第一個一致, 先修改一下它們:

先設定節點網絡卡
vim /etc/udev/rules.d/70-persistent-net.rules

  開啟之後, 會有兩個網絡卡的資訊
在這裡插入圖片描述
  其中, eth0 是克隆的node01節點的資訊, 所以這裡我們要刪除這一行, 然後把eth1改為eth0, 同時複製ATTR(address)中的內容, 即克隆出來的虛擬機器網絡卡的實體地址.

  然後配置ip, 分別在每一個節點上執行

vim /etc/sysconfig/network-script/ifcfg-eth0

將HWADDR修改為剛才複製的內容
再修改IPADDR的IP地址, 只需改最後三位即可, 保證每個節點的IP不同
我設定的IP與節點對應關係為:
192.168.75.133 -- node01
192.168.75.134 -- node02
192.168.75.135 -- node03
192.168.75.136 -- node04
192.168.75.137 -- client

  由於虛擬機器是克隆出來的, 節點名稱都相同, 需要再修改每個節點的主機名

vim /etc/sysconfig/network
將NETWORKING設定為yes	開啟網路
將HOSTNAME分別設為node02, node03, node04,client
這裡需要重啟後才能生效, 但先彆著急, 等全部配置好之後, 再統一重啟生效.

各節點地址配置

  為了讓節點之間能夠互相訪問到, 需要讓每個節點知曉其他節點的地址, 配置如下:

vim /etc/hosts	每個節點執行該命令, 開啟hosts檔案進行修改

在五個節點中同時加入下列內容(這些是我自己設定的IP)
192.168.75.133	node01
192.168.75.134	node02
192.168.75.135	node03
192.168.75.136	node04
192.168.75.137	client

免密登入配置

  叢集啟動時, 需要訪問其他節點(client節點除外), 為了實現自動化(不必每次輸入密碼), 需要在每個節點配置免密.

所有節點執行  
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa	
生成公鑰和私鑰, 檔案存放在~/.ssh目錄下

  基於我的規劃, node01除了需要執行四個節點(包括其自身)的程序以外, node02會執行node01的程序, 因此還需要在node01節點上再加入node02的公鑰. 如有需要, 自行配置.

node01 節點上執行
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

node02節點上執行
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

注:所有儲存的公鑰資訊均可在 ~/.ssh/authorized_keys檔案中檢視

防火牆配置

  要想成功執行, 還需要關閉各個節點的防火牆.
  臨時關閉防火牆(每次重啟節點都需手動執行)
service iptables stop

  永久關閉(推薦)
chkconfig iptables off

修改生效

  這麼配下來, 大部分配置檔案需要source或其他命令使其生效, 建議重啟虛擬機器.