`
ferry2174
  • 浏览: 10345 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用ambari搭建hadoop集群(local)

 
阅读更多
     Ambari是Hortonworks开源的一个管理和安装hadoop集群的工具,跟ClouderaManager类似。

1、系统要求

     1.1、操作系统要求
          都要求是64位操作系统。
              Red Hat EnterPrise Linux:5.x 或 6.x
              CentOS:5.x 或 6.x
              SUSE Linux Enterprise Server 11, SP1
          必须有相应版本的操作系统包,否则安装会遇到错误
     1.2、 浏览器要求
          Ambari是一个基于浏览器的web程序,要求如下:
          Windows(Vista,7)
               IE9或以上
               Firefox最新版
               Safari最新版
               Google Chrome最新版
          Mac OS X(10.6或以上)
               Firefox最新版
               Safari最新版
               Google Chrome最新版
          Linux(RHEL、CentOS、SLES)
               Firefox最新版
               Google Chrome最新版
     1.3、软件要求
          yum
          rpm
          scp
          curl
          wget
          pdsh
          如果使用SUSE操作系统,需要把Python版本升级到2.6.8-0.15.1
     1.4、数据库要求
          Hive/HCatalog、Oozie和Ambari都需要一个内部数据库。
          Hive/HCatalog:默认使用Ambari自带的Mysql5.x。也可以自己配置Oracle 11g r2。
          Oozie:默认使用Ambari自带的Derby。也可以自己配置Mysql5.x和Oracle 11g r2。
          Ambari:默认使用Ambari自带的PostgreSQL8.x,也可以使用Oracle 11g r2.
2、环境准备
     2.1、检查已经安装的软件:
          
 RHEL/CentOS v5RHEL/CentOS v6SLES 11
Ambari Server
  • libffi 3.0.5-1.el5

  • python26 2.6.8-2.el5

  • python26-libs 2.6.8-2.el5

  • postgresql 8.4.13-1.el6_3

  • postgresql-libs 8.4.13-1.el6_3

  • postgresql-server 8.4.13-1.el6_3

  • libpq5 9.1.5-0.2.1

  • postgresql 8.3.20-0.4.1

  • postgresql-init 9.1-0.6.10.1

  • postgresql-server 8.3.20-0.4.1

Ambari Agent[a]
  • libffi 3.0.5-1.el5

  • python26 2.6.8-2.el5

  • python26-libs 2.6.8-2.el5

None

None

Nagios Server[b]
  • nagios 3.2.3-2.el5

  • nagios-plugins 1.4.15-2.el5

  • nagios-common 2.12-10.el5

  • nagios 3.2.3-2.el6

  • nagios-plugins1.4.9-1

  • nagios 3.2.3-2.1

  • nagios-plugins 1.4.9-1

  • nagios-www 3.2.3-2.1

Ganglia Collector[c]
  • ganglia-gmetad 3.2.0-99

  • rrdtool 1.4.5-1.el5

  • ganglia-gmetad 3.2.0-99

  • rrdtool 1.4.5-1.el6

  • ganglia-gmetad 3.2.0-99

  • rrdtool 1.4.5-4.5.1

Ganglia Monitor[d]

ganglia-gmond 3.2.0-99

ganglia-gmond 3.2.0-99

ganglia-gmond 3.2.0-99

[a集群中的每台机器都要安装,用来与Ambari服务器沟通,来执行命令。

[b用来运行Nagios的主机。

[c] 用来运行Ganglia收集服务器的主机。

[d集群中的每台机器都要安装,用来向Ganglia收集器发送指标。

     2.2、设置无密码SSH

          为了让Ambari Server在集群各节点上安装Ambari Agent,必须在各节点上配置无密码登录。
          步骤如下:
               1)在Ambari服务器上生成SSH公私钥对:
                    ssh-keygen
                    所有步骤全部点回车,如果提示是否要overwrite,填写y。会生成两个文件,分别是“/root/.ssh/id_rsa”是私钥,“/root/.ssh/id_rsa.pub”是公钥。
               2)将公私钥拷贝到服务器所在主机的主账号.ssh目录下。如果就是在目标主机进行的操作,那么公私钥会自动生成在对应的路径下,如果不是,就拷贝过去。
               3)将公钥的内容复制到“/root/.ssh/authorized_keys”文件中、
                    cat id_rsa.pub >> authorized_keys
               4)将~/.ssh目录权限设置为700,~/.ssh/authorized_keys文件权限设置为600
                    chmod 700 ~/.ssh
                    chmod 600 ~/.ssh/authorized_keys
               5)将authorized_keys文件拷贝到集群其他主机root用户的~/.ssh路径下。
               6)可以使用ssh root@{target.host} 命令来连接远程主机,如果不提示输入用户名密码说明配置成功。
     2.3、配置NTP,将集群中所有主机的时间同步。
     2.4、系统不支持ip访问,需要使用主机名。
          检查DNS,需要配置好集群中各节点的DNS和反向DNS,如果没有DNS,就需要配置各节点的/etc/hosts文件。
          将所有节点的“{ip} {对应主机名}”加入到/etc/hosts文件中即可。
          可以用hostname -f命令来查看主机名。
          最后还需要配置网络文件:
               打开网络配置文件:vi /etc/sysconfig/network
               输入以下内容:
                   NETWORKING=yes

                   NETWORKING_IPV6=yes
                   HOSTNAME={主机名}
                   GATEWAY={网关地址}

     2.5、 禁用SELinux
          可以选择临时性和永久性的禁用。
          临时性,使用命令:
               setenforce 0
          永久性,修改/etc/selinux/config文件
               SELINUX=disabled
               SELINUXTYPE=targeted
     2.6、禁用iptables,使用以下命令
          chkconfig iptables off
          /etc/init.d/iptables stop
     2.7、禁用PackageKit
          在RHEL/CentOS中,编辑/etc/yum/pluginconf.d/refresh-packagekit.conf,进行如下修改
               enabled=0
     2.8、检查umask的值
          集群的所有机器上,umask的值必须是022
          可以在/etc/profile中设置
     2.9、安装python26(集群所有机器都要安装)
          下载以下的包:
                python26:http://dl.fedoraproject.org/pub/epel/5/x86_64/python26-2.6.8-2.el5.x86_64.rpm
                libffi.so.5()(64bit):http://dl.fedoraproject.org/pub/epel/5/x86_64/libffi-3.0.5-1.el5.x86_64.rpm
                libpython2.6.so.1.0()(64bit):http://dl.fedoraproject.org/pub/epel/5/x86_64/python26-libs-2.6.8-2.el5.x86_64.rpm*
          把这三个放在同一个目录下,进行安装
               rpm -ivh *.rpm
               rpm -ivh python26*
3、创建系统软件源
     创建系统软件园系统apache server和createrepo软件包,如果没有需要安装。
     3.1、下载ambari、HDP和HDP-Utils软件包
          ambari:http://public-repo-1.hortonworks.com/ambari/centos5/ambari-1.2.5.17-centos5.tar.gz
          HDP:http://s3.amazonaws.com/public-repo-1.hortonworks.com/HDP/centos5/HDP-1.3.2.0-centos5-rpm.tar.gz
          HDP-Utils:http://s3.amazonaws.com/public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.16/repos/centos5/HDP-UTILS-1.1.0.16-centos5.tar.gz
     3.2、建立ambari库
          1)解压后,将(解压相对路径)
                     ambari-1.2.5.17-centos5\ambari\centos5\1.x\updates\1.2.5.17\noarch
                     ambari-1.2.5.17-centos5\ambari\centos5\1.x\updates\1.2.5.17\x86_64
               等两个目录拷贝到本地库所在主机的/var/www/html/ambari路径下(注意不要拷贝repodata目录)
          2)创建软件源
               chmod -R ugo+rX /var/www/html/ambari
               cd /var/www/html/ambari
               createrepo .
          3)创建/etc/yum.repos.d/ambari.repo文件并加入以下内容
               [ambari-1.2.5.17]
               name = Ambari
               baseurl = http://${server_id}/ambari/
               enabled=1
               gpgcheck = 0
     3.3、建立hdp-util库
          1)解压,将(解压相对路径)HDP-UTILS-1.1.0.16-centos5\HDP-UTILS-1.1.0.16\repos\centos5\目录下,除了hdp-util.repo文件和repodata目录之外的所有文件盒目录拷贝到软件源服务器的/var/www/html/hdp-util路径下
          2)创建软件源
               chmod -R ugo+rX /var/www/html/hdp-util
               cd /var/www/html/hdp-util
               createrepo .
          3)创建/etc/yum.repos.d/hdp-util.repo文件并加入以下内容
               [HDP-UTILS-1.1.0.16]
               name=Hortonworks Data Platform Utils Version - HDP-UTILS-1.1.0.16
               baseurl=http://${server_ip}/hdp-util/
               path=/
               enabled=1
               gpgcheck=0
     3.4、建立HDP库
          1)解压,将(解压相对路径)HDP-1.3.2.0-centos5-rpm\HDP\centos5\1.x\updates\1.3.2.0\目录下,除了hdp.repo文件和repodata目录之外的所有文件盒目录拷贝到软件源服务器的/var/www/html/hdp路径下
          2)创建软件源
               chmod -R ugo+rX /var/www/html/hdp
               cd /var/www/html/hdp
               createrepo .
          3)注意不要创建相应的库描述文件,这个文件会在ambari安装ambari-agent的过程中自动创建
     3.5、创建系统软件源
          1)把系统安装光盘(或镜像文件)下Packages(centos)路径下的所有软件包拷贝到软件源服务器的/var/www/html/system路径下
          2)创建软件源
               chmod -R ugo+rX /var/www/html/hdp
               cd /var/www/html/hdp
               createrepo .
          3)创建/etc/yum.repos.d/system.repo文件并加入以下内容
               [system]
               name=system
               baseurl=http://${server_ip}/system/
               path=/
               enabled=1
               gpgcheck=0
     3.6、验证软件源
          在浏览器中输入http://${server_ip}/$[ambari, hdp-util, system],如果三个源都正确显示,切生成了repodata目录,说明软件源创建正确。
     3.6、复制软件源描述文件
          将软件源服务器/etc/yum.repos.d/目录下的ambari.repo、hdp-util.repo、system.repo等三个文件拷贝到集群所有主机的/etc/yum.repos.d/目录下。
          在各主机上运行命令 yum repolist,如果显示下面的文字,说明操作正确。
               repo id                          repo name                                                                                   
               ambari-1.2.5.17             Ambari                                                                                                                                                                     
               HDP-UTILS-1.1.0.16        Hortonworks Data Platform Utils Version - HDP-UTILS-1.1.0.16       
               system                          system                                     
4、安装
     4.1、安装ambari-server的二进制包
          在ambari服务器上执行:
                yum install ambari-server
     4.2、修改/etc/ambari-server/conf/ambari.properties
          1)下载http://public-repo-1.hortonworks.com/ARTIFACTS/jce_policy-6.zip文件,放在本地http服务器上(软件源服务器即可)。
               将 jce_policy.url 属性值设为这个文件的本地地址。
               例如,将文件放在了apache server的/var/www/html/xx/jce_policy-6.zip路径的话,地址是:http://{server_ip}/xx/jce_policy-6.zip
          2)自己做一个名字叫“public-hostname”的文件,文件内容与/etc/hosts相同,要包含集群内所有主机的主机名和ip地址对,放到本地http服务器上。
               将server.fqdn.service.url 属性值设为文件的本地地址。
          3)到oracle网站下载一个jdk-6u31-linux-x64.bin 安装文件,放在本地http服务器上。
               将jdk.url 属性值改为文件的本地地址。
          4)在文件末尾加上:security.passwords.encryption.enabled=false
     4.2、安装ambari-server
          ambari-server setup -j ${JAVA_HOME}
          注意:这个JAVA_HOME需要在集群所有主机上使用同一个路径
     4.3、配置ambari-server,使之能够找到本地HDP库
          vi /var/lib/ambari-server/resources/stacks/HDPLocal/${version}/repos/repoinfo.xml
          这个文件中有很多操作系统条目,找到你的系统所在的条目,将baseurl的值改为hdp库的地址。
          注:根据你自己的版本号变更${version}的值
     4.4、启停ambari-server
          ambari-server start
          ambari-server stop
     4.5、登录ambari-server
          浏览器中输入:http://{main.install.hostname}:8080
          默认用户名/密码:admin/admin
          如果出现了登录界面并能登录成功,说明安装成功了。
5、安装HDP
     1、安装步骤如下:
          1)环境界面,敲入集群名:  
           
          2)选择安装包,我们选择1.3.0       
                    
          3)安装选项:
               填写要加入集群的机器,每行写一个,可以使用表达式,如:gic20[6-31],即使gic206-gic231之间的所有机器
               选择ssh私钥文件。选择之前做ssh无密码登陆时创建的私钥,通常名字为id_rsa。
               SSH user,我们使用root
               高级选项中,我们选择本地软件库而不是联网;填写主机上64位JDK的地址。
               
           4)确认主机:
               如果成功可能会抛出几个异常,包括:1)有些用户不应该存在;2)有些目录不应该存在;3)有的服务不应该启动;4)有的服务需要启动。按照提示,做相应的操作。
               
           5)选择要安装的服务。
               
           6)指定Master
               NameNode和SecondaryNameNode要放在一起
               NameNode和JobTracker要放在一起
               否则JobTracker和SecondaryNameNode会找不到NameNode,这个问题还没有解决,谁解决了请告诉一下解决方法。(zhang.jb@neusoft.com)
               
           7)选择slave和客户端
               
           8)定义服务参数
               
           9)review:检查一下设置,下一步就是部署了。
               
           10)安装、启动和测试
               
6、注意事项:
     6.1、ambari库描述文件的名称必须是 ambari.repo
     6.2、日志查看
          tail -300f /var/log/ambari-server/ambari-server.log
          tail -300f /var/log/ambari-agent/ambari-agent.log
     6.3、如果失败,可以使用下面的命令重新来过。
          手工在所有集群节点上执行:ambari-agent stop
          在主节点上执行:ambari-server stop ;   ambari-server reset;    ambari-server start,即可重新来过。
          有时候ambari-server启动时ambari-agent已经在之前安装完毕,会卡在集群安装的确认主机(第四步),需要手工将集群其他节点的agent启动。
     6.4、安装过程中如果失败,最好清空一下浏览器的历史记录,有时候即使ambari-server reset了,登录浏览器后也会直接跑到失败那一步。
     6.5、Hadoop安装过程中提示hdp库id找不到
          下面两个位置的库id要保持一致
               1)/var/lib/ambari-server/resources/stacks/HDPLocal/${version}/repos/repoinfo.xml文件中的“repoid”属性值
               2)安装集群第二步选择的版本号
     6.6、安装时设置的jdk路径,需要对创建的所有ambari用户具有可执行权限
     6.7、最好找一个干净的环境来安装,本人用之前装过Cloudera的机器来装,真是费了九牛二虎之力啊...
7、ambari卸载脚本
     网上找的,完善了一下,出处:http://www.cnblogs.com/cenyuhai/archive/2013/08/28/3287855.html
#1.删除hdp.repo和hdp-util.repo
cd /etc/yum.repos.d/
rm -rf hdp*
rm -rf HDP*
rm -rf ambari*
#2.删除安装包
#用yum list installed | grep HDP来检查安装的ambari的包

yum remove -y ambari-server.noarch

yum remove -y ambari-agent.x86_64
yum remove -y sqoop.noarch  
yum remove -y lzo-devel.x86_64  
yum remove -y hadoop-libhdfs.x86_64  
yum remove -y rrdtool.x86_64  
yum remove -y hbase.noarch  
yum remove -y pig.noarch  
yum remove -y lzo.x86_64  
yum remove -y ambari-log4j.noarch  
yum remove -y oozie.noarch  
yum remove -y oozie-client.noarch  
yum remove -y gweb.noarch  
yum remove -y snappy-devel.x86_64  
yum remove -y hcatalog.noarch  
yum remove -y python-rrdtool.x86_64  
yum remove -y nagios.x86_64  
yum remove -y webhcat-tar-pig.noarch  
yum remove -y snappy.x86_64  
yum remove -y libconfuse.x86_64  
yum remove -y mysql.x86_64  
yum remove -y webhcat-tar-hive.noarch  
yum remove -y ganglia-gmetad.x86_64  
yum remove -y extjs.noarch  
yum remove -y hive.noarch  
yum remove -y hadoop-lzo.x86_64  
yum remove -y hadoop-lzo-native.x86_64  
yum remove -y hadoop-native.x86_64  
yum remove -y hadoop-pipes.x86_64  
yum remove -y nagios-plugins.x86_64  
yum remove -y hadoop.x86_64  
yum remove -y zookeeper.noarch  
yum remove -y mysql-libs.x86_64  
yum remove -y mysql-connector-java.noarch  
yum remove -y hadoop-sbin.x86_64  
yum remove -y ganglia-gmond.x86_64  
yum remove -y libganglia.x86_64  
yum remove -y perl-rrdtool.x86_64
yum remove -y epel-release.noarch
yum remove -y compat-readline5*
yum remove -y fping.x86_64
yum remove -y perl-Crypt-DES.x86_64
#3.删除用户
userdel nagios 
userdel hive 
userdel ambari-qa 
userdel hbase 
userdel oozie 
userdel hcat 
userdel mapred 
userdel hdfs 
userdel rrdcached 
userdel zookeeper 
userdel mysql 
userdel sqoop
userdel puppet

userdel yarn
userdel hue
userdel flume
userdel sqoop2
#4.删除文件夹
rm -rf /hadoop
rm -rf /etc/hadoop 
rm -rf /etc/hbase 
rm -rf /etc/hcatalog 
rm -rf /etc/hive 
rm -rf /etc/ganglia 
rm -rf /etc/nagios 
rm -rf /etc/oozie 
rm -rf /etc/sqoop 
rm -rf /etc/zookeeper

rm -rf /etc/hue
rm -rf /var/run/hadoop
rm -rf /var/run/hbase
rm -rf /var/run/hive
rm -rf /var/run/ganglia
rm -rf /var/run/nagios
rm -rf /var/run/oozie

rm -rf /var/run/zookeeper
rm -rf /var/log/hadoop
rm -rf /var/log/hbase
rm -rf /var/log/hive 
rm -rf /var/log/nagios 
rm -rf /var/log/oozie 
rm -rf /var/log/zookeeper

rm -rf /var/log/hue

rm -rf /usr/lib/hadoop
rm -rf /usr/lib/hbase 
rm -rf /usr/lib/hcatalog 
rm -rf /usr/lib/hive 
rm -rf /usr/lib/oozie 
rm -rf /usr/lib/sqoop 
rm -rf /usr/lib/zookeeper
rm -rf /var/lib/hue
rm -rf /var/lib/hive 
rm -rf /var/lib/ganglia 
rm -rf /var/lib/oozie 
rm -rf /var/lib/zookeeper 
rm -rf /var/tmp/oozie 
rm -rf /tmp/hive 
rm -rf /tmp/nagios 
rm -rf /tmp/ambari-qa 
rm -rf /tmp/sqoop-ambari-qa 
rm -rf /var/nagios 
rm -rf /hadoop/oozie 
rm -rf /hadoop/zookeeper 
rm -rf /hadoop/mapred 
rm -rf /hadoop/hdfs 
rm -rf /tmp/hadoop-hive 
rm -rf /tmp/hadoop-nagios 
rm -rf /tmp/hadoop-hcat 
rm -rf /tmp/hadoop-ambari-qa 
rm -rf /tmp/hsperfdata_hbase 
rm -rf /tmp/hsperfdata_hive 
rm -rf /tmp/hsperfdata_nagios 
rm -rf /tmp/hsperfdata_oozie 
rm -rf /tmp/hsperfdata_zookeeper 
rm -rf /tmp/hsperfdata_mapred 
rm -rf /tmp/hsperfdata_hdfs 
rm -rf /tmp/hsperfdata_hcat 
rm -rf /tmp/hsperfdata_ambari-qa
#5.删除ambari包
#采用这句命令来检查yum list installed | grep ambari
yum remove -y ambari-*
yum remove -y postgresql
rm -rf /etc/yum.repos.d/ambari*
rm -rf /var/lib/ambari*
rm -rf /var/log/ambari*
rm -rf /etc/ambari*
rm -rf /usr/lib/ambari*

#6.删除快捷方式
cd /etc/alternatives

rm -rf hadoop-conf
rm -rf hbase-conf

rm -rf hive-conf 
rm -rf hadoop-etc 
rm -rf zookeeper-conf 
rm -rf hbase-conf 
rm -rf hadoop-log 
rm -rf hadoop-lib 
rm -rf hadoop-default 
rm -rf oozie-conf 
rm -rf hcatalog-conf 
rm -rf hadoop-man 
rm -rf sqoop-conf 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics