准备实验环境

  • CentOS-7-x86_64-Everything-1708.iso
  • jdk-8u144-linux-x64.tar.gz
  • ambari-2.6.0.0-centos7.tar.gz
  • HDP-2.6.3.0-centos7-rpm.tar.gz
  • HDP-UTILS-1.1.0.21-centos7.tar.gz

(一)安装CentOS操作系统

  • 总共需要三台CentOS,每台机器分配4G内存
  • 注意把下面的两个选项选上
  1. Development Tools
  2. MariaDB Server(就是MySQL数据库):只需要在第一台机器上安装

(二)配置CentOS

  • 关闭防火墙

systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service

  • 配置主机名:编辑/etc/hosts文件

192.168.163.21 hdp21
192.168.163.22 hdp22
192.168.163.23 hdp23

  • 配置免密码登录

ssh-keygen -t rsa
ssh-copy-id -i .ssh/id_rsa.pub root@hdp21

  • 安装JDK(使用tar.gz安装到/root/training的目录下)

(三)安装配置Apache HTTP服务器和NTP服务

  • 挂载光盘:mount /dev/cdrom /mnt
  • 删除原来的所有repo文件  rm -rf  /etc/yum.repos.d/*.repo
  • 创建yum的源文件: vi /etc/yum.repos.d/my.repo

[centos-yum]
baseurl=file:///mnt
enabled=1
gpgcheck=0

注意:每台机器都需要挂载光盘

 

  1. 开启NTP服务 (所有节点都需要操作)

yum install ntp
systemctl is-enabled ntpd
systemctl enable ntpd
systemctl start ntpd

    2.安装Apache Http服务(只需要在hdp21上安装

yum install httpd

   3.启动Apache Http服务

systemctl start httpd.service
systemctl enable httpd.service

  4.验证Http服务,使用浏览器访问如下网页:

(四)配置MariaDB数据库

 

  • 启动MariaDB

    systemctl start mariadb
    systemctl enable mariadb (开机自启动)

  • 配置MariaDB

    mysql_secure_installation
    #首先是设置密码,会提示先输入密码
    Enter current password for root (enter for none):<–初次运行直接回车
    #设置密码
    Set root password? [Y/n] <–是否设置root用户密码,输入y并回车或直接回车
    New password: <– 设置root用户的密码
    Re-enter new password: <– 再输入一次你设置的密码
    #其他配置
    Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车
    Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车,
    Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车
    Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车
    #初始化MariaDB完成,接下来测试登录,输入密码能正常登陆就完成了

  • 初始化MariaDB

    登录数据库:mysql -uroot -pWelcome_1  

(1)安装完成后创建ambari数据库及用户:

  create database ambari;  
  CREATE USER 'ambari'@'%'IDENTIFIED BY 'Welcome_1';
  GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';
  FLUSH PRIVILEGES;

如果要安装Hive,再创建Hive数据库和用户 再执行下面的语句:

  create database hive;  
  CREATE USER 'hive'@'%'IDENTIFIED BY 'Welcome_1';
  GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';
  FLUSH PRIVILEGES;

如果要安装Oozie,再创建Oozie数据库和用户 再执行下面的语句:

  create database oozie;  
  CREATE USER 'oozie'@'%'IDENTIFIED BY 'Welcome_1';
  GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'%';
  FLUSH PRIVILEGES;

  • 安装mysql jdbc 驱动

    yum install mysql-connector-java
    安装路径:/usr/share/java/mysql-connector-java.jar

(五)配置Ambari本地源(在hdp21上)

  • 一定注意:解压后,需要删除目录下所有的html文件。
  • 在httpd网站根目录,默认是即/var/www/html/,创建目录ambari

mkdir /var/www/html/ambari

  • 将ambari-2.6.0.0-centos7.tar.gz和HDP-2.6.3.0-centos7-rpm.tar.gz解压到该目录

tar -zxvf ambari-2.6.0.0-centos7.tar.gz -C /var/www/html/ambari
tar -zxvf HDP-2.6.3.0-centos7-rpm.tar.gz -C /var/www/html/ambari

  • 将HDP-UTILS-1.1.0.21-centos7.tar.gz解压到/var/www/html/ambari/HDP-UTILS/

mkdir /var/www/html/ambari/HDP-UTILS/
tar -zxvf HDP-UTILS-1.1.0.21-centos7.tar.gz -C /var/www/html/ambari/HDP-UTILS/

 

  • 配置ambari、HDP、HDP-UTILS的本地源(路径 : /var/www/html/ambari/HDP/centos7/2.6.3.0-235/)
  1. 修改ambari.repo文件

#VERSION_NUMBER=2.6.0.0-267
[ambari-2.6.0.0]
name=ambari Version - ambari-2.6.0.0
baseurl=http://192.168.163.21/ambari/ambari/centos7/2.6.0.0-267
gpgcheck=1
gpgkey=http://192.168.163.21/ambari/ambari/centos7/2.6.0.0-267/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

    2. 修改hdp.repo文件

#VERSION_NUMBER=2.6.3.0-235
[HDP-2.6.3.0]
name=HDP Version - HDP-2.6.3.0
baseurl=http://192.168.163.21/ambari/HDP/centos7/2.6.3.0-235
gpgcheck=1
gpgkey=http://192.168.163.21/ambari/HDP/centos7/2.6.3.0-235/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.163.21/ambari/HDP-UTILS
gpgcheck=1
gpgkey=http://192.168.163.21/ambari/HDP-UTILS/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

    3.将ambari.repo和hdp.repo拷贝到/etc/yum.repos.d/目录下

(六)安装Ambari

  1. 安装Ambari Server:yum install ambari-server(前提是必须挂载光盘 mount)
  2. 配置Ambari Server:ambari-server setup

  • 将Ambari数据库脚本导入到数据库

mysql -uambari -pWelcome_1
use ambari
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql

 

  • 启动Ambari Server

ambari-server start

出现登录界面,默认管理员账户登录, 账户:admin 密码:admin

 

(七)安装配置HDP 2.6.3集群

(安装的所有服务的路径--->/usr/hdp/2.6.3.0-235)

  1. 点击上面登录成功页面的Launch Install Wizard 按钮进行集群配置
  2. 设置集群名称

  

     3.设置HDP安装源

     4.主机信息确认

 

 

    5.选择要安装部署的服务

   6.各个服务Master节点配置 

 

    7.从节点的配置 

     8.服务的定制化配置

namenode

/root/training/bigdata/namenode

datanode

/root/training/bigdata/datanode

yarn.nodemanager.local-dirs

/root/training/bigdata/nodemanager/local

yarn.nodemanager.log-dirs

/root/training/bigdata/nodemanager/log

所有密码

password


   

 

 

 

 

   9.显示配置信息

   10.开始部署集群

   11.全部安装成功界面如下

   12.执行jps命令查看后台进程

   13.安装完成

   14.集群管理首页

  15. 执行WordCount程序

  1. 切换到hdfs用户
  2. 创建目录:hdfs dfs -mkdir /input
  3. 上传数据文件:hdfs dfs -put data.txt /input
  4. Example jar的位置:

 /usr/hdp/2.6.3.0-235/hadoop-mapreduce/hadoop-mapreduce-examples.jar

  1. 执行WordCount 

hadoop jar hadoop-mapreduce-examples.jar wordcount /input /output/wc

(八)节点的扩展(以HDFS为例)

① 从节点的准备工作

  • 安装一台新的Linux
  • 关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service

  • 配置主机名:编辑/etc/hosts文件(主节点也需要加入从节点的信息
  • 配置免密码登录(各个节点之间,都需要配置
  • 安装JDK
  • 挂载光盘:mount /dev/cdrom /mnt
  • 删除原来的所有repo文件
  • 创建yum的源文件: vi /etc/yum.repos.d/my.repo

[centos-yum]
baseurl=file:///mnt
enabled=1
gpgcheck=0

  • 开启NTP服务   (所有节点都需要操作)

yum install ntp
systemctl is-enabled ntpd
systemctl enable ntpd
systemctl start ntpd

  • 在新节点上创建目录:mkdir -p /var/lib/ambari-agent/data

   ②添加一个新的节点,如下图所示:

 

  • 配置新节点的主机信息和私钥文件

  • 确认主机信息

  • 部署一个新的DataNode到新的节点

  • 确认部署信息,并部署

  • 部署成功,并在从节点上执行jps命令检查新的DataNode

 

 

 

 

 

 

(九)启用HA(以NameNode为例)

注意:至少需要三个ZooKeeper节点,否则会出现以下错误:

  • 按照上一节的步骤,在集群中再添加一个新的节点,并部署DataNode。
  • 将ZooKeeper服务部署到三个节点上,并启动。

选择:“Service Actions” ---> “Add ZooKeeper Server”

  • 重启所有的ZooKeeper服务

注意:如果遇到有的节点无法启动,在Console上重启所有的服务。正常情况下,应该是所有服务都能正常启动。

 

  • 为HDFS NameNode添加HA的服务

  • 输入一个NameService

  • 配置NameNode HA

  • 检查配置信息

  • 需要手动配置的内容,执行下面的命令:

  1. Login to the NameNode host hdp71.
  2. Put the NameNode in Safe Mode (read-only mode):
    1. sudo su hdfs -l -c 'hdfs dfsadmin -safemode enter'
  3. Once in Safe Mode, create a Checkpoint:
    1. sudo su hdfs -l -c 'hdfs dfsadmin -saveNamespace'
  4. You will be able to proceed once Ambari detects that the NameNode is in Safe Mode and the Checkpoint has been created successfully.

 

  • 开始进行HA的配置:

  • 需要手动配置的内容,执行下面的命令:

sudo su hdfs -l -c 'hdfs namenode -initializeSharedEdits'

  • 启动HA

  • 需要手动配置的内容,执行下面的命令:

  • 进行最后的安装配置

  • 验证HA:(自己完成)如果一个NameNode宕机,验证是否会进行自动的切换。

 

(十)删除节点和服务

(1)停止要删除节点(hdp23)上的所有服务

(2)删除该节点(hdp23)

(3)删除HDFS、Yarn、MapReduce2服务

(4)删除节点hdp22,只保留hdp21

(5) 停止所有服务,并将hdp21的内存改为8g

注意:由于需要重启虚拟机,一定要重新挂载光盘

(6) 重新部署HDFS、Yarn、MapReduce2服务。注意清空下面的目录:

 

namenode

/root/training/bigdata/namenode

datanode

/root/training/bigdata/datanode

yarn.nodemanager.local-dirs

/root/training/bigdata/nodemanager/local

yarn.nodemanager.log-dirs

/root/training/bigdata/nodemanager/log

所有密码

password

 

 

 

 

 

(十一)安装部署其他服务(内存8g)

注意:一定保证httpd service和yum的源可用。

(1)部署Hive和Pig

注意:

  • Hive的执行引擎需要选择:MapReduce,如下图

  • MetaStore选择:MySQL

ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar

(2)部署Flume和Sqoop:很简单。

(3)部署Spark:很简单。

(4)部署Kafka:很简单。

(5)部署Storm:很简单。

(6)部署Mahout:很简单。