目前大數(shù)據(jù)集群開源的主要是ambari和CDH隘谣,下面我來介紹下如何安裝ambari:
一淋纲、基礎環(huán)境插件安裝
yum clean all
yum makecache
升級openssl
yum install -y openssl
yum -y install ruby*
yum -y install redhat-lsb*
yum -y install snappy*
yum -y install gcc(如果沒有就要裝)
配置映射關系:
安裝jdk,過程就不贅敘了:
vi /etc/profile 加到末尾
SET JAVA HOME
export JAVA_HOME=/usr/java/jdk1.8.0_74
export JSTORM_HOME=/usr/hdp/2.6.2.0-205/jstorm-2.2.1
export PATH=PATH:JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
關閉防火墻
service iptables stop
chkconfig iptables off
禁用selinux掘鄙,vi /etc/selinux/config,按照圖示修改:
查看selinux的狀態(tài)
/usr/sbin/sestatus -v
disabled即關閉狀態(tài)
如果沒關閉耘戚,則用如下命令關閉,不用重啟機器
setenforce 0
二操漠、各節(jié)點之間配置相互免密登錄
關閉Linux的THP服務
vim /etc/rc.local
添加:
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
exit 0
echo never > /sys/kernel/mm/transparent_hugepage/enabled
檢查:有[never]則表示THP被禁用
cat /sys/kernel/mm/transparent_hugepage/enabled
配置免密
如果沒有生成密鑰的要生成一下
ssh-keygen
ssh-copy-id ip地址
安裝ntpd服務收津,主要用來服務器之間的時間同步
yum install -y ntpd
制作本地yum源
i.將如下3個包拷貝到集群的某一臺機器上,并解壓縮到/var/www/html目錄下ambari-2.5.2-centos7.tar.gz颅夺,HDP-2.6.2.0-centos7-rpm.tar.gz朋截,HDP-UTILS-1.1.0.20-centos7.tar.gz
ii.yum配置
解壓HDP-UTILS-1.1.0.20-centos6.tar.gz 到目錄 /var/www/html/ambari
tar zxvf HDP-UTILS-1.1.0.20-centos6.tar.tar -C /var/www/html/ambari
同理,把ambari-2.5.2-centos7.tar.gz目錄拷貝到目錄 /var/www/html/ambari
安裝本地源制作工具yum install yum-utils createrepo
進入/var/www/html/ambari 目錄吧黄,執(zhí)行命令:createrepo ./
ambari本地源制作完成
同理,把HDP-2.6.2.0-centos7-rpm.tar.gz目錄拷貝到目錄 /var/www/html/hdp
進入/var/www/html/hdp 目錄唆姐,執(zhí)行命令:createrepo ./
hadoop本地源制作完成
配置yum源
cd /etc/yum.repos.d
vi ambari.repo
[ambari-2.2.1.]
name=Ambari 2.5.2
baseurl=http://master地址/ambari/
gpgcheck=0
enabled=1
[HDP-UTILS-1.1.0.20]
name=Hortonworks Data Platform Utils Version - HDP-UTILS-1.1.0.20
baseurl=http://master地址/ambari/
gpgcheck=0
enabled=1
vi HDP.repo
[HDP-2.6]
name=HDP-2.6
baseurl=http://master地址/hdp/
path=/
enabled=1
vi HDP-UTILS.repo
[HDP-UTILS-1.1.0.21]
name=HDP-UTILS-1.1.0.21
baseurl=http://master地址/ambari/
path=/
enabled=1
至此yum源已經(jīng)配置好了
master節(jié)點安裝httpd
yum install -y httpd
若出現(xiàn)目錄信息拗慨,且工作目錄默認在/var/www/html
http服務使用80端口,檢查端口是否占用
netstat -nltp | grep 80
?如果有占用情況奉芦,安裝完畢后需要修改http服務的端口號
sudo vim /etc/httpd/conf/httpd.conf
修改監(jiān)聽端口赵抢,Listen 80為其他端口
同時打開http://master地址/ambari/
http://master地址/hdp/ 這2個網(wǎng)址,看能否顯示如下內(nèi)容:
顯示即為成功了声功,不顯示可能是httpd沒有啟動烦却,service httpd start啟動下。
或者是baseurl設置的不對先巴,baseurl的ip為ambari-server所在的機器其爵。
如果顯示yum源連接拒絕或者403forbidden,哪是因為apache用戶沒有訪問權限chown -R apache:apache www 賦予權限即可
安裝mysql
yum install mysql
安裝mysql服務端
yum install -y mysql-server
yum install -y mysql-devel
i. mysql相關設置:
設置字符集
SET NAMES 'utf8';
set character_set_database=utf8;
set character_set_server=utf8;
查看字符集
SHOW VARIABLES LIKE 'character%';
看到字符集設置成utf-8了
service mysqld start
但是啟動以后再查看伸蚯,字符集還是latin1摩渺,治標不治療本
vi /etc/my.conf
在[mysqld]上面加下面的話
[client]
default-character-set=utf8
在[mysqld]最下面加下面的話
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
重啟mysql
service mysqld restart
SHOW VARIABLES LIKE 'character%';
修改數(shù)據(jù)庫的字符集
庫名:test
ALTER DATABASE hive
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
修改表的字符集
student為表
ALTER TABLE student
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
設置賬號和密碼
mysqladmin -u root password root
檢查mysql是否為開機啟動
chkconfig --list | grep mysqld
mysql未開機啟動,需要開機啟動
chkconfig mysqld on
再次chkconfig --list | grep mysqld檢查一下狀態(tài)
進入mysql
mysql -uroot -proot
如果想改密碼剂邮,則進行下面操作摇幻。
UPDATE user SET Password=PASSWORD('root') where USER='root';
FLUSH PRIVILEGES;
進入mysql,查看是否能進行增刪改查等相關操作。
ii. 登錄mysql創(chuàng)建ambari绰姻、hive枉侧、oozie的資料庫:
-
ambari for mysql 配置
CREATE USER 'ambari'@'%' IDENTIFIED BY 'ambari';
GRANT ALL PRIVILEGES ON . TO 'ambari'@'%';
CREATE USER 'ambari'@'localhost' IDENTIFIED BY 'ambari';
GRANT ALL PRIVILEGES ON . TO 'ambari'@'localhost';
CREATE USER 'ambari'@'node1' IDENTIFIED BY 'ambari';
GRANT ALL PRIVILEGES ON . TO 'ambari'@'node1';
Create database ambari;
設置ambari的登錄密碼:
UPDATE user SET Password=PASSWORD('ambari') where USER='ambari';
FLUSH PRIVILEGES;
說明:node1是安裝ambari Server所在的機器。
-
hive for mysql 配置
CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON . TO 'hive'@'localhost';
CREATE USER 'hive'@'%' IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON . TO 'hive'@'%';
CREATE USER 'hive'@'node2' IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON . TO 'hive'@'node2';
FLUSH PRIVILEGES;
CREATE DATABASE hive;
UPDATE user SET Password=PASSWORD('root') where USER='hive';
FLUSH PRIVILEGES;
說明:'node2' 是安裝Hive Metastore元數(shù)據(jù)的機器狂芋。
-
root設置
GRANT ALL PRIVILEGES ON . TO root@'%' identified by 'root';
FLUSH PRIVILEGES;
oozie用戶設置
CREATE USER 'oozie'@'%' IDENTIFIED BY 'oozie';
GRANT ALL PRIVILEGES ON . TO 'oozie'@'%';
FLUSH PRIVILEGES;
三棵逊、Ambari 安裝
清空緩存
yum clean all
提高安裝軟件的速度
yum makecache
安裝ambari-master
yum install ambari-server
ambari-server 配置
ambari-server setup
直接回車,并且默認指定 ambari Server 的運行用戶為 root
選擇3银酗,自定義已經(jīng)安裝JDK路徑:/usr/java/jdk1.7.0_67
默認高級數(shù)據(jù)庫配置辆影,在這里輸入3:(建議輸入1采用默認的)
默認設置了ambari GUI 的登錄用戶為 admin/admin。并且指定 ambari Server 的運行用戶為 root
ambari-server 啟動:
ambari-server start
注意:這里啟動不了大多與DB連接驅(qū)動有關:
yum install mysql-connector-java或者將驅(qū)動包放在/usr/share/java下
加載驅(qū)動進ambari的設置中
ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector
-java-5.1.17.jar
另外黍特,安裝ambari-server的機器上要安裝mysql客戶端
確保安裝mysql的機器上有ambari庫蛙讥,ambari庫里面有相對應的表
如果沒有ambari這個庫,就需要做第三步中1.#ambari for mysql 配置的步驟了灭衷。
同時還需要進行如下操作:將表加載到ambari中
進入ambari-server所安裝的機器cd /var/lib/ambari-server/resources
如果元數(shù)據(jù)庫跟ambari-server在同一個節(jié)點:
進入元數(shù)據(jù)庫
use ambari;
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql;
完成后退出次慢,再次啟動ambari-server
ambari-server start
如果不在同一個節(jié)點上:
進入ambari-server所安裝的機器vi /var/lib/ambari-server/resources
vi Ambari-DDL-MySQL-CREATE.sql
在sql的最開頭加上use ambari;
然后在安裝mysql所在的機器上執(zhí)行如下sql:
mysql -h master節(jié)點 -uambari -pambari <Ambari-DDL-MySQL-CREATE.sql
ambari-agent 安裝【所有節(jié)點】
yum install ambari-agent
啟動:ambari-agent
/etc/init.d/ambari-agent start
如果某一臺機器上的agent啟動失敗,可進行如下操作:
yum remove ambari-agent
同時清空/var/下的資料翔曲,再次yum下載ambari-agent
yum install ambari-agent
再次啟動agent
/etc/init.d/ambari-agent start
顯示ambari-agent started即表示成功了迫像,那么可以安裝組件了。
四瞳遍、集群管理平臺的創(chuàng)建
登錄:http://master地址:8080 用戶名:admin 密碼:admin
創(chuàng)建集群:
選擇hdp的安裝版本:
并添加yum源的所在的路徑
http://master地址/ambari/
http://master地址/hdp/
添加節(jié)點:cat /etc/hosts里面映射的名字
如果連不上闻妓,看下hostname是否配置正確了。
cat /etc/ambari-agent/conf/ambari-agent.ini
然后查查日志ambari-server.out
選擇安裝的組件:
服務分配:
分配完畢后開始進行安裝掠械,此處時間會比較長由缆,請耐心等待。
常見的問題集錦
i.ambari-server無法啟動的問題
原因:沒有正確的配置ambari和hive用戶和庫導致連接失敗猾蒂,或者是沒有加載mysql驅(qū)動到設置中均唉。
解決方案:
加載mysql驅(qū)動到ambari-setup中ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java-5.1.17.jar
其次,檢查mysql安裝的機器上是否有ambari,hive用戶和庫肚菠,如果沒有舔箭,需要重復之前的動作建庫和用戶
最后,需要檢查ambari庫里面是否有相關聯(lián)的表蚊逢,沒有就需要加載進去
ii.部分ambari-agent啟動失敗的問題
原因:ambari-agent啟動失敗是因為之前啟動過ambari层扶,但是失敗了進行重構(gòu)時,沒有清理干凈造成
方案如下:
ambari-agent stop
ambari-server stop
yum remove ambari-agent
卸載安裝的軟件:
yum remove hadoop_2* hdp-select* ranger_2* zookeeper* bigtop* atlas-metadata* ambari* postgresql spark*
檢查一下
yum list | grep @HDP
刪除postgresql的數(shù)據(jù):
rm -rf /var/lib/pgsql
刪除用戶:ambari會自動創(chuàng)建一些用戶时捌,清除集群時有必要清除這些用戶怒医,并刪除對應的文件夾,避免造成權限問題奢讨。
具體操作見:http://blog.csdn.net/wk022/article/details/49278419
完畢以后稚叹,重新安裝agent并啟動就可以了焰薄。
yum install ambari-agent
ambari-agent start
iii.安裝hive的時候,hive元數(shù)據(jù)啟動不了
原因:安裝hive的時候填寫的登錄密碼不正確
方案:初始化hive的密碼為輸入的密碼即可扒袖。
UPDATE user SET Password=PASSWORD('hive') where USER='hive';
重裝ambari集群的時候塞茅,一定要把mysql表中ambari的信息給清空掉,最好是換臺機器裝mysql
iv.啟動yarn和hbase的時候顯示No such file or directory: '/usr/hdp/current/hadoop-client/conf'而報錯
原因:軟鏈接與hadoop安裝地址掉了季率,吧軟鏈接增加上去即可
ln -s /usr/hdp/current/hadoop-client/conf /etc/hadoop/conf
五野瘦、Ambari節(jié)點的增加與刪除
i.ambari節(jié)點的增加
打開ambari頁面,點擊hosts飒泻,進入到hosts操作頁面鞭光,點擊add new hosts
如下圖所示:
填寫待增加節(jié)點的別名以及主節(jié)點的私鑰,如下圖所示:
后續(xù)的步驟就是依次安裝組件泞遗,前面有講解過惰许,就不贅言了
ii.Ambari下線節(jié)點
點擊hosts進入到所有節(jié)點展示頁面,點擊需要刪除的節(jié)點史辙,如紅色框所示
進入該節(jié)點以后汹买,必須先停止該節(jié)點下的所有服務,點擊左邊紅色框內(nèi)的delete
最后記得停止該節(jié)點的ambari-agent聊倔,下線節(jié)點完畢晦毙,hdfs重新rebalance一下
iii.ambari卸載某個節(jié)點的服務
如上一樣,還是點擊hosts耙蔑,然后選中需要下線服務的節(jié)點见妒,進入到該節(jié)點的服務列表,停止該服務纵潦,然后點擊delete即可徐鹤,這個時候ambari會提示要重啟關聯(lián)的組件,重啟一下需要重啟的組件即可邀层。
關于安裝ambari2.7版本以上的yum配置
將下載的3個包全部解壓到/var/www/html目錄下
分別進入ambari和HDP下修改ambari.repo和hdp.repo的配置文件信息,然后cp到/etc/yum.respo下
信息如下:
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.3.0
baseurl=http://172.16.1.89/ambari/centos7/2.7.3.0-139
gpgcheck=0
gpgkey=http://172.16.1.89/ambari/centos7/2.7.3.0-139/RPM-GPG-KEY
enabled=1
priority=1
hdp.repo
VERSION_NUMBER=3.0.1.0-187
[HDP-3.0.1.0]
name=HDP Version - HDP-3.0.1.0
baseurl=http://172.16.1.89/HDP/centos7/3.0.1.0-187/
gpgcheck=0
gpgkey=http://172.16.1.89/HDP/centos7/3.0.1.0/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://172.16.1.89/HDP-UTILS/centos7/1.1.0.22/
gpgcheck=0
gpgkey=http://172.16.1.89/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/
enabled=1
priority=1
③ 編輯 /etc/python/cert-verification.cfg 配置文件遂庄,將 [https] 節(jié)的 verify 項設為禁用:
[root@ambari ~]# vi /etc/python/cert-verification.cfg
# Possible values are:
# 'enable' to ensure HTTPS certificate verification is enabled by default
# 'disable' to ensure HTTPS certificate verification is disabled by default
# 'platform_default' to delegate the decision to the redistributor providing this particular Python version
# For more info refer to https://www.python.org/dev/peps/pep-0493/
[https]
verify=disable
保存退出寥院。
sed -i 's/verify=platform_default/verify=disable/ g' /etc/python/cert-verification.cfg
④ 編輯 /etc/ambari-agent/conf/ambari-agent.ini 配置文件,在 [security] 節(jié)部分涛目,確保設置如下兩個值秸谢,其它值保持不變:
[root@ambari ~]# vi /etc/ambari-agent/conf/ambari-agent.ini
[security]
ssl_verify_cert=0
force_https_protocol=PROTOCOL_TLSv1_2
sed -i '/ssl_verify_cert=0/a force_https_protocol=PROTOCOL_TLSv1_2' /etc/ambari-agent/conf/ambari-agent.ini
保存退出,重啟 ambari-agent:
[root@ambari ~]# ambari-agent restart