零基礎配置Hadoop叢集——Ambari安裝及配置詳解
1. 準備工作
1.1. 系統環境
主機列表:
IP地址 | HostName | 描述 |
192.168.610.153 | ambari.server | Ambari伺服器 |
192.168.10.152 | hadoop.namenode | Hadoop NameNode伺服器 |
192.168.10.151 | hadoop.datanodeone | Hadoop DataNode伺服器 |
192.168.10.147 | hadoop.datanodetwo | Hadoop DataNode伺服器 |
作業系統:
CentOS 7 Minimal版
登入使用者
root
環境說明:
本文中所用的安裝方式為yum線上安裝,所有機器需可以訪問外網。
CentOS純淨版初始狀態網絡卡為禁用狀態,系統安裝完成後需要執行如下操作:
1)進入/etc/sysconfig/network-scripts/目錄,找到ifcfg-e……名稱的檔案,如ifcfg-ens33
2)vi編輯改檔案將ONBOOT設為yes,並增加NM_CONTROLLED,DNS項,具體程式碼如下:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
ONBOOT=yes
NM_CONTROLLED=noDNS1=8.8.8.8
DNS2=4.2.2.2
3)儲存退出後,重新啟動網路連線
service network restart
4) ip addr命令檢視本機IP地址,或使用ping www.baidu.com命令檢視是否可以訪問外網。
5)配置完成後,可使用SSH工具從其他電腦登入此虛擬機器操作,推薦使用XShell
1.2. 修改機器名,配置Hosts檔案
為每個主機修改Hostname,其名稱參考1.1中的表格,如ambari.server
hostnamectl set-hostname ambari.server
編輯每臺機器的/etc/hosts檔案,在原有檔案末尾加入以下資訊
192.168.10.153 ambari.server 192.168.10.152 hadoop.namenode 192.168.10.151 hadoop.datanodeone 192.168.10.147 hadoop.datanodetwo
修改完成後使用reboot命令重啟每臺機器
1.3. 開啟ntp服務
為每臺裝置安裝、開啟npt服務,並設定為開機啟動
1)安裝ntp
yum install -y ntp
2)設定ntp開機啟動
systemctl enable ntpd
3)啟動ntp服務
systemctl start ntpd
4)所有機器設定時間同步
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ntpdate us.pool.ntp.org
1.4. 關閉Selinux及防火牆
為每臺機器執行如下操作:
1)vi /etc/sysconfig/selinux並新增如下程式碼
# vi /etc/sysconfig/selinux
selinux=disalbed
2) 關閉防火牆
systemctl stop firewalld systemctl disable firewalld
1.5. 配置SSH免密登入
1) 在ambari.server執行如下操作生成金鑰
ssh-keygen -t rsa
所有選項均按回車鍵,直到生成金鑰。
金鑰檔案存放於~/.ssh目錄下
私鑰:id_rsa 公鑰:id_rsa.pub 2) 在除ambari.server以外的其他機器上建立~/.ssh目錄mkdir ~/.ssh
3) 在ambari.server上執行如下命令,傳送金鑰至其他伺服器
scp ~/.ssh/id_rsa.pub hadoop.namenode:/root/.ssh/authorized_keys_from_ambari scp ~/.ssh/id_rsa.pub hadoop.datanodeone:/root/.ssh/authorized_keys_from_ambari scp ~/.ssh/id_rsa.pub hadoop.datanodetwo:/root/.ssh/authorized_keys_from_ambari
4) 在除ambari.server以外的其他機器上執行如下命令,合併公鑰:
cd ~/.ssh cat authorized_keys_from_ambari >> authorized_keys
5) 在所有機器上執行如下命令
chmod 700 ~/.ssh chmod 600 ~/.ssh/*
1.6 安裝JDK
當前Ambari推薦使用openjdk1.8.0,需要在每臺機器上執行相同操作,命令如下:
1)安裝JDK
yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
2)進入安裝目錄/usr/lib/jvm/找到java-1.8.0-openjdk-1.8.0.……的資料夾並將$JAVA_HOME這是為該目錄,如java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64/
3) 使用java -vsersion命令,驗證JDK是否安裝配置成功
1.7 設定UTF8字符集
在每個機器執行如下指令:
cat << EOF > /etc/locale.conf LANG="en_US.UTF-8" SUPPORTED="zh_CN.UTF-8:zh_CN:zh:zh_CN.gb18030:en_US.UTF-8:en_US:en" SYSFONT="lat0-sun16" EOF
2. 配置Ambari本地下載站
下列操作只在ambari.server機器上執行
2.1. 下載本地庫檔案
2.1.1. 下載準備
純淨的CentOS中未安裝wget,需要安裝wget包
yum install -y wget
本文中對應的Ambari版本為2.7.3,若需要其他版本,請在https://docs.hortonworks.com/中查詢
2.1.2.下載本地庫
該操作耗時較長,可以選擇在伺服器上執行
執行如下程式碼,下載本地庫:
wget http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.3.0/ambari-2.7.3.0-centos7.tar.gz wget http://public-repo-1.hortonworks.com/HDP/centos7/3.x/updates/3.0.1.0/HDP-3.0.1.0-centos7-rpm.tar.gz wget http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.22/repos/centos7/HDP-UTILS-1.1.0.22-centos7.tar.gz wget http://public-repo-1.hortonworks.com/HDP-GPL/centos7/3.x/updates/3.1.0.0/HDP-GPL-3.1.0.0-centos7-gpl.tar.gz
2.2. 配置本地下載站
1)安裝httpd服務
yum install -y httpd
2)建立站點目錄,將本地庫壓縮包解壓至對應目錄
mkdir /var/www/html/ambari mkdir /var/www/html/ambari/HDP-UTILS mkdir /var/www/html/ambari/HDP-GPL tar -xvf ambari-2.7.3.0-centos7.tar.gz -C /var/www/html/ambari/ tar -xvf HDP-3.0.1.0-centos7-rpm.tar.gz -C /var/www/html/ambari/ tar -xvf HDP-UTILS-1.1.0.22-centos7.tar.gz -C /var/www/html/ambari/HDP-UTILS tar -xvf HDP-GPL-3.1.0.0-centos7-gpl.tar.gz -C /var/www/html/ambari/HDP-GPL
3)啟動httpd服務
systemctl start httpd
4)開啟瀏覽器,訪問本地下載站http://192.168.10.153/ambari/,若出現以下介面則配置成功
2.3. 配置YUM源
1)在ambari.server上執行:yum install -y yum-plugin-priorities2)修改Yum安裝源的校驗
vi /etc/yum/pluginconf.d/priorities.conf
設定為以下內容
[main] enabled=1 gpgcheck=0
3)配置repo檔案
該步驟中baseurl和gpgkey地址需要和上一步對應
cat << EOF > /etc/yum.repos.d/ambari.repo #VERSION_NUMBER=2.7.3.0-139 [ambari-2.7.3.0] name=ambari Version - ambari-2.7.3.0 baseurl=http://192.168.10.153/ambari/ambari/centos7/2.7.3.0-139/ gpgcheck=1 gpgkey=http://192.168.10.153/ambari/ambari/centos7/2.7.3.0-139/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins enabled=1 priority=1 EOF cat << EOF > /etc/yum.repos.d/hdp.repo #VERSION_NUMBER=3.0.1.0-187 [HDP-3.0.1.0-187] name=HDP Version - HDP-3.0.1.0-187 baseurl=http://192.168.10.153/ambari/HDP/centos7/3.0.1.0-187/ gpgcheck=1 gpgkey=http://192.168.10.153/ambari/HDP/centos7/3.0.1.0-187/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins enabled=1 priority=1 [HDP-UTILS-1.1.0.21] name=HDP-UTILS Version - HDP-UTILS-1.1.0.21 baseurl=http://192.168.10.153/ambari/HDP-UTILS/HDP-UTILS/centos7/1.1.0.22/ gpgcheck=1 gpgkey=http://192.168.10.153/ambari/HDP-UTILS/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins enabled=1 priority=1 EOF
4)更新本地資源池
yum clean list yum update list yum makecache
更新完成後檢視資源池
yum repolist
顯示如下內容則配置成功
已載入外掛:fastestmirror, priorities Loading mirror speeds from cached hostfile * base: mirrors.tuna.tsinghua.edu.cn * extras: mirrors.163.com * updates: mirrors.163.com 4 packages excluded due to repository priority protections 源標識 源名稱 狀態 HDP-3.0.1.0-187 HDP Version - HDP-3.0.1.0-187 197 HDP-UTILS-1.1.0.21 HDP-UTILS Version - HDP-UTILS-1.1.0.21 16 ambari-2.7.3.0 ambari Version - ambari-2.7.3.0 13 base/7/x86_64 CentOS-7 - Base 10,015+4 extras/7/x86_64 CentOS-7 - Extras 419 updates/7/x86_64 CentOS-7 - Updates 2,137 repolist: 12,797
3. 安裝啟動Ambari
該項中的所有操作均在ambari.server上執行
3.1. 安裝Ambari-Server
本次安裝採用YUM遠端安裝,資料庫採用預設資料庫。安裝命令如下。
yum install -y ambari-server
3.2. 配置Ambari-Server
配置命令如下:
ambari-server setup
配置命令中需要的各個選項如下,注意其中jdk選擇自定義,$JAVA_HOME變數與上文1.6中保持一致:
Using python /usr/bin/python Setup ambari-server Checking SELinux... SELinux status is 'enabled' SELinux mode is 'permissive' WARNING: SELinux is set to 'permissive' mode and temporarily disabled. OK to continue [y/n] (y)? Customize user account for ambari-server daemon [y/n] (n)? Adjusting ambari-server permissions and ownership... Checking firewall status... Checking JDK... [1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8 [2] Custom JDK ============================================================================== Enter choice (1): 2 WARNING: JDK must be installed on all hosts and JAVA_HOME must be valid on all hosts. WARNING: JCE Policy files are required for configuring Kerberos security. If you plan to use Kerberos,please make sure JCE Unlimited Strength Jurisdiction Policy Files are valid on all hosts. Path to JAVA_HOME: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64/ Validating JDK on Ambari Server...done. Check JDK version for Ambari Server... JDK version found: 8 Minimum JDK version is 8 for Ambari. Skipping to setup different JDK for Ambari Server. Checking GPL software agreement... GPL License for LZO: https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html Enable Ambari Server to download and install GPL Licensed LZO packages [y/n] (n)? Completing setup... Configuring database... Enter advanced database configuration [y/n] (n)? Configuring database... Default properties detected. Using built-in database. Configuring ambari database... Checking PostgreSQL... Running initdb: This may take up to a minute. Initializing database ... OK About to start PostgreSQL Configuring local database... Configuring PostgreSQL... Restarting PostgreSQL Creating schema and user... done. Creating tables... done. Extracting system views... ambari-admin-2.7.3.0.139.jar .... Ambari repo file doesn't contain latest json url, skipping repoinfos modification Adjusting ambari-server permissions and ownership... Ambari Server 'setup' completed successfully.
3.3 啟動Ambari-Server
ambari-server start
啟動成功後在瀏覽器中輸入地址:
http://192.168.141.159:8080/#/login
若出現如下介面則配置成功
預設登入名密碼均為admin