使用Ambari来部署hadoop集群(搭建内网HDP源)

2017-01-12 10:00:15来源:作者:51CTO推荐博文人点击

第七城市
规划 OS:centos6.5 Ambari-yumrepo 10.10.10.20 公网

Ambari-server 10.10.10.10 内网

hadoop-master1 10.10.10.1 内网

hadoop-master2 10.10.10.2 内网

hadoop-slave1 10.10.10.3 内网

hadoop-slave2 10.10.10.4 内网

hadoop-slave3 10.10.10.5 内网

准备工作

(1)修改主机名

Ambari-server、master1、master2、slave1、slave2、slave3

$ hostname XXX && echo XXX >/etc/hostname$ cat >> /etc/hosts << EOF10.10.10.1 master110.10.10.2 master210.10.10.3 slave110.10.10.4 slave210.10.10.5 slave310.10.10.10 ambari-server10.10.10.20 ambari-yumrepoEOF (2)关闭selinux和防火墙

Ambari-server、master1、master2、slave1、slave2、slave3

$ setenforce 0$ service iptables stop$ chkconfig iptables off (3)主从节点ssh互信

slave1、slave2、slave3

$ echo sshd:10.64.8.1 10.64.8.2 >>/etc/hosts.allow

master1、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、master1、master2、slave1、slave2、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、master1、master2、slave1、slave2、slave3

$ yes|mkfs.ext4 /dev/sdb$ mkdir /data$ mount /dev/sdb /data$ echo "mount /dev/sdb /data" >>/etc/rc.local

(6) 系统参数调优

Ambari-server、master1、master2、slave1、slave2、slave3

$ cat >>/etc/sysctl.conf <<EOFnet.ipv4.tcp_fin_timeout = 30net.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 65000net.ipv4.tcp_max_syn_baklog = 8192net.ipv4.tcp_max_tw_bukets = 5000EOF 文件打开数 $ cat >> /etc/security/limits.conf <<EOF* soft nofile 65535* hard nofile 65535EOF 重启

二:搭建内网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=HDPbaseurl=http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.0.6.0enabled=1gpgcheck=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.xbaseurl=http://10.10.10.20/ambari/gpgcheck=0enabled=1[HDP-UTILS-1.1.0.16]name=Hortonworks Data Platform Utils Version - HDP-UTILS-1.1.0.16baseurl=http://10.10.10.20/ambari/gpgcheck=0enabled=1[Updates-ambari-1.4.1.25]name=ambari-1.4.1.25 - Updatesbaseurl=http://10.64.10.20/ambari/gpgcheck=enabled=1 $ vim hdp.repo[HDP-2.0.6]name=HDPbaseurl=http://10.10.10.20/hdppath=/enabled=1gpgcheck=0

三:安装Ambari

(1)添加yum源

Ambari-server、master1、master2、slave1、slave2、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各机器

master1、master2、slave1、slave2、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=HDPbaseurl=http://10.10.10.20/hdppath=/enabled=1gpgcheck=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.*

第七城市

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台