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

规划

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   内网 


wKioL1hzJT6SH8CmAACKNFpfYWU283.png

             

准备工作

(1)修改主机名

  • Ambari-server、master1、master2、slave1、slave2、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、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 <<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/

wKiom1hzKBbgfyC6AAAkbS43Gkw255.png



(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/

wKiom1hzKEGDeUApAAAKu8EAeyU921.png

spacer.gif

(4)创建repo

  • Ambari-yumrepo

安装createrepo命令

$ yum install createrepo
$ cd  /usr/share/nginx/html/ambari/
$ createrepo ./

spacer.gifwKiom1hzKFKzgL8rAAAeX5mbehM634.png


(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

spacer.gifwKioL1hzKGeCsLu0AAAYJ1erbHg248.png

$ mkdir /usr/share/nginx/html/hdp
$ cd /usr/share/nginx/html/hdp
同步网络源的包,1G左右。
$ reposync -r HDP-2.0.6
$ createrepo ./

spacer.gifwKiom1hzKH7TEoROAAASJE4Lqw0131.png

这样就本地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、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

wKiom1hzKKnTtNRAAAAaVW2nSXE052.png


(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  #初始化配置

spacer.gifwKioL1hzKNTgeb-pAAAU2zTexhI052.png


(5)启动ambari

  • Ambari-server

$ ambari-server start

spacer.gifwKiom1hzKOXy6RuEAAAYI02hEhs359.png


(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

spacer.gifwKioL1hzKQqg5MNfAAAgTzbpECs805.png

  • 输入集群名

spacer.gifwKioL1hzKRiSJqt1AAA_M92eS9Q810.png

  • 选择 stack 版本

spacer.gifwKiom1hzKTHiBJl5AAAyigec8gc454.png

  • Target Hosts输入hadoop机器的列表,需要添加ambari-server这台机器的/root/.ssh/id_rsa文件。

wKiom1hzKU-w6_TYAAC84mB6QQo631.png

  • 会自动安装ambari-agent

spacer.gifwKiom1hzKW7DkRizAAC8ehqA9sQ500.png

  • 选择那个服务安装在哪个机器上。

spacer.gifwKiom1hzKYTw6fBVAAFA_mTt56A500.png

  • 配置客户端和slaves

spacer.gifwKioL1hzKaSjE3CjAACZLwbp1wQ351.png

  • 配置各个系统

wKiom1hzKdTjDjQLAACepuUtLcM514.png

  • 开始安装

wKiom1hzKhrx4Ls0AACdSVBu2Qs209.png

wKioL1hzKkLzrI2wAABXhtmzp88487.pngwKiom1hzKnnRQGkDAACG99fnJ0w740.pngwKiom1hzK0mTlSZfAAJkoVZN3WY729.png

通过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无法启动报错

wKiom1hzK5PTSj6TAACApFs5tTI533.png

wKioL1hzK5TDMQ-OAACqKINZzxI660.png

直接执行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.*


优秀的个人博客,低调大师

微信关注我们

原文链接:https://blog.51cto.com/heqin/1890390

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。