規劃html
OS:centos6.5java
Ambari-yumrepo 10.10.10.20 公網 node
Ambari-server 10.10.10.10 內網 linux
hadoop-master1 10.10.10.1 內網 ios
hadoop-master2 10.10.10.2 內網 nginx
hadoop-slave1 10.10.10.3 內網 web
hadoop-slave2 10.10.10.4 內網 vim
hadoop-slave3 10.10.10.5 內網 centos
準備工做bash
(1)修改主機名
Ambari-server、master一、master二、slave一、slave二、slave3
$ hostname XXX && echo XXX >/etc/hostname $ cat >> /etc/hosts << EOF 10.10.10.1 master1 10.10.10.2 master2 10.10.10.3 slave1 10.10.10.4 slave2 10.10.10.5 slave3 10.10.10.10 ambari-server 10.10.10.20 ambari-yumrepo EOF
(2)關閉selinux和防火牆
Ambari-server、master一、master二、slave一、slave二、slave3
$ setenforce 0 $ service iptables stop $ chkconfig iptables off
(3)主從節點ssh互信
slave一、slave二、slave3
$ echo sshd:10.64.8.1 10.64.8.2 >>/etc/hosts.allow
master一、master2
$ ssh-keygen -t rsa $ ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave1 $ ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave2 $ ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave3
(4)安裝jdk
Ambari-server、master一、master二、slave一、slave二、slave3
$ wget http://download.oracle.com/otn-pub/java/jdk/8u111-b14/jdk-8u111-linux-x64.rpm $ rpm -ivh jdk-8u111-linux-x64.rpm
(5)格式化硬盤
Ambari-server、master一、master二、slave一、slave二、slave3
$ yes|mkfs.ext4 /dev/sdb $ mkdir /data $ mount /dev/sdb /data $ echo "mount /dev/sdb /data" >>/etc/rc.local
(6)系統參數調優
Ambari-server、master一、master二、slave一、slave二、slave3
$ cat >>/etc/sysctl.conf <<EOF net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 1200 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.ip_local_port_range = 1024 65000 net.ipv4.tcp_max_syn_baklog = 8192 net.ipv4.tcp_max_tw_bukets = 5000 EOF
文件打開數
$ cat >> /etc/security/limits.conf <<EOF * soft nofile 65535* hard nofile 65535 EOF
重啓
二:搭建內網yum源
注意:由於考慮到hadoop集羣的機器多是內網機器,沒有公網訪問權限,那麼選擇搭建一個內網的yum源,這個yum源的機器須要有公網權限。若是你的機器均可以出公網,也能夠跳過這一步。
(1)添加yum源
Ambari-yumrepo
$ cd /opt $ wget http://public-repo-1.hortonworks.com/ambari/centos6/1.x/updates/1.4.1.25/ambari.repo $ cp ambari.repo /etc/yum.repos.d/
(2)同步yum源的包
Ambari-yumrepo
$ reposync -r HDP-UTILS-1.1.0.16 $ reposync -r Updates-ambari-1.4.1.25 $ reposync -r ambari-1.x
會在當前目錄生成三個目錄。
(3)發佈yum源
Ambari-yumrepo
須要一個web服務器來發布,已經安裝了nginx,將上面下載包的三個目錄移動到nginx發佈目錄下。
$ yum install nginx $ mkdir /usr/share/nginx/html/ambari $ cp -R ambari-1.x /usr/share/nginx/html/ambari/ $ cp -R HDP-UTILS-1.1.0.16 /usr/share/nginx/html/ambari/ $ cp -R Updates-ambari-1.4.1.25 /usr/share/nginx/html/ambari/
(4)建立repo
Ambari-yumrepo
安裝createrepo命令
$ yum install createrepo $ cd /usr/share/nginx/html/ambari/ $ createrepo ./
(5)添加HDP源
Ambari-yumrepo
$ vim /etc/yum.repos.d/HDP.repo [HDP-2.0.6] name=HDP baseurl=http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.0.6.0 enabled=1 gpgcheck=0
$ mkdir /usr/share/nginx/html/hdp $ cd /usr/share/nginx/html/hdp 同步網絡源的包,1G左右。 $ reposync -r HDP-2.0.6 $ createrepo ./
這樣就本地yum源就OK了!
(6)配置yum.repo配置文件,放在web目錄下。
Ambari-yumrepo
注意:這個ambari.repo配置是給其餘機器來使用的,不是本機的配置。
$ mkdir /usr/share/nginx/html/hadoop $ cd /usr/share/nginx/html/hadoop $ vim ambari.repo [ambari-1.x] name=Ambari 1.x baseurl=http://10.10.10.20/ambari/ gpgcheck=0 enabled=1 [HDP-UTILS-1.1.0.16] name=Hortonworks Data Platform Utils Version - HDP-UTILS-1.1.0.16 baseurl=http://10.10.10.20/ambari/ gpgcheck=0 enabled=1 [Updates-ambari-1.4.1.25] name=ambari-1.4.1.25 - Updates baseurl=http://10.64.10.20/ambari/ gpgcheck= enabled=1
$ vim hdp.repo [HDP-2.0.6] name=HDP baseurl=http://10.10.10.20/hdp path=/ enabled=1 gpgcheck=0
三:安裝Ambari
(1)添加yum源
Ambari-server、master一、master二、slave一、slave二、slave3
$ cd /etc/yum.repos.d/ $ wget http://10.10.10.20/hadoop/ambari.repo #上面搭建的內網yum源 $ wget http://10.10.10.20/hadoop/hdp.repo #上面搭建的內網yum源
(2)ambari主機ssh信任hadoop各機器
master一、master二、slave一、slave二、slave3
$ echo sshd:10.10.10.10 >>/etc/hosts.allow
Ambari-server
$ ssh-keygen -t rsa $ ssh-copy-id -i ~/.ssh/id_rsa.pub root@master1 $ ssh-copy-id -i ~/.ssh/id_rsa.pub root@master2 $ ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave1 $ ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave2 $ ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave3
(3)安裝ambari
Ambari-server
$ yum -y install ambari-server
(4)初始化ambari
Ambari-server
下載須要的jdk文件(必須用這個文件)
$ wget http://public-repo-1.hortonworks.com/ARTIFACTS/jdk-6u31-linux-x64.bin $ mv jdk-6u31-linux-x64.bin /var/lib/ambari-server/resources/ $ ambari-server setup #初始化配置
(5)啓動ambari
Ambari-server
$ ambari-server start
(6)給ambari配置本地的hadoop源
Ambari-server
$ cd /var/lib/ambari-server/resources/stacks/HDPLocal/2.0.6/repos/ $ vim repoinfo.xml 將centos6的 <baseurl>http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.0.6.0</baseurl> 替換成 <baseurl>http://10.10.10.20/hdp/centos6/2.x/updates/2.0.6.0</baseurl>
(7)進入ambari
訪問:http://10.10.10.10:8080進入ambari,user:admin,passwd:admin
輸入集羣名
選擇 stack 版本
Target Hosts輸入hadoop機器的列表,須要添加ambari-server這臺機器的/root/.ssh/id_rsa文件。
會自動安裝ambari-agent
選擇那個服務安裝在哪一個機器上。
配置客戶端和slaves
配置各個系統
開始安裝
經過Ambari部署hadoop集羣成功!
部署過程當中遇到的問題:
1:執行os_type_check.sh腳本執行失敗致使的Local OS is not compatible with cluster primary OS報錯,這是一個BUG,能夠直接修改該os_type_check.sh,輸出正確的結果。
2:ambari沒有複製過去正確的hdp源,因此手動將hdp源配置到hadoop的集羣
$ vim hdp.repo [HDP-2.0.6] name=HDP baseurl=http://10.10.10.20/hdp path=/ enabled=1 gpgcheck=0
3:nagios輸入正確密碼和用戶名沒法登錄,密碼文件httpd用戶沒有權限,設置777後能夠正常訪問。
-rw-r----- 1 nagios nagios 26 Jun 9 11:54 /etc/nagios/htpasswd.users
4:jourenode沒法啓動報錯
直接執行yum會報錯
$ yum -d 0 -e 0 -y install net-snmp-utils
rpmdb: Thread/process 12500/139757427676928 failed: Thread died in Berkeley DB library
error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db3 - (-30974)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:
解決辦法:
$ rm -rf /var/lib/rpm/__db.*