一、准備宿主機
為了培訓Hadoop生態的部署和調優技術,需要准備3台虛擬機部署Hadoop集群環境,能夠保證HA,即主要服務沒有單點故障,可執行基本功能,完成小內存模式的參數調整。
1.1、准備安裝包
宿主機操作系統為Win7 SP1,內存16G,磁盤為256G的SSD盤
1)虛擬機:VMware® Workstation 15 Pro 15.5.0 build-14665864 中文版
2)Linux系統:CentOS-8-x86_64-1905-dvd1.iso (Centos 8.0)
1.2、配置網絡
安裝VMware后,宿主機除了無線網絡外共有3個網卡,分別是:
1) 本地網卡,192.168.3.127,掩碼 255.255.255.0
2) Vmnet1(用於支持host only模式),192.168.121.1,掩碼 255.255.255.0
3) Vmnet8(用於支持NAT[1]模式),192.168.154.1,掩碼 255.255.255.0
在本次實驗中,我們部署的虛擬機采用NAT模式網絡。
啟動VMware Workstation Pro,點擊 編輯->虛擬網絡編輯器…
1.2.1 查看NAT設置
點擊“NAT設置(S) …”,可以查看NAT設置
即NAT的網關為192.168.154.2,在虛擬機中將IP設置為192.168.154段,掩碼為255.255.255.0網關設置為192.168.154.2,即可實現虛擬機訪問外部網絡。
1.2.2 更改設置
如果對虛擬網卡Vmnet1和Wmnet8的IP修改,需要同時修改網卡的信息和vmware pro workstation中的“更改設置”
可以點擊更改設置,注意,此操作需要管理員才可設置,並且會彈出“用戶賬戶控制”對話框以供確認。
可以點擊“NAT設置...”設置網關
1.3、配置時間服務器
將虛擬機宿主作為時間服務器。
- 在桌面上右擊“計算機”,選擇“管理”,然后選擇“服務”。將Windows Time服務的啟動類型設置為 自動(延遲啟動)
- “開始”->“運行”-> 輸入“regedit”打開注冊表。
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer將NetSerVer下Enabled的值設置為1,如果沒有Enabled則增加名為Enabled,類型為REG_DWORD,值為1的項。
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\ AnnounceFlags 設定為 5 (5表示穩定源,默認 10)
- 如果筆記本沒有插網線,則因為Win7的“媒介探測(Media Sense)”技術會自動關閉網絡服務,可以修改注冊表,欺騙OS繼續提供服務
- HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters,添加子項
- 名稱:DisableDHCPMediaSense
- 數據類型:REG_DWORD(布爾型)
- 值:1
- 副作用,筆記本休眠后,從一個無線網絡環境到另外一個無線網絡環境,則因為欺騙了DHCP,筆記本喚醒后不會自動申請新IP,導致無法連接無線網絡,所以需要手工禁止和啟動一下無線網絡,其他的DHCP網也需類似操作。
- HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters,添加子項
- 重新啟動Windows Time服務,就可以使用宿主作為NTP服務器了。
- 注意,缺省情況下Windows Time服務是自動(延遲啟動),這適用於台式機和筆記本模式,如果是Windows服務器,要修改為“自動”模式。
- 只用物理網卡才對外提供時間服務,Linux的時間服務器IP一定要對應物理網卡的IP,在本例中時間服務器IP為192.168.3.127
1.4、Centos8常用命令
root運行
# systemctl start foo #運行一個服務
# systemctl stop foo #停止一個服務
# systemctl restart foo #重啟一個服務
# systemctl status foo #顯示一個服務(無論運行與否)的狀態
# systemctl enable foo #在開機時啟用一個服務
# systemctl disable foo #在開機時禁用一個服務
# systemctl is-enabled foo #查看服務是否開機啟動
# reboot #重啟主機
# init 0 #立即關機
二、安裝Centos8.0
2.1、准備虛擬機的基礎配置
選擇“自定義”,點擊“下一步”
點擊“下一步”
選擇“稍后安裝操作系統”,點擊“下一步”
選擇“Red Hat Enterprise Linux 8 64位”, 點擊“下一步”
根據個人需要,輸入虛擬機的名稱,也可以選擇存儲虛擬機的目錄,點擊“下一步”
根據宿主機的情況和你的具體規划選擇處理器個數和核數,點擊“下一步”
根據宿主機的情況和你的具體規划選擇或者輸入供虛擬機使用的內存,點擊“下一步”
根據具體需求選擇網絡模式,在本例中需要通過宿主機訪問互聯網,又要禁止外網訪問虛擬機,所以采用NAT模式,點擊“下一步”
按自動推薦的模式,點擊“下一步”
按自動推薦的模式,點擊“下一步”
選擇“創建新虛擬磁盤”,點擊“下一步”
根據具體的磁盤需求,輸入磁盤大小,因為要作為克隆的種子,注意不要選擇立即分配所有的磁盤空間。為了方便復制,選擇“見虛擬磁盤拆分為多個文件”。 點擊“下一步”
點擊“下一步”
進行優化,刪除USB、聲卡、打印機等無用的硬件。
點擊“自定義硬件”
逐步選擇USB控制器、聲卡、打印機,點擊“移除”
設置顯示器,為節省資源,取消“加速3D圖形”,設置分辨率為1280×1024
設置光驅采用Centos8的ISO文件
點擊“關閉”回到上一界面
點擊“完成”。結束虛擬機的准備階段
2.2、啟動虛擬機
接上文,點擊“開啟此虛擬機”
注意:虛擬機字符界面和宿主機的切換方式為按“Ctrl” + “Alt”鍵
選擇光標到“Install CentOS Linux 8.0.1905”,回車
快速滾動顯示許多文字信息后,顯示圖形界面。
點擊“Continue”,顯示匯總信息節點,在此界面中我們需要設置軟件集合、磁盤分區、日期、網絡等常規信息。
2.2.1、設置網絡
拖動按鈕,選擇網絡狀態為“On”
此時的IP設置為DHCP模式,點擊“Configure”,設置手工指定的IP
“General”選項頁中選中“Automatically Connect to this network …”,確保自動啟動此網絡設置。
在IPV4 Settings中設置網絡為人工指定的靜態IP,按前文的約定,網關指定為192.168.154.2,DNS請按各地情況指定,如天津聯通DNS為202.99.96.68
點擊“Save”返回上一界面
將“Host Name” 后的輸入框中內容修改為規划的服務器域名,如“Hadoop.centos8.cn”,點擊“Apply”
點擊“Done”回到上一界面。
2.2.2、設置日期
此時網絡已經聯通,可以同時設置時間以及時間服務器了。
首先選擇正確的時區。可以通過下拉菜單選擇也可以直接用鼠標在地圖上選擇。
現在“Network Time”處於“On”的狀態,點擊旁邊的設置按鈕
增加宿主機的時間服務器,並取消缺省的centos.pool.ntp.org服務器
注意狀態“Working”,如果是,表示時間服務器正常並且可以訪問,反之如果是
則需要檢查網絡設置和時間服務器的設置。
選擇“OK”確認網絡時間服務器的設置。
選擇“Done”回到上一界面
2.2.3、配置磁盤空間
虛擬機可以由其自動選擇分區,它的規則比較簡單,分為boot、根、交換分區,主要空間都在根分區。如果是物理機或者有特殊的需求則可以選擇“Custom”
2.2.4、選擇安裝的軟件包
作為服務器,一般不選擇GUI,以節省系統占用的資源。
為了開發和調試,一般選擇“Performance Tools”和“Development Tools”即可,其他后續軟件包都可以通過yum在需要時安裝。
點擊“Done”回到上一界面
2.2.5、開始安裝
點擊“Begin Installation”開始安裝
2.2.6、設置用戶名和密碼
注意,如果root的密碼過於簡單,就需要兩次確認(“點擊Down”),如下圖。
可以再創建一個普通用戶
同樣,如果密碼強度太弱,需要點擊兩次“Done”
繼續等待安裝進度完成
2.2.7、安裝完成后重啟
點擊“Reboot”重新啟動
2.3、常規配置
2.3.1、配置SecureCRT
創建名為hadoop的Session,IP地址為192.168.154.8,雙擊連接服務器
首次連接彈出對話框,注:每個虛擬機有單獨的Hash值。
選擇“Aceept & Save”
輸入正確的用戶名和密碼。注意:盡量不要用root用戶登錄。
登錄成功后可以設置Session選項。菜單“Options”-> “Session Options …”
配置顏色方案和滾動區緩沖
配置字符集和顯示字體
2.3.2、設置DVD軟件源或ISO軟件源
2.3.2.1、設置DVD軟件源
2.3.2.1.1、裝載光驅
確保虛擬機設置中設備狀態為“已連接”。
#切換為root用戶
su
#創建目錄
mkdir /mnt/centos8
#掛載
mount /dev/sr0 /mnt/centos8/
#卸載命令
umount /mnt/centos8
2.3.2.1.2、自動掛載cdrom
vi /etc/fstab
增加一行
/dev/sr0 /mnt/centos8 iso9660 auto,ro 0 0
2.3.2.1.3、創建本地源
cd /etc/yum.repos.d/
ll
-rw-r--r--. 1 root root 731 Aug 14 14:42 CentOS-AppStream.repo
-rw-r--r--. 1 root root 712 Aug 14 14:42 CentOS-Base.repo
-rw-r--r--. 1 root root 798 Aug 14 14:42 CentOS-centosplus.repo
-rw-r--r--. 1 root root 1320 Aug 14 14:42 CentOS-CR.repo
-rw-r--r--. 1 root root 668 Aug 14 14:42 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 756 Aug 14 14:42 CentOS-Extras.repo
-rw-r--r--. 1 root root 338 Aug 14 14:42 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 928 Aug 14 14:42 CentOS-Media.repo
-rw-r--r--. 1 root root 736 Aug 14 14:42 CentOS-PowerTools.repo
-rw-r--r--. 1 root root 1382 Aug 14 14:42 CentOS-Sources.repo
-rw-r--r--. 1 root root 74 Aug 14 14:42 CentOS-Vault.repo
檢查哪些源是可使用狀態
grep -lrn "enabled=1"
CentOS-AppStream.repo
CentOS-Base.repo
CentOS-Extras.repo
將可使用源改名
mv CentOS-Base.repo CentOS-Base.repo.bak
mv CentOS-AppStream.repo CentOS-AppStream.repo.bak
mv CentOS-Extras.repo CentOS-Extras.repo.bak
編輯Base和App Stream源
vi CentOS-Base.repo
[BaseOS]
name=CentOS-$releasever - Base
baseurl=file:///mnt/centos8/BaseOS
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
enabled=1
存盤退出
vi CentOS-AppStream.repo
[AppStream]
name=CentOS-$releasever - AppStream
baseurl=file:///mnt/centos8/AppStream
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
enabled=1
存盤退出
檢驗本地源
yum clean all
yum list | grep gcc 顯示如下風格列表
gcc.x86_64 8.2.1-3.5.el8 @AppStream
gcc-c++.x86_64 8.2.1-3.5.el8 @AppStream
gcc-gdb-plugin.x86_64 8.2.1-3.5.el8 @AppStream
libgcc.x86_64 8.2.1-3.5.el8 @anaconda
gcc-gdb-plugin.i686 8.2.1-3.5.el8 AppStream
gcc-gfortran.x86_64 8.2.1-3.5.el8 AppStream
gcc-offload-nvptx.x86_64 8.2.1-3.5.el8 AppStream
libgcc.i686 8.2.1-3.5.el8 BaseOS
2.3.2.2、設置ISO軟件源
2.3.2.2.1、裝載iso文件
#創建目錄
mkdir /mnt/centos8
#復制iso文件到特定目錄,如 /opt/kvm/data/iso/CentOS-8-x86_64-1905-dvd1.iso
#掛載
mount -o loop /opt/kvm/data/iso/CentOS-8-x86_64-1905-dvd1.iso /mnt/centos8
#卸載命令
umount /mnt/centos8
2.3.2.2.2、自動掛載iso文件
vi /etc/fstab
增加一行
/opt/kvm/data/iso/CentOS-8-x86_64-1905-dvd1.iso /mnt/centos8 iso9660 auto,ro 0 0
2.3.2.2.3、創建本地源
同2.3.2.1.3、創建本地源
2.3.3、檢查時間同步
安裝過程中已經設置了時間同步和時間服務器,此處僅檢查配置文件以及服務是否啟動
cat /etc/chrony.conf 查看有如下行:
server 192.168.3.127 iburst
下列命令可以將Centos8的chrony時間服務器重啟、設置為自動啟動、查看狀態
systemctl restart chronyd
systemctl enable chronyd
systemctl status chronyd
查看Linux和時間服務器的同步情況
chronyc sourcestats –v
2.3.4、簡化的安全設置
關閉防火牆
#檢查防火牆狀態
systemctl status firewalld.service
#關閉防火牆
systemctl stop firewalld.service
#禁止開機啟動防火牆
systemctl disable firewalld.service
關閉SELINUX
# vi /etc/selinux/config
編輯內容:
#SELINUX=enforcing #注釋掉
SELINUX=disabled #增加
存盤退出,下次重新啟動后生效
如果想使配置立即生效,執行
setenforce 0
2.3.5、安裝部分管理包
yum install expect redhat-lsb-core -y
驗證
lsb_release –a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 8.0.1905 (Core)
Release: 8.0.1905
Codename: Core
查看內核版本
uname –a
Linux hadoop.centos8.cn 4.18.0-80.el8.x86_64 #1 SMP Tue Jun 4 09:19:46 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
2.3.6、部署Samba
yum install samba samba-client -y
已經關閉了防火牆 所以最復雜的問題不會出現了
vi /etc/samba/smb.conf
缺省共享用戶目錄
另外因為沒有安裝打印機,所以刪除共享打印機的配置
刪除[printers] [print$]
啟動服務
systemctl enable smb
systemctl enable nmb
systemctl restart smb
systemctl restart nmb
設置訪問密碼
smbpasswd -a ansible
設置win7的host
C:\Windows\System32\drivers\etc\hosts
192.168.154.8 hadoop
192.168.154.11 hadoop11.centos8.cn hadoop11
192.168.154.12 hadoop12.centos8.cn hadoop12
192.168.154.13 hadoop13.centos8.cn hadoop13
在win7訪問hadoop
就可以訪問ansible的home目錄了
三、克隆
3.1、克隆節點
執行關機命令 init 0,關機完成后開始克隆
選中虛擬機hadoop,單擊菜單-> 虛擬機-> 管理 -> 克隆…
單擊“下一步”
單擊“下一步”繼續
如果新虛擬機就在本機運行,為了節省磁盤,可以選擇“創建鏈接克隆”,反之如果需要復制到其他服務器,則一定要“創建完整克隆”。
單擊“下一步”繼續
輸入克隆虛擬機的名稱,單擊“完成”開始克隆虛擬機。
單擊“關閉”
3.2、修改IP地址
啟動克隆生成的虛擬機hadoop11
設置IP和主機名
IP 在vi /etc/sysconfig/network-scripts/ifcfg-ens160
vmware不會重新生成UUID,避免重復,需要更新此UUID
UUID="…"
調用uuidgen產生過新的uuid,替換原來的串
如:
uuidgen
bd83dded-76d2-4d23-8799-134f8b7eb984
修改IP地址
IPADDR="192.168.154.8"
為
IPADDR="192.168.154.11"
3.3、修改主機名IP
vi /etc/hostname
hadoop.centos8.cn
修改為
hadoop11.centos8.cn
3.4、重新啟動
重復3.1-3.4完成hadoop12,hadoop13的克隆和設置
四、Centos8和Centos7的主要差異
4.1、網絡服務
Centos8/RHEL8中網絡相關服務管理已經轉移到NetworkManager,缺省情況不安裝network服務。
systemctl status NetworkManager 可以查看服務狀態。
注意:修改IP,如果僅修改網卡配置,然后重啟NetworkManager,是不可行的。正確的方式是重新啟動網卡:
1、 nmcli connection down ens160 停止網卡
2、 nmcli connection up ens160 啟動網卡
注意:此時注意該網卡千萬不要是遠程管理的網卡呀。
修改配置文件有三種
1、 vi
2、 nmcli connection modify ens160(ens160是網卡名)
3、 nmtui 字符交互界面進行編輯
如果象Centos7一樣使用network服務,可以用yum安裝
yum install network-scripts
但是按官方資料,將來network服務會從發行包中徹底取消。