RedHat7局域网下安装离线Ambari

时间:2023-03-09 14:48:40
RedHat7局域网下安装离线Ambari

1 Ambari介绍、安装与应用案例介绍

1.1 Ambari

Ambari 跟 Hadoop 等开源软件一样,也是 Apache Software Foundation 中的一个项目,并且是*项目。目前最新的发布版本是 2.6.0。就 Ambari 的作用来说,就是创建、管理、监视 Hadoop 的集群,但是这里的 Hadoop 是广义,指的是 Hadoop 整个生态圈(例如 Hive,Hbase,Sqoop,Zookeeper 等), 而并不仅是特指 Hadoop。用一句话来说,Ambari 就是为了让 Hadoop 以及相关的大数据软件更容易使用的一个工具。

Ambari 现在所支持的平台组件也越来越多,例如流行的 Spark,Storm 等计算框架,以及资源调度平台 YARN 等,我们都能轻松地通过 Ambari 来进行部署。

Ambari 自身也是一个分布式架构的软件,主要由两部分组成:Ambari Server 和 Ambari Agent。简单来说,用户通过 Ambari Server 通知 Ambari Agent 安装对应的软件;Agent 会定时地发送各个机器每个软件模块的状态给 Ambari Server,最终这些状态信息会呈现在 Ambari 的 GUI,方便用户了解到集群的各种状态,并进行相应的维护。

1.2 HDP

HDP是hortonworks的软件栈,里面包含了hadoop生态系统的所有软件项目,比如HBase,Zookeeper,Hive,Pig等等。

1.3 HDP-UTILS

HDP-UTILS是工具类库。

2 搭建环境

虚拟机操作系统: RedHat7 64位

JDK:jdk-8u112-linux-x64

Ambari:2.1.0

HDP:2.3.0

HDP-UTILS:1.1.0.20

2.1 服务器安装准备工作

2.1.1下载RedHat7 ISO文件

rhel-server-7.3-x86_64-dvd.iso 百度云盘下载地址:链接:https://pan.baidu.com/s/1cdMQn0 密码:ou1l

2.1.2下载以下三种仓库软件包(tar.gz文件)

HDP Repository

http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.3.0.0/HDP-2.3.0.0-centos7-rpm.tar.gz

附百度云盘下载链接:链接:https://pan.baidu.com/s/1o8Of97W 密码:so8o

HDP-Utils Repository

http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos7/HDP-UTILS-1.1.0.20-centos7.tar.gz

附百度云盘下载链接:链接:https://pan.baidu.com/s/1jH5GBvK 密码:m264

Ambari Repository

http://public-repo-1.hortonworks.com/ambari/centos7/ambari-2.1.0-centos7.tar.gz

附百度云盘下载链接:链接:https://pan.baidu.com/s/1eRNzH3G 密码:9krz

注意:
①由于centos和redhat的版本是一一对应的,所以Redhat6.5对应centos6,Redhat7.3对应centos7
②路径的版本号可以根据自己需要进行调整,比如ambari-2.1.0-centos7 可以
换成 ambari-2.6.0-centos7

2.1.3下载MySQL文件

Mysql rpm安装包:

https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.20-1.el6.x86_64.rpm-bundle.tar

附百度云盘下载链接:链接:https://pan.baidu.com/s/1hsndQJi 密码:cjez

解压查看:

RedHat7局域网下安装离线Ambari

Mysql驱动包:

https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.45.zip

附百度云盘下载链接:链接:https://pan.baidu.com/s/1o8CAhi6 密码:i9lf

解压查看:

RedHat7局域网下安装离线Ambari

2.1.4下载jdk-8u112-linux-x64.tar.gz

http://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html

附百度云盘下载链接:链接:https://pan.baidu.com/s/1eRUlgR4 密码:xr4b

2.2Ambari安装准备工作(所有机器)

2.2.1 安装3个机器

由于在这里我使用的rhel-server-7.3-x86_64-dvd.iso,安装的时候自带了ssh服务,所以省去装SSH服务。

RedHat7安装:必须安装英文版的,如果安装中文后面可能会出现一些不可描述的错误!

RedHat7局域网下安装离线Ambari

RedHat7局域网下安装离线Ambari

RedHat7局域网下安装离线Ambari

输出 ssh localhost 是否已安装ssh服务,例如Ubuntu就需要安装openssh服务。

RedHat7局域网下安装离线Ambari

安装3个机器,机器名称分别叫master、slave1、slave2(说明机器名不这么叫可以,待会用hostname命令修改也行)。

此处我使用的VMware虚拟机软件,直接采用克隆模式,克隆出两台新的机器。

如图:

RedHat7局域网下安装离线Ambari

这一步需要注意一下:

RedHat7局域网下安装离线Ambari

克隆完之后:

RedHat7局域网下安装离线Ambari

说明:为了免去后面一系列授权的麻烦,这里直接使用root账户登录和操作了。

使用ifconfig命令,查看这3个机器的IP。我的机器名和ip的对应关系是:

192.168.168.200  master

192.168.168.201  slave1

192.168.168.202  slave2

把3台机器的IP地址按上述对应关系进行配置即可。

2.2.2设置静态ip地址

  1. sudo gedit /etc/sysconfig/network-scripts/ifcfg-ens33

开始编辑,填写ip地址、子网掩码、网关、DNS等。

  1. 修改:
  2. BOOTPROTO="static"
  3. ONBOOT="yes"
  4. 添加:
  5. IPADDR=192.168.168.200
  6. NETMASK=255.255.255.0
  7. GATEWAY=192.168.168.1
 RedHat7局域网下安装离线Ambari

编辑完后,保存退出。

  1. #重启网络服务
  2. service network restart

2.2.3 配置主机名

为了后续操作方便,确保机器的hostname是我们想要的。拿192.168.168.200这台机器为例,用root账户登录,然后使用hostname命令查看机器名称

如图:

RedHat7局域网下安装离线Ambari

发现,这个机器名称不是我们想要的。不过这个好办, 我给它改个名称,命令是:

  1. hostname  master   #立即生效

如图:

RedHat7局域网下安装离线Ambari

类似的,将其他两个机器,分别改名为slave1和slave2。

修改主机名:

  1. sudo gedit /etc/hostname

把原来的localhost.localdomain修改为 master。

RedHat7局域网下安装离线Ambari

类似的,将其他两个机器,分别改名为slave1和slave2。

每当RedHat安装成功时,我们的机器名都是默认的,但为了以后集群中能够容易分辨各台服务器,需要给每台机器取个不同的名字。
修改网络配置文件:
  1. sudo gedit /etc/sysconfig/network   #永久生效

将HOSTNAME后面的值改为想要设置的主机名,然后重启即可。

  1. # Created by anaconda
  2. NETWORKING=yes
  3. NETWORKING_IPV6=yes
  4. HOSTNAME=master
  5. GATEWAY=192.168.168.1

类似的,将其他两个机器,分别改名为slave1和slave2。

配置所有节点:

修改/etc/hosts文件

修改这3台机器的/etc/hosts文件,在文件中添加以下内容:

  1. 192.168.168.200  master
  2. 192.168.168.201  slave1
  3. 192.168.168.202  slave2
  1. sudo gedit /etc/hosts

如图:

RedHat7局域网下安装离线Ambari

配置完成后使用ping命令检查这3个机器是否相互ping得通,以master为例,在什么执行命令:

ping  slave1

如图:

RedHat7局域网下安装离线Ambari

执行命令:

ping  slave2

如图:

RedHat7局域网下安装离线Ambari

ping得通,说明机器是互联的,而且hosts配置也正确。

2.2.4 关闭每台机器的防火墙

  1. #停止firewall
  2. systemctl stop firewalld.service
  3. #禁止firewall开机启动
  4. systemctl disable firewalld.service
  5. #查看默认防火墙状态(关闭后显示not running,开启后显示running)
  6. firewall-cmd --state

RedHat7局域网下安装离线Ambari

上图表示防火墙已关闭。

2.2.5 关闭每台机器的Selinux

禁用selinux,也就是修改/etc/selinux/config文件,修改后的内容为:

  1. sudo gedit /etc/selinux/config

修改:SELINUX=disabled

RedHat7局域网下安装离线Ambari

输入reboot重启系统

  1. [root@master ~]# sestatus
  2. SELinux status:                 disabled

2.2.6 关闭每台机器的THP服务

  1. sudo gedit /etc/rc.local

添加:

  1. if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
  2. echo never > /sys/kernel/mm/transparent_hugepage/defrag
  3. fi
  4. if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
  5. echo never > /sys/kernel/mm/transparent_hugepage/enabled
  6. fi
  7. exit 0

结果如图:

RedHat7局域网下安装离线Ambari

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

检查:有[never]则表示THP被禁用

  1. [root@master ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
  2. always madvise [never]

2.2.7 配置每台机器的无密码登陆(SSH)

给3个机器生成秘钥文件

以master为例,执行命令,生成空字符串的秘钥(后面要使用公钥),命令是:

  1. [root@master .ssh]# ssh-keygen  -t   rsa   -P  ''

如图:

RedHat7局域网下安装离线Ambari

因为我现在用的是root账户,所以秘钥文件保存到了/root/.ssh/目录内,可以使用命令查看,命令是:

  1. ls   /root/.ssh/

如图:

RedHat7局域网下安装离线Ambari

使用同样的方法为slave1和slave2生成秘钥(命令完全相同,不用做如何修改):

  1. [root@slave1 ~]# ssh-keygen  -t   rsa   -P  ''
  1. [root@slave2 ~]# ssh-keygen  -t   rsa   -P  ''

登录master机器,输入命令:

  1. [root@master ~]# cd /root/.ssh
  2. [root@master .ssh]# cp id_rsa.pub authorized_keys

将id_rsa.pub公钥拷贝重命名为authorized_keys文件。

登录slave1和slave2机器,将其他主机的公钥文件内容都拷贝到master主机上的authorized_keys文件中,命令如下:

  1. #登录slave1,将公钥拷贝到master的authorized_keys中
  2. [root@slave1 ~]# ssh-copy-id -i master

RedHat7局域网下安装离线Ambari

  1. #登录slave2,将公钥拷贝到master的authorized_keys中
  2. [root@slave2 ~]# ssh-copy-id -i master

RedHat7局域网下安装离线Ambari

授权authorized_keys文件

登录master,在.ssh目录下输入命令:

  1. [root@master .ssh]# cd /root/.ssh
  2. [root@master .ssh]# chmod 600 authorized_keys

将authorized_keys文件复制到其他机器

  1. [root@master .ssh]# scp /root/.ssh/authorized_keys root@slave1:/root/.ssh/authorized_keys
  2. [root@master .ssh]# scp /root/.ssh/authorized_keys root@slave2:/root/.ssh/authorized_keys

RedHat7局域网下安装离线Ambari

注意第一次ssh登录时需要输入密码,再次访问时即可免密码登录。

测试连接成功的情况:
在每台机器上机器上运行:

  1. [root@master ~]# ssh master date
  2. 2017年 12月 10日 星期日 20:58:31 CST
  3. [root@master ~]# ssh slave1 date
  4. 2017年 12月 10日 星期日 20:58:31 CST
  5. [root@master ~]# ssh slave2 date
  6. 2017年 12月 10日 星期日 20:58:43 CST

至此,免密码登录已经设定完成!

2.3 搭建Yum源服务器

2.3.1 安装yum源

选择master服务器作为http服务器:

  1. [root@master ~]# mkdir -p /var/www/html

使用安装系统的ISO镜像文件rhel-server-7.3-x86_64-dvd.iso

把rhel-server-7.3-x86_64-dvd.iso镜像复制到http服务器(选择master机器)的默认目录/var/www/html下

  1. [root@master ~]# cd /var/www/html
  2. [root@master html]# ls
  3. rhel-server-7.3-x86_64-dvd.iso

在/var/www/html目录下创建文件夹RedHat

  1. [root@master html]# mkdir RedHat
  1. [root@master html]# ls
  2. RedHat  rhel-server-7.3-x86_64-dvd.iso

将ISO文件挂载至文件夹/var/www/html/RedHat下

  1. [root@master html]# mount -o loop rhel-server-7.3-x86_64-dvd.iso RedHat/

(取消挂载 umount /var/www/html/RedHat)

查看文件夹/var/www/html/RedHat

  1. [root@master html]# ls /var/www/html/RedHat/

RedHat7局域网下安装离线Ambari

挂载完成后,进入/etc/yum.repos.d目录,创建rhel-media.repo:

  1. [root@master html]# cd /etc/yum.repos.d/
  2. [root@master yum.repos.d]# touch rhel-media.repo
  3. [root@master yum.repos.d]# ls
  4. rhel-media.repo

修改rhel-media.repo,删去原有内容并写入如下内容:

  1. [root@master yum.repos.d]# sudo gedit /etc/yum.repos.d/rhel-media.repo
  1. [RedHat7-media]
  2. name=RedHat7
  3. enabled=1
  4. baseurl=file:///var/www/html/RedHat
  5. gpgcheck=1
  6. gpgkey=file:///var/www/html/RedHat/RPM-GPG-KEY-redhat-release
  1. [root@master yum.repos.d]# cat rhel-media.repo

RedHat7局域网下安装离线Ambari

运行如下命令:

  1. #清除yum的缓存、头文件、已下载的软件包等等
  2. yum clean all

RedHat7局域网下安装离线Ambari

  1. #重建yum缓存
  2. yum makecache​

RedHat7局域网下安装离线Ambari

  1. #查看已启用的镜像源
  2. yum repolist all​

RedHat7局域网下安装离线Ambari

ISO镜像yum源搭建OK!!!

2.3.2 安装http服务器

本文在集群机器中任选一台机器作为源服务器,以master机器为例

检查系统是否已经安装http服务

  1. [root@master ~]# which httpd
  2. /usr/sbin/httpd

若没有出现上述/usr/sbin/httpd目录信息,则说明没有安装;如果有,则跳过该步骤!

  1. #如果没有安装则执行
  2. yum install httpd

RedHat7局域网下安装离线Ambari

若出现目录信息,且工作目录默认在/var/www/html

http服务使用80端口,检查端口是否占用

  1. netstat -nltp | grep 80

如果有占用情况,安装完毕后需要修改http服务的端口号

  1. sudo gedit /etc/httpd/conf/httpd.conf

修改监听端口,Listen 80为其他端口

RedHat7局域网下安装离线Ambari

启动httpd服务器:

  1. [root@master ~]# systemctl start httpd.service

打开浏览器,访问http://192.168.168.200:80,能正确打开网页,服务正常启动
RedHat7局域网下安装离线Ambari

浏览器访问:http://192.168.168.200/RedHat/

RedHat7局域网下安装离线Ambari

2.3.3 制作离线源

RedHat7局域网下安装离线Ambari

将这三个Ambari及HDP相关安装包复制到http服务器(这里我们选择master机器)的/var/www/html目录下,解压Ambari及HDP相关rpm包,生成相应的目录:

  1. [root@master ~]# cd /var/www/html
  2. [root@master html]# ls

RedHat7局域网下安装离线Ambari

  1. [root@master html]# tar -xzvf ambari-2.1.0-centos7.tar.gz
  2. [root@master html]# tar -xzvf HDP-2.3.0.0-centos7-rpm.tar.gz
  3. [root@master html]# tar -xzvf HDP-UTILS-1.1.0.20-centos7.tar.gz

RedHat7局域网下安装离线Ambari

目录说明:

ambari目录:包含ambari-server,ambari-agent,ambari-log4j等rpm包

HDP目录:包含hadoop的生态圈的组件,比如hdfs,hive,hbase,mahout等

HDP-UTILS-1.1.0.20目录:包含HDP平台所包含的工具组件等,比如nagios,ganglia,puppet等

2.3.4 使用yum源

删除所有机器自带的/etc/yum.repos.d目录下的所有repo文件

  1. [root@master html]# cd /etc/yum.repos.d
  2. [root@master yum.repos.d]# rm  -rf  *
  3. [root@master yum.repos.d]# ls
  1. [root@slave1 html]# cd /etc/yum.repos.d
  2. [root@slave1 yum.repos.d]# rm  -rf  *
  3. [root@slave1 yum.repos.d]# ls
  1. [root@slave2 html]# cd /etc/yum.repos.d
  2. [root@slave2 yum.repos.d]# rm  -rf  *
  3. [root@slave2 yum.repos.d]# ls

复制ambari.repo文件到/etc/yum.repos.d(该步骤在master机器上执行)

  1. [root@master ~]# cd  /var/www/html/ambari/centos7/2.x/updates/2.1.0
  2. [root@master 2.1.0]# ls

RedHat7局域网下安装离线Ambari

  1. [root@master 2.1.0]# cp ./ambari.repo /etc/yum.repos.d/

复制hdp.repo文件到/etc/yum.repos.d(该步骤在master机器上执行)

  1. [root@master 2.1.0]# cd /var/www/html/HDP/centos7/2.x/updates/2.3.0.0
  2. [root@master 2.3.0.0]# ls​

RedHat7局域网下安装离线Ambari

  1. [root@master 2.3.0.0]# cp ./hdp.repo /etc/yum.repos.d/

配置/etc/yum.repos.d目录下的ambari.repo和hdp.repo文件(该步骤在master机器上执行)

  1. [root@master 2.3.0.0]# cd  /etc/yum.repos.d
  2. [root@master yum.repos.d]# ls
  3. ambari.repo  hdp.repo

编辑ambari.repo文件:

  1. cd  /etc/yum.repos.d
  2. [root@master yum.repos.d]# sudo gedit ambari.repo

原来的内容如下图:

RedHat7局域网下安装离线Ambari

修改配置为如下内容:

  1. #VERSION_NUMBER=2.1.0-1470
  2. [Updates-ambari-2.1.0]
  3. name=ambari-2.1.0 - Updates
  4. baseurl=http://192.168.168.200/ambari/centos7/2.x/updates/2.1.0
  5. gpgcheck=1
  6. gpgkey=http://192.168.168.200/ambari/centos7/2.x/updates/2.1.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
  7. enabled=1
  8. priority=1
  9. [base]
  10. name=RedHat
  11. baseurl=http://192.168.168.200/RedHat
  12. gpgcheck=1
  13. gpgkey=http://192.168.168.200/RedHat/RPM-GPG-KEY-redhat-release
  14. [updates]
  15. name=RedHat
  16. baseurl=http://192.168.168.200/RedHat
  17. gpgcheck=1
  18. gpgkey=http://192.168.168.200/RedHat/RPM-GPG-KEY-redhat-release
  19. [extras]
  20. name=RedHat
  21. baseurl=http://192.168.168.200/RedHat
  22. gpgcheck=1
  23. gpgkey=http://192.168.168.200/RedHat/RPM-GPG-KEY-redhat-release

编辑hdp.repo文件:

  1. [root@master yum.repos.d]# sudo gedit hdp.repo

原来的内容如下图:

RedHat7局域网下安装离线Ambari

修改配置为如下内容:

  1. #VERSION_NUMBER=2.3.0.0-2557
  2. [HDP-2.3.0.0]
  3. name=HDP Version - HDP-2.3.0.0
  4. baseurl=http://192.168.168.200/HDP/centos7/2.x/updates/2.3.0.0
  5. gpgcheck=1
  6. gpgkey=http://192.168.168.200/HDP/centos7/2.x/updates/2.3.0.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
  7. enabled=1
  8. priority=1
  9. [HDP-UTILS-1.1.0.20]
  10. name=HDP Utils Version - HDP-UTILS-1.1.0.20
  11. baseurl=http://192.168.168.200/HDP-UTILS-1.1.0.20/repos/centos7
  12. gpgcheck=1
  13. gpgkey=http://192.168.168.200/HDP/centos7/2.x/updates/2.3.0.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
  14. enabled=1
  15. priority=1

2.3.5 复制repo文件到其他机器的/etc/yum.repo.d/目录下

  1. [root@master 2.1.0]# scp /etc/yum.repos.d/*.repo root@slave1:/etc/yum.repos.d/
  2. ambari.repo                                      100%  674     0.7KB/s   00:00
  3. hdp.repo                                         100%  520     0.5KB/s   00:00
  4. [root@master 2.1.0]# scp /etc/yum.repos.d/*.repo root@slave2:/etc/yum.repos.d/
  5. ambari.repo                                      100%  674     0.7KB/s   00:00
  6. hdp.repo                                         100%  520     0.5KB/s   00:00

查看slave1机器:

  1. [root@slave1 ~]# cd /etc/yum.repos.d
  2. [root@slave1 yum.repos.d]# ls
  3. ambari.repo  hdp.repo
  4. [root@slave1 yum.repos.d]# yum clean all
  5. [root@slave1 yum.repos.d]# yum makecache

查看slave2机器:

  1. [root@slave2 ~]# cd /etc/yum.repos.d
  2. [root@slave2 yum.repos.d]# ls
  3. ambari.repo  hdp.repo
  4. [root@slave2 yum.repos.d]# yum clean all
  5. [root@slave2 yum.repos.d]# yum makecache

2.3.6 同步时间

选择局域网中的一台机器作为ntp服务器,以master机器为例

在master机器上需安装并启动ntpd

redhat版本不同ntp的版本可能也会有所变化,在安装之前需要查找ntp服务,看下是否存在:

  1. [root@master yum.repos.d]# yum search ntp

RedHat7局域网下安装离线Ambari

查找到ntp.x86_64,使用yum进行安装。安装时.x64_64可以不输入。

  1. [root@master yum.repos.d]# yum install -y ntp

-y:不提示,直接安装

RedHat7局域网下安装离线Ambari

  1. [root@master ~]# systemctl start ntpd.service
  2. [root@master ~]# systemctl enable ntpd.service
  3. Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.
  4. [root@master ~]# ntpstat
  5. unsynchronised
  6. time server re-starting
  7. polling server every 8 s

其他机器必须关闭ntpd

slave1:

  1. [root@slave1 yum.repos.d]# yum install -y ntp
  2. [root@slave1 yum.repos.d]# systemctl stop ntpd.service
  3. [root@slave1 yum.repos.d]# ntpstat
  4. Unable to talk to NTP daemon. Is it running?

slave2:

  1. [root@slave2 yum.repos.d]#  yum install -y ntp
  2. [root@slave2 yum.repos.d]# systemctl stop ntpd.service
  3. [root@slave2 yum.repos.d]# ntpstat
  4. Unable to talk to NTP daemon. Is it running?

修改master机器上的ntp服务器文件

  1. [root@master yum.repos.d]# sudo gedit /etc/ntp.conf

添加以下配置:

  1. server 127.127.1.0
  2. fudge 127.127.1.0 stratum 8​

注意:后面那个数字在0-15之间都可以,这样就将这台机器的本地时间作为ntp服务提供给客户端。

RedHat7局域网下安装离线Ambari

配置局域网内的其他机器:

  1. sudo gedit /etc/ntp.conf

注释掉原来的外网时间服务器,添加master机器的IP : server 192.168.168.200

RedHat7局域网下安装离线Ambari

Master机器上重启ntpd服务

  1. [root@master ~]# systemctl  restart  ntpd.service

等几分钟,让ntpd完成自身的时间同步。

可通过以下命令查看状态

  1. watch ntpq -p

RedHat7局域网下安装离线Ambari

注意:第6列reach达到17时就可以了,等待的时间是第5列poll的秒数乘以5

其他机器上手动执行:

  1. [root@slave1 ~]# ntpdate 192.168.168.200
  2. 10 Dec 22:00:21 ntpdate[8854]: step time server 192.168.168.200 offset -86396.562366 sec
  1. [root@slave2 ~]# ntpdate 192.168.168.200
  2. 10 Dec 22:03:22 ntpdate[8781]: step time server 192.168.168.200 offset 172798.320537 sec

其他机器设置间隔任意时间同步的方法:

查看定时任务指令编写的大致要求

  1. [root@slave1 ~]# cat /etc/crontab
  2. SHELL=/bin/bash
  3. PATH=/sbin:/bin:/usr/sbin:/usr/bin
  4. MAILTO=root
  5. HOME=/
  6. # For details see man 4 crontabs
  7. # Example of job definition:
  8. # .---------------- minute (0 - 59)
  9. # |  .------------- hour (0 - 23)
  10. # |  |  .---------- day of month (1 - 31)
  11. # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
  12. # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
  13. # |  |  |  |  |
  14. # *  *  *  *  * user-name command to be executed
  1. #添加一个新的定时任务
  2. crontab -e

在弹出的新文件编辑框中输入(按 i 键可插入)

  1. */15 * * * * ntpdate 192.168.168.200

RedHat7局域网下安装离线Ambari按ESC---- 输入 :wq! 保存退出,会提示增加了一个新的任务,上面代表(每间隔15分钟向时间服务器192.168.168.200同步一次时间)

RedHat7局域网下安装离线Ambari

查看root用户的定时任务

  1. [root@slave1 ~]# crontab -u root -l
  2. */15 * * * * ntpdate 192.168.168.200​

2.3.7卸载高版本snappy

snappy版本过高会导致安装报如下错误:

  1. <strong>resource_management.core.exceptions.Fail: Execution of '/usr/bin/yum -d 0 -e 0 -y install snappy-devel' returned 1. Error: Package: snappy-devel-1.0.5-1.el6.x86_64 (HDP-UTILS-1.1.0.20)
  2. Requires: snappy(x86-64) = 1.0.5-1.el6
  3. Installed: snappy-1.1.0-3.el7.x86_64 (@anaconda/7.3)
  4. snappy(x86-64) = 1.1.0-3.el7
  5. Available: snappy-1.0.5-1.el6.x86_64 (HDP-UTILS-1.1.0.20)
  6. snappy(x86-64) = 1.0.5-1.el6
  7. You could try using --skip-broken to work around the problem</strong>

解决办法:

  1. yum -y remove snappy
  2. yum -y install yum-plugin-versionlock
  3. echo 'snappy-1.0.5-1.el6.*' >> /etc/yum/pluginconf.d/versionlock.list
  4. cat /etc/yum/pluginconf.d/versionlock.list

master以及slave1、slave2节点都要卸载高版本snappy!

RedHat7局域网下安装离线Ambari

RedHat7局域网下安装离线Ambari

2.4 安装MySQL(为了后续装Hive)

2.4.1驱动包存放目录

mysql-connector-java-5.1.45-bin.jar驱动包存放位置:/usr/share/java

2.4.2卸载旧的mysql

查找以前是否安装有mysql

  1. [root@master ~]# rpm -qa|grep -i mysql

如果木有结果,可以进行下一步的mysql数据库安装

如果出现mysql的相关文件,说明已经安装,如:

RedHat7局域网下安装离线Ambari

停止mysql服务、删除之前安装的mysql

删除命令: rpm -e --nodeps 包名

  1. [root@master ~]# rpm -e --nodeps mysql-community-client-5.7.20-1.el6.x86_64
  2. [root@master ~]# rpm -e --nodeps mysql-community-server-5.7.20-1.el6.x86_64
  3. [root@master ~]# rpm -e --nodeps mysql-community-devel-5.7.20-1.el6.x86_64
  4. [root@master ~]# rpm -qa|grep -i mysql

查找旧版本mysql的目录,并且删除旧版本mysql的文件和库:

  1. [root@master yum.repos.d]# find / -name mysql
  2. /etc/selinux/targeted/active/modules/100/mysql
  3. /var/www/html/HDP-UTILS-1.1.0.20/repos/centos7/mysql
  4. /usr/lib64/mysql
  5. /usr/share/mysql

删除对应的mysql目录:

  1. [root@master ~]# rm -rf /usr/lib64/mysql
  2. [root@master ~]# rm -rf /usr/share/mysql

删除配置文档

  1. [root@master ~]# rm -rf /etc/my.cnf

再次查找机器是否安装mysql

  1. [root@master ~]# rpm -qa|grep -i mysql

显示无结果,说明已经卸载彻底,接下来直接安装mysql即可!

2.4.3卸载RedHat自带的mariadb

查看现有的包mariadb

  1. [root@master yum.repos.d]# rpm -qa|grep -i mariadb
  2. mariadb-libs-5.5.52-1.el7.x86_64

如果存在,删除全部包

  1. [root@master ~]# rpm -ev --nodeps mariadb-libs-5.5.52-1.el7.x86_64

2.4.4安装自己下载的mysql

把下载的mysql-5.7.20-1.el6.x86_64.rpm-bundle.tar复制到/var/www/html目录下,并解压成mysql-5.7.20-1.el6.x86_64.rpm-bundle

  1. [root@master RedHat]# cd /var/www/html
  2. [root@master html]# tar -xvf mysql-5.7.20-1.el6.x86_64.rpm-bundle.tar

RedHat7局域网下安装离线Ambari

安装mysql服务端:

  1. [root@master html]# rpm -ivh mysql-community-server-5.7.20-1.el6.x86_64.rpm --force --nodeps

RedHat7局域网下安装离线Ambari

安装mysql客户端:

  1. [root@master html]# rpm -ivh mysql-community-client-5.7.20-1.el6.x86_64.rpm --force --nodeps

RedHat7局域网下安装离线Ambari

检验:

  1. [root@master html]# find /usr/bin -name mysqladmin
  2. /usr/bin/mysqladmin
  3. [root@master html]# find /usr/bin -name mysqldump
  4. /usr/bin/mysqldump

安装mysql的库和头文件:

  1. [root@master html]# rpm -ivh mysql-community-devel-5.7.20-1.el6.x86_64.rpm --force --nodeps

RedHat7局域网下安装离线Ambari

mysql安装目录说明:

数据库目录 【mysql-server安装后存在】

/var/lib/mysql/

配置文件  【mysql-server安装后存在】

/usr/share/mysql(mysql.server命令及配置文件)

启动脚本  【mysql-server安装后存在】

/etc/rc.d/init.d/(启动脚本文件mysql的目录)

相关命令  【mysql-client安装后存在】

/usr/bin(mysqladmin mysqldump等命令)

启动mysql

  1. [root@master html]# systemctl start mysqld.service

使用netstat 命令查看mysql是否启动成功

  1. [root@master html]# netstat -nat

RedHat7局域网下安装离线Ambari

mysql默认端口号为3306,以上信息中出现3306端口号,则启动成功

2.4.5设置root密码

设置/etc/my.cnf

  1. [root@master ~]# sudo gedit /etc/my.cnf

添加:skip-grant-tables

RedHat7局域网下安装离线Ambari

保存后重启MySQL服务:service mysqld restart,然后重新登录。

  1. [root@master html]# systemctl restart mysqld.service

登录:mysql -u root -p,初次登录密码为空,直接回车:

  1. [root@master ~]# mysql -u root -p

RedHat7局域网下安装离线Ambari

修改密码,用户密码是在名为mysql的database下面:依次执行以下指令:

  1. mysql> use mysql
  2. mysql> update user set password_expired='N' where user='root';
  3. mysql> update user set authentication_string=password('root') where user='root';
  4. mysql> flush privileges;

修改root用户的密码为root

2.4.6 创建MySQL ambari用户

localhost

  1. mysql> CREATE USER 'ambari'@'localhost' IDENTIFIED BY 'ambari';
  2. mysql> GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'localhost';

%

  1. mysql> CREATE USER 'ambari'@'%' IDENTIFIED BY 'ambari';
  2. mysql> GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';

master

  1. mysql> CREATE USER 'ambari'@'master' IDENTIFIED BY 'ambari';
  2. mysql> GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'master';
  3. mysql> FLUSH PRIVILEGES;

注意:以上说明:创建用户:ambari,密码:ambari

按CTRL+Z组合键可以退出!

2.5 Ambari安装过程

2.5.1 在各个节点上清空缓存文件

  1. [root@master .ssh]#  yum clean all

RedHat7局域网下安装离线Ambari

  1. [root@slave1 ~]# yum clean all
  1. [root@slave2 ~]# yum clean all

2.5.2 将master服务器上的软件包信息缓存到本地

目的:提高搜索安装软件的速度

  1. [root@master .ssh]# yum makecache
  1. [root@slave1 .ssh]# yum makecache
  1. [root@slave2 .ssh]# yum makecache

RedHat7局域网下安装离线Ambari

为了检验文件是否配置正确,可以使用 :

  1. [root@master .ssh]# yum search ambari-agent
  2. [root@master .ssh]# yum search Oozie
  3. [root@master .ssh]# yum search gangli​
  1. [root@slave1 .ssh]# yum search ambari-agent
  2. [root@slave1 .ssh]# yum search Oozie
  3. [root@slave1 .ssh]# yum search gangli
  1. [root@slave2 .ssh]# yum search ambari-agent
  2. [root@slave2 .ssh]# yum search Oozie
  3. [root@slave2 .ssh]# yum search gangli

RedHat7局域网下安装离线Ambari

RedHat7局域网下安装离线Ambari

RedHat7局域网下安装离线Ambari

如果配置有问题,就会出现找不到文件包的问题。

察看仓库列表:

  1. [root@master .ssh]# yum repolist​
  1. [root@slave1 .ssh]# yum repolist​
  1. [root@slave2 .ssh]# yum repolist​

RedHat7局域网下安装离线Ambari

  1. [root@master .ssh]#  yum search ambari-agent
  1. [root@slave1 .ssh]#  yum search ambari-agent
  1. [root@slave2 .ssh]#  yum search ambari-agent

RedHat7局域网下安装离线Ambari

如果可以看到Ambari 的对应版本的安装包列表,说明公共库已配置成功。

然后就可以安装 Ambari 的 package 了。执行下面的步骤安装 Ambari Server 。

2.5.3  Ambari Server安装

安装之前先准备JDK1.8:

  1. [root@master ~]# mkdir -p /usr/java

把jdk-8u112-linux-x64.tar.gz复制到/usr/java目录下面,并解压:

  1. [root@master ~]# cd /usr/java
  2. [root@master java]# ls
  3. jdk-8u112-linux-x64.tar.gz
  4. [root@master java]# tar -zvxf jdk-8u112-linux-x64.tar.gz
  5. [root@master java]# ls
  6. jdk1.8.0_112  jdk-8u112-linux-x64.tar.gz

slave1和slave2节点也要重复以上JDK准备操作:

  1. [root@slave1 java]# mkdir -p /usr/java
  1. [root@slave2 ~]# mkdir -p /usr/java
  1. [root@master java]# scp -r /usr/java/jdk1.8.0_112 root@slave1:/usr/java
  2. [root@master java]# scp -r /usr/java/jdk1.8.0_112 root@slave2:/usr/java

先卸载

  1. [root@master java]# yum erase ambari-server

再安装,这个命令同时安装了PostgreSQL:

  1. [root@master java]# yum install ambari-server

RedHat7局域网下安装离线Ambari

RedHat7局域网下安装离线Ambari

输入y之后:y

RedHat7局域网下安装离线Ambari

RedHat7局域网下安装离线Ambari

RedHat7局域网下安装离线Ambari

待安装完成后,便需要对 Ambari Server 做一个简单的配置。执行下面的命令

  1. [root@master java]# ambari-server  setup

如果还没有关闭SELinux,执行这个命令的过程中会提示,选择y,即可临时关闭。

RedHat7局域网下安装离线Ambari

直接回车,并且默认指定 Ambari Server 的运行用户为 root

RedHat7局域网下安装离线Ambari

选择3,自定义已经安装JDK路径:

  1. #Path to JAVA_HOME: 这里的JDK路径我们使用的是
  2. /usr/java/jdk1.8.0_112

RedHat7局域网下安装离线Ambari

默认高级数据库配置,在这里输入y,选择数据库:

RedHat7局域网下安装离线Ambari

选择默认,直接回车:

  1. Username (ambari): admin
  2. Enter Database Password (bigdata): admin
  3. Re-enter password: admin

RedHat7局域网下安装离线Ambari

默认设置了 Ambari GUI 的登录用户为 admin/admin,并且指定 Ambari Server 的运行用户为 root。

2.5.4 创建数据库hive

  1. [root@master ~]# ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java-5.1.45-bin.jar

RedHat7局域网下安装离线Ambari

  1. #前面设置的root用户密码为root
  2. [root@master lib]# mysql -u root -p
  3. Enter password:
  1. mysql> CREATE DATABASE hive;

localhost

  1. mysql> CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive';
  2. mysql> GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'localhost';

%

  1. mysql> CREATE USER 'hive'@'%' IDENTIFIED BY 'hive';
  2. mysql> GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'%';

master

  1. mysql> CREATE USER 'hive'@'master' IDENTIFIED BY 'hive';
  2. mysql> GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'master';
  3. mysql> flush privileges;

注意:以上说明:创建数据库:hive,创建用户:hive,密码:hive

  1. mysql> use hive;
  2. mysql> source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql;

查看数据库

  1. mysql> show databases;

RedHat7局域网下安装离线Ambari

使用hive数据库,并且查看表:

  1. mysql> show tables;

RedHat7局域网下安装离线Ambari

2.5.5启动Ambari 界面

简单的 setup 配置完成后。就可以启动 Ambari 了。运行下面的命令:

  1. [root@master resources]#  ambari-server  start

RedHat7局域网下安装离线Ambari

如下命令端口监听:

  1. [root@master resources]# netstat -tnlp|grep java

RedHat7局域网下安装离线Ambari

如果8080端口监听了,表示启动正常。

如果没有正常监听,就查看日志/var/log/ambari-server/ambari-server.log,察看是否有错误,根据提示解决即可。

查看ambari-server状态

  1. [root@master resources]# ambari-server status

RedHat7局域网下安装离线Ambari

查看ambari-server进程

  1. # jps  或   # ps -ef|grep Ambari​
  2. [root@master resources]# ps -ef|grep Ambari

RedHat7局域网下安装离线Ambari

当成功启动 Ambari Server 之后,便可以从浏览器登录,默认的端口为 8080。

以本文环境为例,在主机的浏览器的地址栏输入http://192.168.168.200:8080,登录密码为 admin/admin

RedHat7局域网下安装离线Ambari

登入 Ambari 之后的管理控制台页面如下图:

RedHat7局域网下安装离线Ambari

至此,Ambari Server 就安装完成了.

2.6 部署一个Hadoop2.x集群

2.6.1 命名集群的名字

登录 Ambari 之后,点击按钮“Launch In stall Wizard”,就可以开始创建属于自己的大数据平台。本环境配置集群名称为BigData,在这里只能先建立namenode的集群。

RedHat7局域网下安装离线Ambari

2.6.2 选择Stack---Hadoop生态圈软件的集合

指定HDP版本和HDP的yum仓库位置.

Stack 的版本越高,里面的软件版本也就越高。这里我们选择 HDP2.3,里面的对应的 Hadoop 版本为 2.7.x。(选择HDP版本)

RedHat7局域网下安装离线Ambari

在仓库baseurl中指定本地的HDP和HDP UTILS仓库的BaseURL

HDP-2.3:

http://192.168.168.200:80/HDP/centos7/2.x/updates/2.3.0.0

HDP-UTILS-1.1.0.20:

http://192.168.168.200:80/HDP-UTILS-1.1.0.20/repos/centos7

RedHat7局域网下安装离线Ambari

2.6.3 Install Options--------添加hadoop主机

指定 Agent 机器, 这些机器会被安装 Hadoop 等软件包。添加主机:

  1. master
  2. slave1
  3. slave2

RedHat7局域网下安装离线Ambari

另外不要选择“Perform manual registration on hosts and do not use SSH“。因为我们需要 Ambari Server 自动去安装 Ambari Agent。具体参见下图示例:

RedHat7局域网下安装离线Ambari

点击“浏览...”选择Ambari  Server机器的私钥,本环境是:需要提供Ambari Server root账户的私钥,即/root/.ssh/ id_rsa文件,由于.ssh是隐藏文件,需要在/root目录下右击,选择”

show Hidden Files”,即可,进入.ssh文件:

RedHat7局域网下安装离线Ambari

选择”id_rsa”私钥文件:

RedHat7局域网下安装离线Ambari

完成:

RedHat7局域网下安装离线Ambari

2.6.4 自动安装Ambari Agent

Ambari Server 会自动安装 Ambari Agent 到刚才指定的机器列表(slave1、slave2)。

RedHat7局域网下安装离线Ambari

安装完成后,Agent 会向 Ambari Server 注册。成功注册后,就可以继续 Next 到下一步。

RedHat7局域网下安装离线Ambari

 Click here to see the warnings.察看警告:

RedHat7局域网下安装离线Ambari

“2.2.8同步时间”已经实现了时间同步,直接Next!

2.6.5 查看并且选择Hadoop相关组件

我们需要选择要安装的软件名称。本文环境只是选择了 HDFS,YARN + MapReduce2,Zoopkeeper,Ambari Metrics 。选的越多,就会需要越多的机器内存。选择之后就可以继续下一步了。

注意:Metrics与其它组件不要装在一台机器上,因为Metrics内置了HBase和Zookeeper,容易产生问题。

RedHat7局域网下安装离线Ambari

RedHat7局域网下安装离线Ambari

这里需要注意某些 Service 是有依赖关系的。如果您选了一个需要依赖其他 Service 的一个 Service,Ambari 会提醒安装对应依赖的 Service。

2.6.6 指定Master,Slave,Client机器

分别是选择安装软件所指定的 Master 机器和 Slave 机器,以及 Client 机器。

注意:Assign Masters中SNameNode必须跟NameNode在同一主机,否则Secondnamenode不能运行!!

RedHat7局域网下安装离线Ambari

Assign Slaves and Clients :

DataNode和NodeManager一定要选(2.0以下没有NodeManager选项,但有TaskTraker,将它选上)。

RedHat7局域网下安装离线Ambari

2.6.7 组件(Service)配置

绝大部分配置已经有默认值,不需要修改。初学者,如果不需要进行调优是可以直接使用默认配置的。有些 Service 会有一些必须的手工配置项,则必须手动输入,才可以下一步------本文环境直接使用默认配置

RedHat7局域网下安装离线Ambari

2.6.8 显示配置信息

Ambari 会总结一个安装列表,供用户审阅。这里没问题,就直接下一步。

RedHat7局域网下安装离线Ambari

2.6.9 安装启动并测试

Ambari 会开始安装选择的 Service 到 Ambari Agent 的机器(如下图)。这里可能需要等好一会。安装完成之后,Ambari 就会启动这些 Service。如图所示:Service的安装进度

RedHat7局域网下安装离线Ambari

Ambari会在各主机下生成hdp的repo文件,自动进行安装,一般失败后继续Retry,在不停的fail、retry后,就成功了。

RedHat7局域网下安装离线Ambari

进入下一步:

RedHat7局域网下安装离线Ambari

2.6.10 查看Ambari 的Dashboard

安装完成之后,就可以查看 Ambari 的 Dashboard 了。例如下图:Amabri的Dashboard页面:

RedHat7局域网下安装离线Ambari

2.7利用Ambari管理Hadoop2.x集群

2.7.1  Service Level Action(服务级别的操作)

首先我们进到 Ambari 的 GUI 页面,并查看 Dashboard。在左侧的 Service 列表中,我们可以点击任何一个您想要操作的 Service。以 MapReduce2 为例(Hadoop 这里的版本为 2.7.x,也就是 YARN+HDFS+MapReduce),当点击 MapReduce2 后,就会看到该 Service 的相关信息,如下图:

RedHat7局域网下安装离线Ambari

中间部分是 Service 的模块(Component)信息,也就是该 Service 有哪些模块及其数目。右上角有个 Service Action 的按钮,当点击该按钮后就可以看到很多 Service 的控制命令。也就是通过这些 Service Action 命令,对 Service 进行管理的。

可能有的人会说,装完 Hadoop 的集群后,并不知道这个集群是不是可用。这时候我们就可以运行一个“Run Service Check”。点击这个命令后,就会出现下图的进度显示。如图所示:

RedHat7局域网下安装离线Ambari

RedHat7局域网下安装离线Ambari

其实这里就是通过运行一个经典的 MapReduce Wordcount 实例,来检查 MapReduce 是不是正常。对于 Service Action 里面的 Start、Stop 的含义就是,启停整个集群所有该 Service 的模块(也就是 Service level)。当执行进度页面弹出来的时候,我们可以点击 Operations 的名字,进而查看每个机器的进度和运行 log。如图:

RedHat7局域网下安装离线Ambari

2.7.2  Host Level Action(机器级别的操作)

首先,我们回到 Ambari 的 Dashboard 页面。页面最上面中间的地方有个 Hosts,点击这个标签,我们就可以看到 Ambari 所管理的机器列表。如下图:

RedHat7局域网下安装离线Ambari

如果有红色提示信息,图片中红色的数字是警告信息(Ambari Alert),这里我们先略过它,后续再做介绍。先看左上角的 Actions,点击这个按钮,就可以看到 Host level Action 的选项了,其实和 Service Level 是类似的,只是执行的范围不一样。如下图:

RedHat7局域网下安装离线Ambari

当用户选择 All Hosts -> Hosts -> Start All Components,Ambari 就会将所有 Service 的所有模块启动:

RedHat7局域网下安装离线Ambari

如果用户选择 All Hosts-> DataNodes -> Stop,Ambari 就会把所有机器的 DataNode 这个模块关闭。如下图:

RedHat7局域网下安装离线Ambari

RedHat7局域网下安装离线Ambari

RedHat7局域网下安装离线Ambari

2.7.3  Component Level Action(模块级别的操作)

上面的图中,我们可以看到 Decommisson、Recommission。这些命令其实是自定义的模块级别的操作(Component Level Action)。不过上图中命令一旦执行,就是对多个机器的同个模块执行。

我们现在尝试只对单个机器的一个模块(Component)执行。首先我们回到 Hosts 的页面。这时候点击机器名,如下图:例如点击master机器:

RedHat7局域网下安装离线Ambari

我们就会进入到该机器的 Component 页面。

RedHat7局域网下安装离线Ambari

这时候只要点击每个 Component(模块)后面的按钮,就可以看到该模块的操作命令了。例如,我们可以停掉这台机器的 NameNode 模块:

RedHat7局域网下安装离线Ambari

停止后,如图所示:RedHat7局域网下安装离线Ambari

2.7.4  Add Service

RedHat7局域网下安装离线Ambari

本次添加:Hive,同时自动添加需要依赖的服务Tez,Pig组件:察看

RedHat7局域网下安装离线Ambari

RedHat7局域网下安装离线Ambari

RedHat7局域网下安装离线Ambari

因为MySQL是安装在master节点上的,所以必须修改hive的服务器为master:

RedHat7局域网下安装离线Ambari

RedHat7局域网下安装离线Ambari

其中hive的数据库password配置成hive

RedHat7局域网下安装离线Ambari

选择“Existing MySQL Database",Database Host 配置为master,点击测试连接

RedHat7局域网下安装离线Ambari

RedHat7局域网下安装离线Ambari

提示:

RedHat7局域网下安装离线Ambari

RedHat7局域网下安装离线Ambari

RedHat7局域网下安装离线Ambari

把下面的有重启符号按钮提示的服务重启一下:

RedHat7局域网下安装离线Ambari

重启完毕如下图:

RedHat7局域网下安装离线Ambari

至此,hive安装完毕!

2.7.5 Ambari扩容集群

①Ambari 可以给自身的集群添加机器(也就是添加 Ambari Agent),然后将 Service 的模块安装在新的机器,也可以把某些模块安装到已有的其他的机器。

②如果选择使用私钥的方式安装不成功的话,请多试几次。

③如果还是不成功,使用手动方式,但前提是在目标机器上要安装ambari-agent并启动,推荐使用这种方法,成功率非常高。

④如果安装失败了,确认免登录没有问题的前提下,多retry几次。如果安装的时间太久,可以删除安装重来。

2.8 安装完成后,测试

2.8.1  验证HDFS

创建HDFS测试目录及其设置权限

  1. [root@master ~]# sudo -u hdfs hadoop fs -mkdir /hdfstest
  2. [root@master ~]# sudo -u hdfs hadoop fs -chown -R root:hdfs /hdfstest
  3. [root@master ~]# hadoop fs -ls /

RedHat7局域网下安装离线Ambari

导入数据到HDFS:【-put命令别名:-copyFromLocal】

在/var/www/html/目录下创建一个words.txt文件,并输入:I am ambari.

  1. [root@master ~]# touch /var/www/html/words.txt
  2. [root@master ~]# ls /var/www/html/
  3. [root@master ~]# echo I am ambari >> /var/www/html/words.txt
  4. [root@master ~]# cat /var/www/html/words.txt
  5. I am ambari

导入本地系统文件到HDFS上,并且验证是否成功导入到HDFS上:

  1. [root@master ~]# hadoop fs -put /var/www/html/words.txt /hdfstest
  1. [root@master ~]# hadoop fs -ls /hdfstest
  2. Found 1 items
  3. -rw-r--r--   3 root hdfs         12 2018-01-01 22:04 /hdfstest/words.txt

从HDFS中导出数据: 【-get命令别名:-copyToLocal】

  1. [root@master ~]# hadoop fs -get /hdfstest/words.txt  /root/Documents/
  2. [root@master ~]# ls /root/Documents
  3. words.txt

HDFS主要模块:dfs ,dfsadmin

2.8.2  验证Map/Reduce

测试hadoop自带的wordcount程序验证MapReduce过程:

输入文件是HDFS文件系统上的:

  1. [root@master ~]# sudo -u hdfs hadoop jar /usr/hdp/2.3.0.0-2557/hadoop-mapreduce/hadoop-mapreduce-examples-2.7.1.2.3.0.0-2557.jar wordcount /hdfstest/words.txt /hdfstest/output

RedHat7局域网下安装离线Ambari

RedHat7局域网下安装离线Ambari

查看运行结果:

  1. [root@master ~]# hadoop fs -cat /hdfstest/output/*
  2. I 1
  3. am 1
  4. ambari 1

删除output文件夹:

  1. [root@master ~]# sudo -u hdfs hadoop fs -rm -r /hdfstest/output

2.8.3 验证Hive

在命令行中输入hive可以直接进入到hive:

  1. [root@master ~]# sudo -u hdfs hive

RedHat7局域网下安装离线Ambari

创建2个字段的wc表:

  1. hive> create table wc
  2. > (name string,id int)
  3. > row format delimited
  4. > fields terminated by '\t';​

查看wc表的描述信息:

  1. hive> desc wc;

RedHat7局域网下安装离线Ambari

2.8.4 停止ambari

所有集群机器:

  1. ambari-agent stop

Ambari-Server机器:

  1. ambari-server stop

Ambari-Server重启:

  1. ambari-server restart

接下来开始我们的大数据之旅吧!