零基础配置Hadoop集群——Ambari安装及配置详解

1. 准备工做

1.1. 系统环境

主机列表:html

IP地址 HostName 描述
192.168.610.153 ambari.server Ambari服务器
192.168.10.152  hadoop.namenode Hadoop NameNode服务器
192.168.10.151 hadoop.datanodeone Hadoop DataNode服务器
192.168.10.147  hadoop.datanodetwo Hadoop DataNode服务器

操做系统:java

  CentOS 7 Minimal版node

登陆用户python

  rootlinux

环境说明:数据库

  本文中所用的安装方式为yum在线安装,全部机器需能够访问外网。json

  CentOS纯净版初始状态网卡为禁用状态,系统安装完成后须要执行以下操做:centos

  1)进入/etc/sysconfig/network-scripts/目录,找到ifcfg-e……名称的文件,如ifcfg-ens33浏览器

  2)vi编辑改文件将ONBOOT设为yes,并增长NM_CONTROLLED,DNS项,具体代码以下:服务器

vi /etc/sysconfig/network-scripts/ifcfg-ens33

ONBOOT=yes
NM_CONTROLLED=no
DNS1=8.8.8.8    
DNS2=4.2.2.2  

  3)保存退出后,从新启动网络链接

service network restart

  4)  ip addr命令查看本机IP地址,或使用ping www.baidu.com命令查看是否能够访问外网。

  5)配置完成后,可以使用SSH工具从其余电脑登陆此虚拟机操做,推荐使用XShell

1.2. 修改机器名,配置Hosts文件

   为每一个主机修改Hostname,其名称参考1.1中的表格,如ambari.server

hostnamectl set-hostname ambari.server

  编辑每台机器的/etc/hosts文件,在原有文件末尾加入如下信息

192.168.10.153    ambari.server
192.168.10.152    hadoop.namenode
192.168.10.151    hadoop.datanodeone
192.168.10.147    hadoop.datanodetwo

  修改完成后使用reboot命令重启每台机器

1.3. 开启ntp服务

  为每台设备安装、开启npt服务,并设置为开机启动

  1)安装ntp

yum install -y ntp

  2)设置ntp开机启动

systemctl enable ntpd

  3)启动ntp服务

systemctl start ntpd

  4)全部机器设置时间同步

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ntpdate us.pool.ntp.org

1.4. 关闭Selinux及防火墙

  为每台机器执行以下操做:

  1)vi /etc/sysconfig/selinux并添加以下代码

# vi /etc/sysconfig/selinux
selinux
=disalbed

  2) 关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

1.5. 配置SSH免密登陆

  1) 在ambari.server执行以下操做生成密钥

ssh-keygen -t rsa

  全部选项均按回车键,直到生成密钥。

  密钥文件存放于~/.ssh目录下

    私钥:id_rsa
    公钥:id_rsa.pub
  2) 在除ambari.server之外的其余机器上建立~/.ssh目录
mkdir ~/.ssh

  3) 在ambari.server上执行以下命令,发送密钥至其余服务器

scp ~/.ssh/id_rsa.pub hadoop.namenode:/root/.ssh/authorized_keys_from_ambari
scp ~/.ssh/id_rsa.pub hadoop.datanodeone:/root/.ssh/authorized_keys_from_ambari
scp ~/.ssh/id_rsa.pub hadoop.datanodetwo:/root/.ssh/authorized_keys_from_ambari

  4) 在除ambari.server之外的其余机器上执行以下命令,合并公钥:

cd ~/.ssh
cat authorized_keys_from_ambari >> authorized_keys

  5) 在全部机器上执行以下命令

chmod 700 ~/.ssh
chmod 600 ~/.ssh/*

1.6 安装JDK

  当前Ambari推荐使用openjdk1.8.0,须要在每台机器上执行相同操做,命令以下:

  1)安装JDK

yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel

  2)进入安装目录/usr/lib/jvm/找到java-1.8.0-openjdk-1.8.0.……的文件夹并将$JAVA_HOME这是为该目录,如java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64

JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64/

  3) 使用java -vsersion命令,验证JDK是否安装配置成功

1.7 设置UTF8字符集

在每一个机器执行以下指令:

cat << EOF > /etc/locale.conf
LANG="en_US.UTF-8"
SUPPORTED="zh_CN.UTF-8:zh_CN:zh:zh_CN.gb18030:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"
EOF

2. 配置Ambari本地下载站

  下列操做只在ambari.server机器上执行

2.1. 下载本地库文件

2.1.1. 下载准备

  纯净的CentOS中未安装wget,须要安装wget包

yum install -y wget

  本文中对应的Ambari版本为2.7.3,若须要其余版本,请在https://docs.hortonworks.com/中查找

 

 

 

 

 

2.1.2.下载本地库

  该操做耗时较长,能够选择在服务器上执行

  执行以下代码,下载本地库:

wget http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.3.0/ambari-2.7.3.0-centos7.tar.gz
wget http://public-repo-1.hortonworks.com/HDP/centos7/3.x/updates/3.0.1.0/HDP-3.0.1.0-centos7-rpm.tar.gz
wget http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.22/repos/centos7/HDP-UTILS-1.1.0.22-centos7.tar.gz
wget http://public-repo-1.hortonworks.com/HDP-GPL/centos7/3.x/updates/3.1.0.0/HDP-GPL-3.1.0.0-centos7-gpl.tar.gz

2.2. 配置本地下载站

  1)安装httpd服务

yum install -y httpd

  2)建立站点目录,将本地库压缩包解压至对应目录

mkdir /var/www/html/ambari
mkdir /var/www/html/ambari/HDP-UTILS
mkdir /var/www/html/ambari/HDP-GPL

tar -xvf ambari-2.7.3.0-centos7.tar.gz -C /var/www/html/ambari/
tar -xvf HDP-3.0.1.0-centos7-rpm.tar.gz -C /var/www/html/ambari/
tar -xvf HDP-UTILS-1.1.0.22-centos7.tar.gz -C /var/www/html/ambari/HDP-UTILS
tar -xvf HDP-GPL-3.1.0.0-centos7-gpl.tar.gz -C /var/www/html/ambari/HDP-GPL

  3)启动httpd服务

systemctl start httpd

  4)打开浏览器,访问本地下载站http://192.168.10.153/ambari/,若出现如下界面则配置成功

2.3. 配置YUM源

  1)在ambari.server上执行:
yum install -y yum-plugin-priorities
  2)修改Yum安装源的校验
vi /etc/yum/pluginconf.d/priorities.conf

  设置为如下内容

[main]
enabled=1
gpgcheck=0

  3)配置repo文件

  该步骤中baseurl和gpgkey地址须要和上一步对应

cat << EOF > /etc/yum.repos.d/ambari.repo
#VERSION_NUMBER=2.7.3.0-139
[ambari-2.7.3.0]
name=ambari Version - ambari-2.7.3.0
baseurl=http://192.168.10.153/ambari/ambari/centos7/2.7.3.0-139/
gpgcheck=1
gpgkey=http://192.168.10.153/ambari/ambari/centos7/2.7.3.0-139/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
EOF

cat << EOF > /etc/yum.repos.d/hdp.repo
#VERSION_NUMBER=3.0.1.0-187
[HDP-3.0.1.0-187]
name=HDP Version - HDP-3.0.1.0-187
baseurl=http://192.168.10.153/ambari/HDP/centos7/3.0.1.0-187/
gpgcheck=1
gpgkey=http://192.168.10.153/ambari/HDP/centos7/3.0.1.0-187/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

[HDP-UTILS-1.1.0.21]
name=HDP-UTILS Version - HDP-UTILS-1.1.0.21
baseurl=http://192.168.10.153/ambari/HDP-UTILS/HDP-UTILS/centos7/1.1.0.22/
gpgcheck=1
gpgkey=http://192.168.10.153/ambari/HDP-UTILS/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
EOF

  4)更新本地资源池

yum clean list
yum update list
yum makecache

  更新完成后查看资源池

yum repolist

  显示以下内容则配置成功

已加载插件:fastestmirror, priorities
Loading mirror speeds from cached hostfile
 * base: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.163.com
 * updates: mirrors.163.com
4 packages excluded due to repository priority protections
源标识                                                           源名称                                                                                状态
HDP-3.0.1.0-187                                                  HDP Version - HDP-3.0.1.0-187                                                              197
HDP-UTILS-1.1.0.21                                               HDP-UTILS Version - HDP-UTILS-1.1.0.21                                                      16
ambari-2.7.3.0                                                   ambari Version - ambari-2.7.3.0                                                             13
base/7/x86_64                                                    CentOS-7 - Base                                                                       10,015+4
extras/7/x86_64                                                  CentOS-7 - Extras                                                                          419
updates/7/x86_64                                                 CentOS-7 - Updates                                                                       2,137
repolist: 12,797

 

 3. 安装启动Ambari

   该项中的全部操做均在ambari.server上执行

3.1. 安装Ambari-Server

  本次安装采用YUM远程安装,数据库采用默认数据库。安装命令以下。

yum install -y ambari-server

3.2. 配置Ambari-Server

  配置命令以下:

ambari-server setup

  配置命令中须要的各个选项以下,注意其中jdk选择自定义,$JAVA_HOME变量与上文1.6中保持一致:

 

Using python  /usr/bin/python
Setup ambari-server
Checking SELinux...
SELinux status is 'enabled'
SELinux mode is 'permissive'
WARNING: SELinux is set to 'permissive' mode and temporarily disabled.
OK to continue [y/n] (y)? 
Customize user account for ambari-server daemon [y/n] (n)? 
Adjusting ambari-server permissions and ownership...
Checking firewall status...
Checking JDK...
[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8
[2] Custom JDK
==============================================================================
Enter choice (1): 2
WARNING: JDK must be installed on all hosts and JAVA_HOME must be valid on all hosts.
WARNING: JCE Policy files are required for configuring Kerberos security. If you plan to use Kerberos,please make sure JCE Unlimited Strength Jurisdiction Policy Files are valid on all hosts.
Path to JAVA_HOME: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64/
Validating JDK on Ambari Server...done.
Check JDK version for Ambari Server...
JDK version found: 8
Minimum JDK version is 8 for Ambari. Skipping to setup different JDK for Ambari Server.
Checking GPL software agreement...
GPL License for LZO: https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html
Enable Ambari Server to download and install GPL Licensed LZO packages [y/n] (n)? 
Completing setup...
Configuring database...
Enter advanced database configuration [y/n] (n)? 
Configuring database...
Default properties detected. Using built-in database.
Configuring ambari database...
Checking PostgreSQL...
Running initdb: This may take up to a minute.
Initializing database ... OK


About to start PostgreSQL
Configuring local database...
Configuring PostgreSQL...
Restarting PostgreSQL
Creating schema and user...
done.
Creating tables...
done.
Extracting system views...
ambari-admin-2.7.3.0.139.jar
....
Ambari repo file doesn't contain latest json url, skipping repoinfos modification
Adjusting ambari-server permissions and ownership...
Ambari Server 'setup' completed successfully.

3.3 启动Ambari-Server

ambari-server start

  启动成功后在浏览器中输入地址:

  http://192.168.141.159:8080/#/login

  若出现以下界面则配置成功

  默认登陆名密码均为admin