一、環境准備
安裝包准備
官網連接應該不能用了,需要收費,文章用的組件安裝包以及一些優化更新:請點擊這里
1、虛擬機:
192.168.112.126 hdp01.bbdops.com 192.168.112.127 hdp02.bbdops.com 192.168.112.128 hdp03.bbdops.com 192.168.112.129 hdp04.bbdops.com 192.168.112.130 hdp05.bbdops.com
2、安裝包准備
ambari-2.7.5.0-centos7.tar.gz HDP-3.1.5.0-centos7-rpm.tar.gz HDP-GPL-3.1.5.0-centos7-gpl.tar.gz HDP-UTILS-1.1.0.22-centos7.tar.gz jdk-8u211-linux-x64.tar.gz mysql-5.7.32-1.el7.x86_64.rpm-bundle.zip
二、安裝相關工具
1、安裝jdk(所有主機)
1)卸載本機原有jdk
rpm -qa|grep java 查看版本 rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.161-0.b14.el7_4.x86_64 下載舊版jdk rpm -e --nodeps java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64
2)、上傳jdk
版本:jdk-8u211-linux-x64.tar.gz
scp jdk-8u211-linux-x64.tar.gz root@192.168.112.126:/usr/local/ scp jdk-8u211-linux-x64.tar.gz root@192.168.112.127:/usr/local/
解壓后路徑:/usr/local/jdk-8u211
3)、配置JDk
每個節點都需要配置,且配置JDK的內容相同,末尾加入下配置:
vim /etc/profile export JAVA_HOME=/usr/local/jdk1.8.0_211 export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/ export PATH=$PATH:$JAVA_HOME/bin
(5)jdk生效
source /etc/profile
2、關閉THP
首先檢查THP的啟用狀態
[root@hdp01.bbdops.com~]# cat /sys/kernel/mm/transparent_hugepage/defrag [always] madvise never [root@hdp01.bbdops.com ~]# cat /sys/kernel/mm/transparent_hugepage/enabled [always] madvise never
關閉編輯rc.local文件:
[root@hdp01.bbdops.com ~]# vim /etc/rc.d/rc.local if test -f /sys/kernel/mm/transparent_hugepage/enabled; then echo never > /sys/kernel/mm/transparent_hugepage/enabled fi if test -f /sys/kernel/mm/transparent_hugepage/defrag; then echo never > /sys/kernel/mm/transparent_hugepage/defrag fi
保存退出,然后賦予rc.local文件執行權限:
[root@hdp01.bbdops.com~]# chmod +x /etc/rc.d/rc.local
reboot 重啟生效
最后重啟系統,以后再檢查THP應該就是被禁用了
[root@hdp01.bbdops.com~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
[root@hdp01.bbdops.com ~]# cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]
3、設置主機名(所有主機)
hostnamectl set-hostname hdp01.bbdops.com 修改節點一主機名 hostnamectl set-hostname hdp02.bbdops.com 修改節點二主機名 hostnamectl set-hostname hdp03.bbdops.com 修改節點三主機名
su 生效
4、修改hosts文件(所有主機)
vim /etc/hosts 每個節點的hosts文件中添加如下配置: 192.168.112.126 hdp01.bbdops.com
192.168.112.127 hdp02.bbdops.com
192.168.112.128 hdp03.bbdops.com 192.168.112.129 hdp04.bbdops.com 192.168.112.130 hdp05.bbdops.com
5、修改network(所有主機)
vim /etc/sysconfig/network 添加如下配置: # Created by anaconda NETWORKING=yes
HOSTNAME=hdp01.bbdops.com
6、打開安全限制 (所有主機)
vim /etc/security/limits.conf 文件末尾新增如下: # End of file * soft nofile 65536 * hard nofile 65536 * soft nproc 131072 * hard nproc 131072
7、關閉防火牆 (所有主機)
[root@hdp01.bbdops.com~]#systemctl disable firewalld [root@hdp01.bbdops.com~]#systemctl stop firewalld 另外所有機器還需修改
setenforce 0 臨時關閉
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config 永久關閉
8、同步時鍾(所有主機)
1)、安裝chrony服務
yum -y install chrony
2)、設置hdp01.bbdops.com為主服務器,開啟nptd服務(主服務器)
主服務器上該配置文件修改項如下:
[root@hdp01.bbdops.com ~]#vim /etc/chrony.conf server ntp6.aliyun.com iburst allow 192.168.112.0/24 local stratum 10
修改保存后執行:
[root@hdp01.bbdops.com ~]# systemctl restart chronyd.service #啟動服務 [root@hdp01.bbdops.com ~]# systemctl enable chronyd.service #開機自啟動
查看時間同步狀態:
chronyc -a makestep chronyc sourcestats chronyc sources -v
3)、子節點時間同步配置
vim /etc/chrony.conf 注釋原來的server並新增如下配置即可然后重啟服務: server 192.168.112.126 iburst
4)、重啟服務
[root@hdp02.bbdops.com ~]# systemctl restart chronyd.service #啟動服務 [root@hdp02.bbdops.com ~]# systemctl status chronyd.service #開機自啟動
9、配置SSH免密鑰登錄(主節點)
1)、免密鑰操作
[root@hdp01.bbdops.com ~]# ssh-keygen -t rsa 連接提示選yes ,密碼提示填登錄密碼 [root@hdp01.bbdops.com ~]# ssh-copy-id hdp02.bbdops.com [root@hdp01.bbdops.com ~]# ssh-copy-id hdp03.bbdops.com [root@hdp01.bbdops.com ~]# ssh-copy-id hdp01.bbdops.com 測試是否實現了無密碼登錄: [root@hdp01.bbdops.com ~]# ssh hdp01.bbdops.com date ;ssh hdp02.bbdops.com date;ssh hdp03.bbdops.com date;ssh hdp04.bbdops.com date;ssh hdp05.bbdops.com date;
2)、保存密鑰
將創建的秘鑰拷貝出來,因為后面ambari安裝的時候需要上傳這個秘鑰。創建秘鑰是在隱藏文件夾/root/.ssh/下面的,所以需要先把秘鑰拷貝到可見區域,然后拷貝到電腦上。
[root@hdp01.bbdops.com ~]# cd /root/.ssh/ [root@hdp01.bbdops.com .ssh]# ls authorized_keys id_rsa id_rsa.pub known_hosts [root@hdp01.bbdops.com .ssh]# cp id_rsa /root/ [root@hdp01.bbdops.com .ssh]# ls /root/ anaconda-ks.cfg id_rsa jdk-8u161-linux-x64.rpm
10、為每個用戶設置NMASK(所有主機)
root@hdp01.bbdops.com ~]# sudo sh -c "echo umask 0022 >> /etc/profile"
11、修改系統最大打開文件數
[root@hdp01.bbdops.com ~]# vim /etc/systemd/system.conf [Manager] DefaultLimitNOFILE=1024000 #這里需要修改 DefaultLimitNPROC=1024000 #這里也需要修改,修改完成重啟生效 [root@hdp01.bbdops.com ~]# ulimit -a 查看 [root@hdp01.bbdops.com ~]# ulimit -n 10000 臨時修改 [root@hdp01.bbdops.com ~]# ulimit -Sn 10000 [root@hdp01.bbdops.com ~]# ulimit -Hn 10000
三、開始安裝基礎服務
1、安裝httpd服務 (主服務器)
[root@hdp01.bbdops.com ~]# yum -y install httpd [root@hdp01.bbdops.com ~]# systemctl restart httpd [root@hdp01.bbdops.com ~]# systemctl enable httpd
2、上傳三個包放到/var/www/html目錄下 (主服務器)
安裝完成后,會生成 /var/www/html目錄(相當於Tomcat的webapps目錄),進入到/var/www/html目錄下,創建ambari和hdp目錄,用來存放安裝文件.
[root@yum ~]# mkdir /var/www/html/ambari [root@yum ~]# mkdir /var/www/html/hdp [root@yum ~]# mkdir /var/www/html/hdp/HDP-UTILS-1.1.0.22
[root@yum ~]# mkdir /var/www/html/hdp/HDP-GPL-3.1.5.0
[root@yum ~]# tar -zxvf ambari-2.7.3.0-centos7.tar.gz -C /var/www/html/ambari/
[root@yum ~]# tar -zxvf HDP-3.1.0.0-centos7-rpm.tar.gz -C /var/www/html/hdp/
[root@yum ~]# tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz -C /var/www/html/hdp/HDP-UTILS-1.1.0.22
[root@yum ~]# tar -zxvf HDP-GPL-3.1.5.0-centos7-gpl.tar.gz -C /var/www/html/hdp/HDP-GPL-3.1.5.0/
3、啟動httpd服務(主服務器)
[root@yum ~]# systemctl start httpd # 啟動httpd [root@yum ~]# systemctl status httpd # 查看httpd狀態 [root@yum ~]# systemctl enable httpd # 設置httpd開機自啟
測試訪問:
http://192.168.112.126/ambari/
http://192.168.112.126/hdp/
4、制作本地源(主服務器)
1)、下載ambari.repo文件
[root@hdp01.bbdops.com ambari]# wget -O /etc/yum.repos.d/ambari.repo http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.3.0/ambari.repo
2)、修改配置文件
vim /etc/yum.repos.d/ambari.repo #VERSION_NUMBER=2.7.3.0-139 [ambari-2.7.3.0] #json.url = http://public-repo-1.hortonworks.com/HDP/hdp_urlinfo.json name=ambari Version - ambari-2.7.5.0 baseurl=http://10.61.10.61/ambari/ambari/centos7/2.7.5.0-72/ gpgcheck=1 gpgkey=http://10.61.10.61/ambari/ambari/centos7/2.7.5.0-72/RPM-GPG-KEY//RPM-GPG-KEY-Jenkins enabled=1 priority=1
3)、配置HDP和HDP-TILS
vim /etc/yum.repos.d/HDP.repo #VERSION_NUMBER=3.1.0.0-78 [HDP-3.1.0.0] name=HDP Version - HDP-3.1.5.0 baseurl=http://10.61.10.61/hdp/HDP/centos7/3.1.5.0-152/ gpgcheck=1 gpgkey=http://10.61.10.61/hdp/HDP/centos7/3.1.5.0-152/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins enabled=1 priority=1 [HDP-UTILS-1.1.0.22] name=HDP-UTILS Version - HDP-UTILS-1.1.0.22 baseurl=http://10.61.10.61/hdp/HDP-UTILS-1.1.0.22/HDP-UTILS/centos7/1.1.0.22/ gpgcheck=1 gpgkey=http://10.61.10.61/hdp/HDP-UTILS-1.1.0.22/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins enabled=1 priority=1 [HDP-GPL-3.1.5.0] name=HDP-GPL Version - HDP-GPL-3.1.5.0 baseurl=http://10.61.10.61/hdp/HDP-GPL-3.1.5.0/HDP-GPL/centos7/3.1.5.0-152/ gpgcheck=1 gpgkey=http://10.61.10.61/hdp/HDP-GPL-3.1.5.0/HDP-GPL/centos7/3.1.5.0-152/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins enabled=1 priority=1
5、清理一下yum的緩存
[root@hdp01.bbdops.com ambari]# yum clean all [root@hdp01.bbdops.com ambari]# yum makecache [root@hdp01.bbdops.com ambari]# yum repolist
6、將創建好的文件拷貝到子節點
[root@hdp01.bbdops.com ambari]#cd /etc/yum.repos.d [root@hdp01.bbdops.com yum.repos.d]# scp ambari.repo HDP.repo hdp02.bbdops.com:$PWD [root@hdp01.bbdops.com yum.repos.d]# scp ambari.repo HDP.repo hdp03.bbdops.com:$PWD
四、安裝ambari-server
1、安裝數據庫mysql(主服務器)
mysql包版本:mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar
上傳到主節點/usr/local/mysql目錄下並解壓。
rpm -qa |grep -i mysql rpm -qa |grep -i mariadb 用rpm -e 刪除包 強制卸載mariadb rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64 這里是為了避免安裝mysql時出現依賴錯誤,提前刪除系統已有的mariadb和mysql包! 安裝mysql可能用到的工具: yum -y install libaio yum -y install net-tools
2、安裝mysql-server:按照common–>libs–>client–>server的順序。若不按照此順序,也會有一定“依賴”關系的提醒。
rpm -ivh mysql-community-common-5.7.27-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.27-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.27-1.el7.x86_64.rpm rpm -ivh mysql-community-server-5.7.27-1.el7.x86_64.rpm
3、初始化mysql
[root@hadoop mysql]# mysqld --initialize
4、更改mysql數據庫所屬於用戶及其所屬於組
[root@hadoop mysql]# chown mysql:mysql /var/lib/mysql -R
5、啟動mysql數據庫
[root@hadoop mysql]# cd /var/lib/mysql [root@hadoop mysql]# systemctl start mysqld.service [root@hadoop ~]# cd /var/log/ [root@hadoop log]# grep 'password' mysqld.log 2019-02-26T04:33:06.989818Z 1 [Note] A temporary password is generated for root@localhost: mxeV&htW-3VC,
更改root用戶密碼,新版的mysql在第一次登錄后更改密碼前是不能執行任何命令的
[root@hadoop log]# mysql -u root -p 更改密碼 mysql> set password=password('123456'); Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> grant all privileges on *.* to root@'%' identified by '123456' with grant option; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
6、安裝和配置ambari-server
yum -y install ambari-server
7、mysql與ambari-server的連接
mkdir /usr/share/java cp mysql-connector-java-5.1.40-bin.jar /usr/share/java/mysql-connector-java.jar cp mysql-connector-java-5.1.40-bin.jar /var/lib/ambari-server/resources/mysql-jdbc-driver.jar vi /etc/ambari-server/conf/ambari.properties
添加server.jdbc.driver.path=/usr/share/java/mysql-connector-java.jar
8、初始化ambari-server
[root@hdp01.bbdops.com ~]# ambari-server setup
1) 提示是否自定義設置。輸入:y Customize user account for ambari-server daemon [y/n] (n)? y (2)ambari-server 賬號。 Enter user account for ambari-server daemon (root): 如果直接回車就是默認選擇root用戶 如果輸入已經創建的用戶就會顯示: Enter user account for ambari-server daemon (root):ambari Adjusting ambari-server permissions and ownership... (3)檢查防火牆是否關閉 Adjusting ambari-server permissions and ownership... Checking firewall... WARNING: iptables is running. Confirm the necessary Ambari ports are accessible. Refer to the Ambari documentation for more details on ports. OK to continue [y/n] (y)? 直接回車 (4)設置JDK。輸入:3 Checking JDK... Do you want to change Oracle JDK [y/n] (n)? y [1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8 [2] Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files 7 [3] Custom JDK ============================================================================== Enter choice (1): 3 如果上面選擇3自定義JDK,則需要設置JAVA_HOME。輸入:/usr/java/jdk1.8.0_161 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/java/jdk1.8.0_131 Validating JDK on Ambari Server...done. Completing setup... (5)數據庫配置。選擇:y Configuring database... Enter advanced database configuration [y/n] (n)? y (6)選擇數據庫類型。輸入:3 Configuring database... ============================================================================== Choose one of the following options: [1] - PostgreSQL (Embedded) [2] - Oracle [3] - MySQL [4] - PostgreSQL [5] - Microsoft SQL Server (Tech Preview) [6] - SQL Anywhere ============================================================================== Enter choice (3): 3 (7)設置數據庫的具體配置信息,根據實際情況輸入,如果和括號內相同,則可以直接回車。如果想重命名,就輸入。 Hostname (localhost): hdp01.bbdops.com Port (3306): 3306 Database name (ambari): ambari Username (ambari): ambari Enter Database Password (bigdata):ambari123 Re-Enter password: ambari123 (8)將Ambari數據庫腳本導入到數據庫 WARNING: Before starting Ambari Server, you must run the following DDL against the database to create the schema: /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql 這個sql后面會用到,導入數據庫 Proceed with configuring remote database connection properties [y/n] (y)? y
錯誤處理:
如果出現錯誤,請注意查看日志,根據具體的錯誤內容進行處理,默認ambari-server的日志在/var/log/ambari-server/ambari-server.log里面。如果在處理日志的過程中或者后面安裝的過程中出現一些莫名的錯誤,可以重置的安裝。
如果上面進行的默認數據庫的配置,可以使用下面的代碼重置ambari-server。
9、登錄mysql創建ambari安裝所需要的庫
設置的賬號后面配置ambari-server的時候會用到!
CREATE DATABASE ambari; use ambari; CREATE USER 'ambari'@'%' IDENTIFIED BY 'ambari123'; GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%'; CREATE USER 'ambari'@'localhost' IDENTIFIED BY 'ambari123'; GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'localhost'; CREATE USER 'ambari'@'hdp01.bbdops.com' IDENTIFIED BY 'ambari123'; GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'hdp01.bbdops.com'; source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql show tables; use mysql; select host,user from user where user='ambari'; CREATE DATABASE hive; use hive; CREATE USER 'hive'@'%' IDENTIFIED BY 'hive'; GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%'; CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive'; GRANT ALL PRIVILEGES ON *.* TO 'hive'@'localhost'; CREATE USER 'hive'@'hdp01.bbdops.com' IDENTIFIED BY 'hive'; GRANT ALL PRIVILEGES ON *.* TO 'hive'@'hdp01.bbdops.com'; CREATE DATABASE oozie; use oozie; CREATE USER 'oozie'@'%' IDENTIFIED BY 'oozie'; GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'%'; CREATE USER 'oozie'@'localhost' IDENTIFIED BY 'oozie'; GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'localhost'; CREATE USER 'oozie'@'hdp01.bbdops.com' IDENTIFIED BY 'oozie'; GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'hdp01.bbdops.com'; FLUSH PRIVILEGES;
10、啟動ambari服務
[root@hdp01.bbdops.com ~]# ambari-server stop [root@hdp01.bbdops.com ~]# ambari-server reset [root@hdp01.bbdops.com ~]# ambari-server setup [root@hdp01.bbdops.com ~]# ambari-server start 啟動服務 Using python /usr/bin/python Starting ambari-server Ambari Server running with administrator privileges. Organizing resource files at /var/lib/ambari-server/resources... Ambari database consistency check started... Server PID at: /var/run/ambari-server/ambari-server.pid Server out at: /var/log/ambari-server/ambari-server.out Server log at: /var/log/ambari-server/ambari-server.log Waiting for server start.................................. Server started listening on 8080 DB configs consistency check: no errors and warnings were found. Ambari Server 'start' completed successfully.
11、所有節點安裝ambari-agent
yum install ambari-agent systemctl start ambari-agent
五、部署集群
1、登錄界面:http://10.0.0.11:8080
默認管理員賬戶登錄, 賬戶:admin 密碼:admin
2、選擇版本,配置yum源
1)選擇Launch Install Wizard
2)配置集群名稱
3)選擇版本並修改本地源地址
選HDP-3.1(Default Version Definition);
選Use Local Repository;
選redhat7:
HDP-3.1: http://10.0.0.11/hdp/HDP/centos7/3.1.0.0-78/
HDP-3.1-GPL: http://public-repo-1.hortonworks.com/HDP-GPL/centos7/3.x/updates/3.1.0.0/
HDP-UTILS-1.1.0.22: http://10.0.0.11/hdp/HDP-UTILS-1.1.0.22/HDP-UTILS/centos7/1.1.0.22/
3、配置節點和密鑰
從主節點的/root目錄下下載密鑰id_rsa,並上傳即可!點擊下一步,進入確認主機界面
4、開始檢查准備
5、勾選需要安裝的服,后期需要可以再裝
6、分配服務,保持默認
7、選擇節點安裝的服務
8、設置相關服務的密碼
9、連接數據庫
執行以下語句,再去測試連接
[root@hdp01.bbdops.com ~]# ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar Using python /usr/bin/python Setup ambari-server Copying /usr/share/java/mysql-connector-java.jar to /var/lib/ambari-server/resources/mysql-connector-java.jar If you are updating existing jdbc driver jar for mysql with mysql-connector-java.jar. Please remove the old driver jar, from all hosts. Restarting services that need the driver, will automatically
copy the new jar to the hosts. JDBC driver was successfully initialized. Ambari Server 'setup' completed successfully.
測試通過,我們點擊下一步
10、查看配置文件,要是服務有問題,會在這里報異常,解決了才能往下
下一步,查看你的配置,告訴你系統會默認創建的用戶
11、點擊繼續
12、驗證你的配置文件,點擊下方部署按鈕開始部署
正在部署,此過程比較漫長,慢慢等待!