基于Ambari的大數(shù)據(jù)平臺(tái)搭建
同CDH部署類(lèi)似,步驟分為ambari的部署和hdp的部署,先以1臺(tái)為例(內(nèi)存>6G,磁盤(pán)劃分/至少40G,/data/10G),后續(xù)節(jié)點(diǎn)可以通過(guò)擴(kuò)容方式加入集群,可參考:https://blog.csdn.net/qq_32593713/article/details/81429573
一、安裝環(huán)境準(zhǔn)備
1、安裝包準(zhǔn)備
需要下載jdk-8u144-linux-x64.tar.gz,ambari-xx-centos7.tar.gz,HDP-xx-centos7-rpm.tar.gz,HDP-UTILS-xx-centos7.tar.gz到本地(rpm包非常大),鏈接:
http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.6.1.5/ambari-2.6.1.5-centos7.tar.gzhttps://download.csdn.net/download/ljk168/10351315http://public-repo-1.hortonworks.com/HDP-GPL/centos7/2.x/updates/2.6.4.0/HDP-GPL-2.6.4.0-centos7-rpm.tar.gzhttp://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.22/repos/centos7/HDP-UTILS-1.1.0.22-centos7.tar.gzhttp://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.4.0/HDP-2.6.4.0-centos7-rpm.tar.gz
2、主機(jī)準(zhǔn)備。
修改虛擬機(jī)的網(wǎng)絡(luò)設(shè)置、禁用SElinux、修改主機(jī)名、關(guān)閉防火墻、ssh免密、開(kāi)啟http服務(wù)、設(shè)置時(shí)鐘同步;對(duì)于網(wǎng)絡(luò)的要求是:NAT模式下,所有主機(jī)在同網(wǎng)段,且能訪問(wèn)外網(wǎng)。修改IP、網(wǎng)關(guān)、DNS;
vim /etc/sysconfig/network-scripts/ifcfg-ens33??? 修改ifcfg-en33的dhcp自動(dòng)分配修改為靜態(tài)尋址,增加ip/掩碼/網(wǎng)關(guān)配置;(網(wǎng)關(guān)不管怎么配,都不要配192.168.x.1,因?yàn)?號(hào)IP是VMnet8網(wǎng)卡的IP)
TYPE="Ethernet"PROXY_METHOD="none"BROWSER_ONLY="no"BOOTPROTO="static"DEFROUTE="yes"IPV4_FAILURE_FATAL="no"IPV6INIT="yes"IPV6_AUTOCONF="yes"IPV6_DEFROUTE="yes"IPV6_FAILURE_FATAL="no"IPV6_ADDR_GEN_MODE="stable-privacy"NAME="ens33"UUID="5ed941c2-deb4-48ae-a76d-838503c8683c"DEVICE="ens33"ONBOOT="yes"IPADDR="192.168.242.111"GATWAY="192.168.242.2"NETMASK="255.255.255.0"DNS1="192.168.242.2"
???? 配置完成后通過(guò)service network restart 重啟網(wǎng)卡設(shè)置,依然無(wú)法連接外網(wǎng)(ping www.baidu.com),可以增加默認(rèn)dns;
route add default gw 192.168.242.2??? 其次,增加主機(jī)和主機(jī)名映射(/etc/hosts),關(guān)閉防火墻,關(guān)閉SElinux,設(shè)置多主機(jī)免密,開(kāi)啟http服務(wù);
192.168.242.134 hadoop1
#關(guān)閉防火墻,centos7之前版本systemctl disable firewalldsystemctl stopfirewalld#關(guān)閉防火墻,centos7之后版本systemctl disable firewalld.service#重啟生效
#vi /etc/selinux/configSELINUX=disabledSELINUXTYPE=targeted
? ? 主機(jī)免密的方法:
主機(jī)A/B/C為例,設(shè)置免密登錄的方法:① 每臺(tái)機(jī)器上執(zhí)行 ssh-keygen -t rsa ,敲3次回車(chē)會(huì)在家目錄/home/csap下生成隱藏的.ssh目錄,首先需要給此目錄賦權(quán)限700: chmod 700 .ssh;這個(gè)目錄下有兩個(gè)文件:id_rsa 私鑰和id_rsa.pub 公鑰;② 在此目錄中創(chuàng)建 authorized_keys 文件并賦權(quán):cd .sshtouch authorized_keyschmod 644 authorized_keys③ 以機(jī)器A為例,執(zhí)行以上操作后,如果不知道其他機(jī)器的密碼,比如綁定4A;把自己的 id_rsa.pub 公鑰 以及其他兩臺(tái)機(jī)器的公鑰粘貼到 authorized_keys文件中,然后把這個(gè)文件復(fù)制到其他2臺(tái)機(jī)器即可。等于所有機(jī)器都有其他機(jī)器的公鑰,即可完成ssh 免密登錄;④ 如果知道其他機(jī)器密碼,可以直接執(zhí)行這個(gè)把公鑰寫(xiě)到其他機(jī)器的authorized_keys文件中:ssh-copy-id -i ~/.ssh/id_rsa.pub?root@127.0.0.1
??? 時(shí)鐘同步(保證其他節(jié)點(diǎn)同ambari主節(jié)點(diǎn)時(shí)鐘一致):
1、所有機(jī)器安裝ntp :yum -y install ntp2、主節(jié)點(diǎn)配置時(shí)鐘與自己同步:vim /etc/ntp.conf,刪除其他server,加入:server 127.127.1.0 # local clockfudge 127.127.1.0 stratum 103、其他機(jī)器同步主節(jié)點(diǎn)的時(shí)間,vim /etc/ntp.conf,加入:server xxx.xxx.xxx.xx4、重啟所有機(jī)器的ntp服務(wù)systemctl restart ntpd或者service ntpd restartsystemctl status ntpd或者service ntpd status5、驗(yàn)證同步所有節(jié)點(diǎn)執(zhí)行ntpq –p,左邊出現(xiàn)*號(hào)表示同步成功。6、若不成功;/usr/sbin/ntpdate stdtime.gov.hkntpdate xxx.xxx.xxx.xxx手動(dòng)同步時(shí)間
??? 開(kāi)啟http服務(wù),/var/www/html/目錄下會(huì)自動(dòng)創(chuàng)建cm和cdh目錄
yum -y install httpdsystemctl start httpd 或service httpd start
? 安裝jdk,配置JAVA_HOME;
# 卸載其他jdk,使用下面的命令查看當(dāng)前所有的Java環(huán)境的安裝包rpm -qa | grep java# 使用下面的命令刪除所有的Java安裝包rpm -e --nodeps 包名# 安裝jdkmkdir /data/jdkcd /data/jdktar -xvf jdk-8u144-linux-x64.tar.gz# 修改環(huán)境變量,配置java的路徑vi ~/.bash_profile# 增加配置:JAVA_HOME=/data/jdk/jdk1.8.0_144PATH=$PATH:$HOME/bin:${JAVA_HOME}/bin:${JAVA_HOME}/sbin# 使生效source ~/.bash_profile#java -version 指令查看是否生效
3、配置mariaDB。作為hive和ambari的元數(shù)據(jù)庫(kù)
# 安裝數(shù)據(jù)庫(kù)yum -y install mariadb-server# 啟動(dòng)systemctl start mariadb.servicesystemctl enable mariadb.service#首先是設(shè)置密碼,會(huì)提示先輸入密碼,直接回車(chē),設(shè)置密碼123456,一路回車(chē)mysql_secure_installation# 配置數(shù)據(jù)庫(kù)mysql -u root -p 123456# (1)創(chuàng)建ambari數(shù)據(jù)庫(kù)及用戶(hù):create database ambari;CREATE USER 'ambari'@'%'IDENTIFIED BY '123456';GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';FLUSH PRIVILEGES;# (2)創(chuàng)建Hive數(shù)據(jù)庫(kù)和用戶(hù) 再執(zhí)行下面的語(yǔ)句:create database hive;CREATE USER 'hive'@'%'IDENTIFIED BY '123456';GRANT ALL PRIVILEGES ON . TO 'hive'@'%';FLUSH PRIVILEGES;# (3)創(chuàng)建Oozie數(shù)據(jù)庫(kù)和用戶(hù) 再執(zhí)行下面的語(yǔ)句:create database oozie;CREATE USER 'oozie'@'%'IDENTIFIED BY '123456';GRANT ALL PRIVILEGES ON . TO 'oozie'@'%';FLUSH PRIVILEGES;# 最后,安裝數(shù)據(jù)庫(kù)的jdbcyum -y mysql-connector-java# jdbc的安裝路徑:/usr/share/java/mysql-connector-java.jar
4、上傳安裝包,創(chuàng)建本地yum源,開(kāi)始安裝ambari。
??? 配置yum源(所有節(jié)點(diǎn)),刪除/etc/yum.repos.d/下面的所有repo文件,清除之前的緩存yum clean all,虛擬機(jī)設(shè)置的選項(xiàng)中勾選“已連接”:

?
# 掛載文件(注意這里使用的是當(dāng)時(shí)生效,關(guān)機(jī)后會(huì)失效。建議設(shè)置永久掛載文件):mount /dev/cdrom /mnt/
# 設(shè)置自己的yum源vi /etc/yum.repos.d/my.repo
[myrepo]baseurl=file:///mntenabled=1gpgcheck=0
??? 下載到本地的hdp和ambari的RPM文件上傳到/var/wwww/html/ambari目錄下,有文件過(guò)大(>4G),xshell的rz指令無(wú)法直接上傳,可以參考帖子:https://blog.csdn.net/FLawiet/article/details/89597389
# 解壓安裝包cd /var/www/html/ambari/tar -zxvf ambari-2.6.1.5-centos7.tar.gz -C /var/www/html/ambaritar -zxvf HDP-2.6.4.0-centos7-rpm.tar.gz -C /var/www/html/ambarimkdir /var/www/html/ambari/HDP-UTILS/tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz /var/www/html/ambari/HDP-UTILS/
# 解壓后,需要?jiǎng)h除目錄下所有的html文件,不然后續(xù)會(huì)卡主,避免出錯(cuò);cd /var/www/html/ambari/find . -name *.html# html文件集中在一個(gè)文件夾下;cd ./HDP/centos7/2.6.4.0-91/rm *.html
# 解壓后會(huì)在文件夾最底層內(nèi)生成ambari.repo和hdp.repo和hdp-utils.repo文件# 修改每個(gè)url后,拷貝到/etc/yum.repos.d/目錄下,作為本地yum源;
# ① 在 /etc/yum.repos.d文件夾內(nèi)修改ambari.repo,確保能夠http訪問(wèn)baseurl;cat ambari.repo # 內(nèi)容如下#VERSION_NUMBER=2.6.1.5-3[ambari-2.6.1.5]name=ambari Version - ambari-2.6.1.5baseurl=http://192.168.242.111/ambari/ambari/centos7/2.6.1.5-3/gpgcheck=1gpgkey=http://192.168.242.111/ambari/ambari/centos7/2.6.1.5-3/RPM-GPG-KEY/RPM-GPG-KEY-Jenkinsenabled=1priority=1
# ② 在 /etc/yum.repos.d文件夾內(nèi)修改hdp.repo,確保能夠http訪問(wèn)baseurl;cat hdp.repo # 內(nèi)容如下#VERSION_NUMBER=2.6.4.0-91[HDP-2.6.4.0]name=HDP Version - HDP-2.6.4.0baseurl=http://192.168.242.111/ambari/HDP/centos7/2.6.4.0-91/gpgcheck=1gpgkey=http://192.168.242.111/ambari/HDP/centos7/2.6.4.0-91/RPM-GPG-KEY/RPM-GPG-KEY-Jenkinsenabled=1priority=1
[HDP-UTILS-1.1.0.22]name=HDP-UTILS Version - HDP-UTILS-1.1.0.22baseurl=http://192.168.242.111/ambari/HDP-UTILS/centos7/1.1.0.22# baseurl=http://192.168.242.111/ambari/HDP-UTILSgpgcheck=1gpgkey=http://192.168.242.111/ambari/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins# gpgkey=http://192.168.242.111/ambari/HDP-UTILS/RPM-GPG-KEY/RPM-GPG-KEY-Jenkinsenabled=1priority=1
??? 開(kāi)始安裝ambari-server。
# 安裝yum install -y ambari-server# 配置ambari-server setup
??? 配置中會(huì)提示輸入JAVA_HOME和ambari元數(shù)據(jù)庫(kù)的登錄密碼:


???? 登錄ambari數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)庫(kù)進(jìn)行初始化
mysql -uroot -p123456use ambarisource /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sqlshow tables;
??? 完成數(shù)據(jù)庫(kù)的初始化后,啟動(dòng) ambari-server start,如果中間報(bào)錯(cuò)可以看日志:/var/log/ambari-server/ambari-server.log,一般是數(shù)據(jù)庫(kù)權(quán)限的問(wèn)題,類(lèi)似CDH的cm,安裝成功后web訪問(wèn)(admin,admin);
5、開(kāi)始使用ambari界面化操作,配置HDP。
按照指引操作,選擇HDP的rmp包的位置:

??? 可能出現(xiàn)的錯(cuò)誤:Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password),請(qǐng)看一下authorized_keys 文件是否有服務(wù)器自己的公鑰內(nèi)容。出現(xiàn)錯(cuò)誤:NetUtil.py:124 - Server at https://hadoop1:8440 is not reachable, sleeping for 10 seconds...", None)參考:https://blog.csdn.net/qq_41805514/article/details/88871477
??? 組件安裝,由于資源有限,這里只安裝hdfs,mr,yarn,zk和spark組件為例。


--end--
