安装及部署Hadoop

2019-09-18

安装及部署Hadoop

本文着重介绍如何安装Ambari,并简单描述如何使用Ambari部署Hadoop服务。

操作系统:CentOS 7

网络:内部局域网

Ambari版本:2.6.1.0

HDP版本:2.6.4.0

在不能连接外网的情况下,我需要预先下载相应的Ambari安装源HDP安装源以及HDP-UTILS安装源

如果在一个可以连接外网的环境中,也可以直接使用Hortonworks提供的线上源,不过一般来说,使用线上源安装比较慢,你懂的。

机器信息

共5台机器,信息如下:

主机名 IP
xwd1 192.168.0.101
xwd2 192.168.0.102
xwd3 192.168.0.103
xwd4 192.168.0.104
xwd5 192.168.0.105

以下操作用户均为root用户

添加主机映射信息

操作机器:xwd1

编辑/etc.hosts文件,填写以下内容:

1
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4::1         localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.0.101 xwd1192.168.0.102 xwd2192.168.0.103 xwd3192.168.0.104 xwd4192.168.0.105 xwd5

设置免密登录

操作机器:xwd1

创建密钥

1
ssh-keygen

设置免密登录

1
ssh-copy-id xwd1ssh-copy-id xwd2ssh-copy-id xwd3ssh-copy-id xwd4ssh-copy-id xwd5

同步主机映射文件

操作机器:xwd1

1
scp /etc/hosts root@xwd2:/etc/hostsscp /etc/hosts root@xwd3:/etc/hostsscp /etc/hosts root@xwd4:/etc/hostsscp /etc/hosts root@xwd5:/etc/hosts

创建本地系统源

如果在一个可以连接外网的环境中,则可以跳过这一步。

分别在五台机器上备份系统自带系统源:

1
mkdir /opt/reposmv /etc/yum.repos.d/* /opt/repos/

操作机器:xwd2

经过查找发现,xwd2主机的/run/media/root/CentOS 7 x86_64目录挂载了系统源,但是重启之后,这个挂载目录就会消失,为了方便,决定在xwd2机器上提供http的局域网本地系统源服务。

创建本地系统源文件:

1
cd /etc/yum.repos.d/touch CentOS-Local.repo

编辑CentOS-Local.repo,写入如下内容:

1
[Local]name=CentOS=$releasever - Localbaseurl=file:///run/media/root/CentOS\ 7\ x86_64/gpgcheck=1enabled=1gpgkey=file:///run/media/root/CentOS\ 7\ x86_64/RPM-GPG-KEY-CentOS-7

安装http服务

1
yum -y install httpdsystemctl start httpdsystemctl enable httpd

拷贝源文件

1
mkdir /var/www/html/centos7cd /run/media/root/CentOS\ 7\ x86_64/cp -r Packages RPM-GPG-KEY-CentOS-7 /var/www/html/centos7/

生成源信息

1
cd /var/www/html/centos7createrepo ./

操作机器:xwd1

编辑CentOS-Local.repo,写入如下内容:

1
[Local]name=CentOS=$releasever - Localbaseurl=http://xwd2/centos7/gpgcheck=1enabled=1gpgkey=http://xwd2/centos7/RPM-GPG-KEY-CentOS-7

同步本地系统源文件

1
scp /etc/yum.repos.d/CentOS-Local.repo root@xwd2:/etc/yum.repos.d/scp /etc/yum.repos.d/CentOS-Local.repo root@xwd3:/etc/yum.repos.d/scp /etc/yum.repos.d/CentOS-Local.repo root@xwd4:/etc/yum.repos.d/scp /etc/yum.repos.d/CentOS-Local.repo root@xwd5:/etc/yum.repos.d/

环境配置

关闭防火墙

操作机器:所有

1
systemctl stop firewalldsystemctl disable firewalld

设置selinux配置

操作机器:所有

vim /etc/selinux/config

将SELINUX的参数值修改为disabled

设置redhat_transparent_hugepage

操作机器:所有

1
echo never > /sys/kernel/mm/transparent_hugepage/enabled

配置jdk

jdk使用1.8,当前环境使用的是jdk-8u162-linux-x64

操作机器:所有

  1. 创建/opt/software目录

  2. 将jdk的tar包上传到/opt/software目录下

  3. 解压tar zxvf jdk-*.tar.gz,然后删除tar包

  4. 建立软链

    1
    ln -s /opt/software/jdk* /opt/software/jdk

建立软链的目的是方便更换jdk,使用的时候使用jdk这个目录,而不使用真实的jdk目录。

时间同步

时间同步对HBase服务影响最大。

操作机器:所有

安装ntp服务

1
yum -y install ntp

局域网时间同步设计:

服务器 角色
xwd1 作为时间服务器,其他服务器以此服务器为标准同步时间
xwd2 使用ntpdate xwd1命令同步时间
xwd3 使用ntpdate xwd1命令同步时间
xwd4 使用ntpdate xwd1命令同步时间
xwd5 使用ntpdate xwd1命令同步时间

操作机器:xwd1

编辑 /etc/ntp.conf 文件如下部分:

1
# Use public servers from the pool.ntp.org project.# Please consider joining the pool (http://www.pool.ntp.org/join.html).#server 0.rhel.pool.ntp.org iburst#server 1.rhel.pool.ntp.org iburst#server 2.rhel.pool.ntp.org iburst#server 3.rhel.pool.ntp.org iburstserver 127.127.1.0fudge 127.127.1.0 stratum 10

如上,注释原有配置:

1
#server 0.rhel.pool.ntp.org iburst#server 1.rhel.pool.ntp.org iburst#server 2.rhel.pool.ntp.org iburst#server 3.rhel.pool.ntp.org iburst

添加新配置,让本机的ntpd和本地硬件时间同步:

1
server 127.127.1.0fudge 127.127.1.0 stratum 10

启动ntp服务:

1
systemctl start ntpdsystemctl enable ntpd

操作机器:xwd2,xwd3,xwd4,xwd5

关闭ntp服务:

1
systemctl stop ntpdsystemctl disable ntpd

同步时钟:

1
ntpdate xwd1

定时同步,编辑 /etc/crontab 文件,追加内容:

1
*/5 * * * * root  /usr/sbin/ntpdate xwd1

这里表示每5分钟同步一次。

然后重启crond服务:

1
systemctl restart crond

部署Ambari

操作机器:xwd1

安装http服务

1
yum -y install httpdsystemctl start httpdsystemctl enable httpd

上传之前下载的三个安装源的tar包到/var/www/html/xwd目录下

解压后,分别进入目录执行:

1
createrepo ./

创建并编辑/etc/yum.repo.d/ambari.repo文件,添加如下内容:

1
[xwd]name=ambaribaseurl=http://xwd1/xwd/ambarienabled=1gpgcheck=0

安装ambari

1
yum clean allyum install ambari-server

初始化ambari,jdk选择本地目录/opt/software/jdk

1
ambari-server setup

启动ambari

1
ambari-server start

部署Hadoop和ZooKeeper

这里需要确认安装源中是否有 snappy-devel 这个包,Hadoop安装时会依赖这个包,而这个包不在系统默认的安装源中。也可以手动安装,使用rpm -ivh 包名。如果在一个可以连接外网的环境中,则不必担心这个问题。

浏览器访问 http://192.168.0.101:8080。

登录账号密码:admin/admin

启动安装向导

集群名:xwd

版本:HDP2.6

操作系统:redhat7

Base URL:

配置
HDP http://xwd1/xwd/HDP
HDP-UTILS http://xwd1/xwd/HDP-UTILS

目标主机:

1
xwd1xwd2xwd3xwd4xwd5

私钥:使用xwd1主机的/root/.ssh/id_rsa文件内容。

选择服务:HDFS,ZooKeeper

安装HDFS和ZooKeeper

分配Masters:默认

分配Slaves和Clients:DataNode和Client全选

定制服务:

假定数据盘挂在到/data目录。

Ambari配置 对应的服务配置
NameNode directories dfs.namenode.name.dir /data/hadoop/hdfs/namenode
DataNode directories dfs.datanode.data.dir /data/hadoop/hdfs/data

安装YARN+MapReduce2

添加服务

选择YARN+MapReduce2

分配Master:默认

分配Slaves和Clients:NodeManager全选

定制服务:

Ambari配置 对应的服务配置
yarn.nodemanager.local-dirs yarn.nodemanager.local-dirs /data/hadoop/yarn/local
yarn.nodemanager.log-dirs yarn.nodemanager.log-dirs /data/hadoop/yarn/log

开启NameNode HA

在HDFS服务中,点击操作服务

选择开启 NameNode HA

Nameservice ID:xwdha

按照提示操作

开启ResourceManager HA

在YARN服务中,点击操作服务

选择开启 ResourceManager HA

按照提示操作