基于Apache Ambari搭建Hadoop大数据平台

基于Apache Ambari搭建Hadoop大数据平台
作者:雨水/家辉  日期:2017年2月28日 CSDN博客:http://blog.csdn.net/gobitan
摘要:对于大数据的初学者来说,搭建一个Hadoop大数据基础平台不是一件容易的事。而由Hortonworks贡献给Apache开源社区的Ambari则提供了搭建整个Hadoop生态的一站式服务。本文以测试环境为例,详细介绍了整个HDP的搭建过程。

全文共分为三个部分,第一部分是Ambari的准备部分;第二部分为安装Ambari;第三部分为基于Ambari-server安装Hadoop及其生态组件。
第一部分:
第一步:基础集群主机规划
[1] ambari           192.168.81.128
[2] namenode    192.168.81.129
[3] hadoop01      192.168.81.130
[4] hadoop02      192.168.81.131  

CentOS操作系统安装
第一步:下载VMware Player,并安装。
具体过程略。

第二步:下载CentOS7,并在VMware Player上安装
[1] 下载CentOS7
CentOS有几个版本,DVD版本太大了(大约4G多),包括图形界面,这里作为服务器工作没有必要,因此选择Minimal版本。下载地址: http://mirrors.163.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1611.iso。Minimal版本大约680M。
[2] 基于VMware Player安装
创建一个新的虚拟机,选择从iso安装,然后依次输入:
全名:centos7_64,用户名:dennis,密码:123456,虚拟机名字也为centos7_64,硬盘大小默认20G。创建好之后,修改下虚拟机的配置:内存改为2048MB,处理器核心数量改为:2,其他保持默认即可,然后开始安装。

第三步:操作系统配置
注意:以下操作如果没有特别说明,均默认以root身份执行。
[1] 安装net-tools
Miminal版本果然是小,连ifconfig命令都没有安装。执行如下安装ifconfig:
# yum search ifconfig
根据查到的安装包来安装
# yum install -y net-tools.x86_64

[2] NTP安装
# yum install -y ntp

[3] 修改文件句柄数
在/etc/security/limits.conf的末尾增加如下两行:
* hard nofile 50000
* soft nofile 50000

[4] 关闭虚拟机,然后将虚拟机拷贝三份
[5] 依次启动这四台虚拟机,修改虚拟机的hostname和hosts
  (1) 分别将/etc/hostname中的内容改为ambari, namenode, hadoop01和hadoop02;
  (2) 分别在/etc/hosts文件的后面加入如下内容:
192.168.81.128  ambari
192.168.81.129  namenode
192.168.81.130  hadoop01
192.168.81.131  hadoop02
hostname和hosts改完之后,统一把所有机器重启一遍!让配置生效!

第四步:配置Ambari Server到Ambari Agent的单向免密码登陆
在Ambari Server节点执行如下命令:
ssh-keygen -t rsa 回车后再按连续三个回车
cd .ssh/
cat id_rsa.pub >> authorized_keys

分别在其他三台机器上创建/root/.ssh目录,如下:
# mkdir /root/.ssh

然后将authorized_keys拷贝到其他三台机器的.ssh目录,如下:
scp authorized_keys NameNode:/root/.ssh/
scp authorized_keys Hadoop01:/root/.ssh/
scp authorized_keys Hadoop02:/root/.ssh/

验证配置:
[root@ambari ~]# ssh Ambari date; ssh NameNode date; ssh Hadoop01 date; ssh Hadoop02 date;
Tue Feb 28 03:26:26 PST 2017
Tue Feb 28 03:26:26 PST 2017
Tue Feb 28 03:26:26 PST 2017
Tue Feb 28 03:26:26 PST 2017

第五步:安装nginx
# rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
# yum install -y nginx
# mkdir -p /var/www/html
# chcon -Rt httpd_sys_content_t /var/www/html/

修改/etc/nginx/conf.d/default.conf内容如下:
server {
    listen       8190;
    server_name  192.168.65.130;

    location / {
        root   /var/www/html;
        index  index.html index.htm;
    }
}

# 关闭selinux
将/etc/selinux/config中的SELINUX值改为disabled,保存重启操作系统。
注:因为是测试环境,建议将其他三台机器的selinux都关闭了,这样减少很多因为端口未开放导致的问题。生产环境另当别论,可参考selinux的相关操作。

# 拷贝默认主页
# cp /usr/share/nginx/html/index.html /var/www/html/

# 启动nginx
# service nginx start

# 设置nginx开机自启动
# systemctl enable nginx.service

检查nginx是否配置正确,访问如下地址:
http://192.168.81.128:8190 

第六步:搭建Ambari本地源
从公共yum源安装太慢了,因此需要搭建私有yum源来安装。Ambari此为当前(2017-02-24)最新版本为2.4.2。具体版本可以参考:
http://docs.hortonworks.com/HDPDocuments/Ambari/Ambari-2.4.2.0/index.html 
http://docs.hortonworks.com/HDPDocuments/Ambari-2.4.2.0/bk_ambari-installation/content/ch_Getting_Ready.html
如果要选择其他版本,可以从这里进入 http://docs.hortonworks.com/index.html,然后进行选择。

安装createrepo
[1] yum install -y createrepo

配置Ambari源
[2] wget  http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.4.2.0/ambari-2.4.2.0-centos7.tar.gz
因为ambari-2.4.2.0-centos7.tar.gz这个文件有1.29G,因此建议用迅雷下载,然后传到CentOS上。
备注:如果要下载其他版本,可参看《Hortonworks Data Platform: Apache Ambari Installation》
[3] 解压ambari-2.4.2.0-centos7.tar.gz
将该文件移到/var/www/html/目录下,然后解压
# tar zxf ambari-2.4.2.0-centos7.tar.gz
# mv AMBARI-2.4.2.0/ ambari
[4] 创建repo
# createrepo /var/www/html/ambari/

配置HDP源
[1] wget  http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.5.3.0/HDP-2.5.3.0-centos7-rpm.tar.gz
文件4.99G,同上,建议用迅雷下载。
[2] 解压
# tar zxf HDP-2.5.3.0-centos7-rpm.tar.gz
[3] # createrepo /var/www/html/HDP/

配置HDP-UTILS 源
[1] wget  http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.21/repos/centos7/HDP-UTILS-1.1.0.21-centos7.tar.gz
文件745M,同上,建议用迅雷下载。
[2] 解压
# tar zxf HDP-UTILS-1.1.0.21-centos7.tar.gz
[3]  # mv HDP-UTILS-1.1.0.21/ HDP-UTILS
# createrepo /var/www/html/HDP-UTILS/

编写repo文件
ambari.repo如下:
[ambari-2.4.2]
name=ambari-2.4.2
baseurl=http://192.168.81.128:8190/ambari
gpgcheck=0

HDP.repo如下:
[HDP-2.5.3]
name=HDP-2.5.3
baseurl=http://192.168.81.128:8190/HDP /centos7
gpgcheck=0

HDP-UTILS.repo如下:
[HDP-UTILS-1.1.0.21]
name=HDP-UTILS-1.1.0.21
baseurl=http://192.168.81.128:8190/HDP-UTILS /repos/centos7
gpgcheck=0

检查repo的配置是否正确
# yum repolist
repo id                                                        repo name                                                      status
HDP-2.5.3                                                      HDP-2.5.3                                                        200
HDP-UTILS-1.1.0.21                                       HDP-UTILS-1.1.0.21                                          52
ambari-2.4.2                                                   ambari-2.4.2                                                      12
status不为零即可。

将repo拷贝到其他三台机器
scp ambari.repo NameNode:/etc/yum.repos.d/
scp HDP.repo NameNode:/etc/yum.repos.d/
scp HDP-UTILS.repo NameNode:/etc/yum.repos.d/

scp ambari.repo Hadoop01:/etc/yum.repos.d/
scp HDP.repo Hadoop01:/etc/yum.repos.d/
scp HDP-UTILS.repo Hadoop01:/etc/yum.repos.d/

scp ambari.repo Hadoop02:/etc/yum.repos.d/
scp HDP.repo Hadoop02:/etc/yum.repos.d/
scp HDP-UTILS.repo Hadoop02:/etc/yum.repos.d/
可将上面命令放入一个shell文件中,一次执行!

Ambari私有库配置完成!

第二部分:安装Ambari Server
第一步:安装ambari-server
注:登陆到Ambari主机!
[1] # yum -y install ambari-server

[2] 上传jce_policy-8.zip和jdk-8u112-linux-x64.tar.gz
下载jce_policy-8.zip和jdk-8u112-linux-x64.tar.gz,将其上传到/var/lib/ambari-server/resources 
http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
由于接下来的ambari-server setup中要安装jdk,从网上下载太慢,而直接放到resource目录没有识别出来。因此,这里先手动安装好,然后指定路径。
安装jdk三步:先解压到/opt目录,再在/etc/profile中加入
export JAVA_HOME=/opt/jdk1.8.0_112
export PATH=$PATH:$JAVA_HOME/bin
保存后再执行. /etc/profice让其生效。

[3] 配置Ambari-server
# ambari-server setup -j 
中间有询问,全部输入y,有输入全部采用默认。
数据用户名和密码:ambari/bigdata
注意:这一步有问题,采用的是Custom安装,jce没有用到

[4] 配置postgresql自启动
chkconfig --level 35 postgresql on

[5] 启动ambari-server
[root@Ambari ~]# ambari-server start
Using python  /usr/bin/python
Starting ambari-server
Ambari Server running with administrator privileges.
Organizing resource files at /var/lib/ambari-server/resources...
Ambari database consistency check started...
No errors were found.
Ambari database consistency check finished
Server PID at: /var/run/ambari-server/ambari-server.pid
Server out at: /var/log/ambari-server/ambari-server.out
Server log at: /var/log/ambari-server/ambari-server.log
Waiting for server start....................
Ambari Server 'start' completed successfully.

[6] 检查状态
[root@Ambari ~]# ambari-server status
Using python  /usr/bin/python
Ambari-server status
Ambari Server running
Found Ambari Server PID: 7913 at: /var/run/ambari-server/ambari-server.pid
[root@Ambari ~]# lsof -i:8080
COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    7913 dennis 1423u  IPv6  61236      0t0  TCP *:webcache (LISTEN)
[root@Ambari ~]#

[7] 网页登陆ambari-server
http://192.168.81.128:8080,用户名和密码都是admin
=====================Ambari-server搭建完成,下面开始在界面上安装Hadoop集群!

第三部分:在Ambari-server上安装Hadoop集群生态
登陆http://192.168.81.128:8080,然后点击"Launch Install Wizard"开始安装!

第一步:集群名字:dbigdata
第二步:版本选择:全部选择最新的,当前为HDP2.5,然后选择本地源中的redhat7。填写Base URL分别为:
http://192.168.81.128:8190/HDP/centos7
http://192.168.81.128:8190/HDP-UTILS/repos/centos7
第三步:安装选项
[1] 输入主机名:
NameNode
Hadoop01
Hadoop02
[2] 将私钥ida_rsa上传,这个是在做ssh免登陆那一步中生成的。

第四步:主机注册
这一步如果注册是失败,可以点开看看具体原因(如下面可能的原因)。有时候会出现一些莫名其妙的错误,这时可以重试几次。
注册过程如果发现有issues,则需要点开,然后一一解决,如下面发现的问题:
[1] jdk需要在每台机器上都有,同样的位置;
[2] 需要将另外三台的防火墙关了:service firewalld stop
[3] 另外三台的ntp未运行: service ntpd start
[4] 检查这三台机子上/etc/yum.repos.d下的repo中的URL是否正确

第五步:选择服务
安装组件的选择:
未选择安装的部分:
Falcon     0.10.0.2.5    Data management and processing platform
Storm     1.0.1.2.5    Apache Hadoop Stream processing framework
Flume     1.5.2.2.5    A distributed service for collecting, aggregating, and moving large amounts of streaming data into HDFS
Accumulo 1.7.0.2.5    Robust, scalable, high performance distributed key/value store.
Atlas    0.7.0.2.5    Atlas Metadata and Governance platform
Knox    0.9.0.2.5    Provides a single point of authentication and access for Apache Hadoop services in a cluster
Zeppelin Notebook    0.6.0.2.5    A web-based notebook that enables interactive data analytics. It enables you to make beautiful data-driven, interactive and collaborative documents with SQL, Scala and more.
第六步:分配节点
基于Apache Ambari搭建Hadoop大数据平台_第1张图片
第七步:Master和Slave选择
推荐DataNode和Client都安装。
            
Hive Metastore数据库的密码:123456,MySQL数据库(hadoop02)
Ambari Metrics: Grafana Admin Password: 123456
Smart Sense: 密码:123456
Hive->Tez Container Size: 170M-->512M

系统提示Oozie使用Derby会导致某些功能无法使用,因此要使用MySQL。
https://dev.mysql.com/downloads/connector/j/ 下载mysql-connector-java-5.1.40.zip,解压后可获得mysql-connector-java-5.1.40-bin.jar,上传至Ambari节点的/opt目录下,然后执行如下命令:
ambari-server setup --jdbc-db=mysql --jdbc-driver=/opt/mysql-connector-java-5.1.40-bin.jar
参考: http://docs.hortonworks.com/HDPDocuments/Ambari-2.4.2.0/bk_ambari-reference/content/using_non-default_databases_-_oozie.html

注意:以下操作在Hadoop01(也就是Oozie Server所在节点)上执行!
因为执行yum install mysql默认安装的是mariadb,它是MySQL的一个分支。
干脆采用如下安装:
[1] 安装:yum install mariadb mariadb-server
[2] 启动:service mariadb start
[3] 配置开机启动:systemctl enable mariadb
[4] 安全配置:mysql_secure_installation
初次运行时,密码为空,可直接回车。设置root密码为:123456,其他默认。
参考: http://www.linuxidc.com/Linux/2016-03/128880.htm  CentOS 7.0 使用 yum 安装 MariaDB 与 MariaDB 的简单配置

然后进入MySQL,执行如下命令:
# mysql -uroot -p123456
MariaDB [(none)]>
CREATE USER 'oozie'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'%';
FLUSH PRIVILEGES;
CREATE DATABASE oozie;
这些都创建好之后,需要测试下数据库的连接性。成功之后即可进入下一步!

然后就进入漫长地安装等待。。。,如果有失败的,多尝试几次!
安装成功后,登陆:http://192.168.81.128:8080/,用户名和密码都是admin。
基于Apache Ambari搭建Hadoop大数据平台_第2张图片

参考资料:
[1] 《Hortonworks Data Platform: Apache Ambari Installation》
[2]  http://www.ibm.com/developerworks/cn/opensource/os-cn-bigdata-ambari/   Ambari——大数据平台的搭建利器

你可能感兴趣的:(基于Apache Ambari搭建Hadoop大数据平台)