Ambari构建大数据环境

在大数据方面工作也有两年之久,从了解到了解PLUS也总结了一些笔记、心得,该篇文章详细记录了用apache ambari离线搭建大数据环境。

环境准备

本篇搭建采用centos6.5和jdk1.8进行环境的搭建,ambari版本为ambari-2.2.1。

  • ssh免密码登录

    采用greenplum自带管理命令进行ssh免密码配置以及后续的多台服务器管理。

    安装文件

    1. 免密码

      ps:其中all_hosts为所有主机包括自己,seg_hosts为管理的非己主机。

      > cat /home/gpadmin/all_hosts
        host1
        host2
        host3
      # 交换密钥    
      > gpssh-exkeys -f /home/gpadmin/all_hosts
      
    2. 主机管理

      # 主机文件批量管理    
      > gpssh -f /home/gpadmin/all_hosts
      
      # 采用命令行批量管理
      > gpssh -h host1 -h host2 -h hosts3
      
  • 防火墙关闭

  • selinux关闭

    1. 临时关闭

      > sudo setenforce 0
      # 使用如下命令,得到“Permissive”
      > getenfoce
      
    2. 永久生效

      修改 vim /etc/selinux/config 设为SELINUX=disabled,之后重启所有服务器。
      
  • 时间同步(将主节点作为时间服务器,其他节点向主节点时间同步)

    1. 安装ntp、ntpdate

      > sudo yum -y ntp ntpdate
      
    2. 修改/etc/ntp.conf

      # 在restrict default kod nomodify notrap nopeer noquery(表示默认拒绝所有IP的时间同步)之后增加一行。
      # restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap 
      # 上面只允许192.168.0.0网段的客户机进行时间同步。
      
    3. 时间同步

       >sudo crontab -e
       # 每隔10分钟同步一下时钟
       0-59/10 * * * * /usr/sbin/ntpdate -u 210.72.145.44|logger-tNTP
      
      ntp常用服务器:
      中国国家授时中心:210.72.145.44
      NTP服务器(上海) :ntp.api.bz
      
  • 修改/etc/hosts

  • 获取插件

    1. yum install yum-plugin-priorities -y
    
        # 获取yum-plugin-priorities即可,不需要配置,如需配置参考:
        vi/etc/yum/pluginconf.d/priorities.conf
       # 设置为以下内容
       [main]
       enabled=1gpgcheck=0
    
    2. 更新openssl
    
        # 查看openssl版本
       rpm -qa | grep openssl
       openssl-1.0.1e-15.el6.x86_64
    
       # 更新openssl
       sudo yum upgrade openssl
    
       # 确认
       rpm -qa | grep openssl
       openssl-1.0.1e-16.el6.x86_64
    
       # 重试ok
    

Ambari安装

在线安装参考官网:
https://cwiki.apache.org/confluence/display/AMBARI/Install+Ambari+2.2.1+from+Public+Repositories

离线安装

元数据(采用mysql对元数据存储)

1
2
3
4
5
6
7
8
9
# 创建库以及给予相应权限
> create database ambari DEFAULT CHARACTER SET utf8;
> grant all privileges on ambari.* to 'ambari'@'%' identified by 'your_password';
> grant all privileges on ambari.* to 'ambari'@'your_hostname' identified by 'your_password' WITH GRANT OPTION;
> FLUSH PRIVILEGES;
# 导入ambari schema
> use ambari;
> source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql;

制作ambari repo(本地源)

在ambari-server节点安装 httpd,并将这三个资源包解压放在/var/www/html/hdp/目录下。

  • ambari-2.2.1.0-centos6.tar.gz
  • HDP-2.4.0.0-centos6-rpm.tar.gz
  • HDP-UTILS-1.1.0.20-centos6.tar.gz
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
> sudo yum install httpd -y && sudo mkdir -p /var/www/html/hdp/
# 在所有节点/etc/yum.repos.d/目录创建如下文件,具体内如下:
--hdp.repo---
[HDP-2.4.0.0]
name=HDP Version - HDP-2.4.0.0
baseurl=http://[ambari-server]:80/hdp/HDP/centos6/2.x/updates/2.4.0.0
gpgcheck=1
gpgkey=http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.4.0.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
--ambari.repo--
[Updates-ambari-2.2.1.0]
name=ambari-2.2.1.0 - Updates
baseurl=http://[ambari-server]:80/hdp/AMBARI-2.2.1.0/centos6/2.2.1.0-161
gpgcheck=1
gpgkey=http://public-repo-1.hortonworks.com/ambari/centos6/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
--hdp-util.repo--
[HDP-UTILS-1.1.0.20]
name=HDP Utils Version - HDP-UTILS-1.1.0.20
baseurl=http://[ambari-server]:80/hdp/HDP-UTILS-1.1.0.20/repos/centos6
gpgcheck=1
gpgkey=http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.3.0.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

####开始安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
1、在ambari-server执行:sudo yum install ambari-server -y
2、ambari设置(元数据的设置)
> sudo ambari-server setup
> sudo ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java-5.1.38-bin.jar
mysql如果报错 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver, 需要查看如下几个目录, 确保 JDBC 在这几个目录下面:
● /usr/share/java/
● /var/lib/ambari-server/resources
● /usr/lib/ambari-server
3、在amabri-server主机上启动ambari
> sudo service ambari-server start
4、浏览器访问ambari-server
http://<ambari-server-host>:8080.
5、接下来就可以安装hadoop生态圈各组件了,这里就不赘述了。

PS

ambari软件下载地址:

● [Ambari] http://docs.hortonworks.com/HDPDocuments/Ambari-2.2.1.1/bk_Installing_HDP_AMB/content/_ambari_repositories.html
● [HDP] http://docs.hortonworks.com/HDPDocuments/Ambari-2.2.1.1/bk_Installing_HDP_AMB/content/_hdp_23_repositories.html

ambari文件目录:

● resource目录:/var/lib/ambari-server/,/var/lib/ambari-agent/
● 日志目录:/var/log/ambari-server/,/var/log/ambari-agent/
● 配置目录: /etc/ambari-server/conf/ambari.properties

hadoop栈文件目录:

● resource目录:/usr/hdp/**
● 日志目录:/var/log/hdfs/(以hdfs为例)
● 配置目录:/etc/**

总结

问题

安装

  1. Install, Start and Test 过程中No module named rpm.

    解决:到centos 镜像网站:http://mirrors.163.com/centos/6/os/x86_64/Packages/找到以下包重装
    > sudo rpm -ivh *.rpm
    
    -------------------------安装包----------------------
    python-2.6.6-36.el6.x86_64.rpm
    python-urlgrabber-3.9.1-8.el6.noarch.rpm
    python-devel-2.6.6-36.el6.x86_64.rpm
    python-libs-2.6.6-36.el6.x86_64.rpm
    yum-3.2.29-40.el6.centos.noarch.rpm
    

使用

1、在使用过程中,提供了webui的方式对集群很方便的管理,将hadoop每个组件作为服务对集群进行管理。

2、和ambari对应的还有CDH进行集群得统一管理,CDH有商业版本和免费使用版本。

3、大部分公司使用的还是CDH进行搭建,不仅仅是版本统一之类的(个人理解,诸如对yarn调度器的管理,实现了对yarn动态资源池的管理),因为CDH有商业在后面支持,社区很活跃,遇到的问题大部分都能解决。

各位客官,留点碎银子呗✧(≖ ◡ ≖✿)奴家会再接再厉的!!!