河北科技大学-许云峰大数据团队-肖轶超出品
图片从word中直接粘贴过来有些问题,凑合着看吧,图片太多了,不想一个一个上传。等我有时间了在弄个图片的事情吧。这算个 第一版吧。我的文档可以做做到从无到有复制粘贴即可完成平台的搭建。我很有信心,因为我这么做过。是从一个新系统开始做的那种。我是在实体服务器上搭建的,虚拟机的没有时间探索了。开源的东西感觉资料都很少。我做了之后希望你们少踩坑吧
Hortonworks Data Platform是基于集中式体系架构(YARN)的企业级开源Apache Hadoop分发版本。HDP解决静态数据的全部需求,支持实时客户应用和提供鲁棒性分析,加快决策和创新。HDP平台集成了大部分关键的大数据处理组件,并且随着这些组件的更新而更新,用户可以根据自己的需求,选择安装HDP的版本,详见图3-40(图片来自HDP官网)。HDP版本和其集成的开源组件的版本对照表如下图所示。搭建HDP之前先部署Ambari,因为Ambari可以方便HDP的自动化安装。
此处我们选择的HDP版本为 2.6.2 ,Ambari版本为2.6.2.0。读者安装前需确定HDP和Ambari版本之间的对应关系(图3-40中包含HDP版本与Ambari版本关系)以免因为版本不匹配,造成安装和使用中的问题。各个Ambari版本对应支持的Linux系统及其版本统计图,如图3-41所示,笔者选择Centos7系统,使用的镜像版本为CentOS-7-x86_63-DVD-1708.iso。此次HDP平台的搭建,我们选择在真实的物理节点上进行,在虚拟机上的搭建过程与此略有不同。
图3-41各个Ambari版本对应支持的Linux系统及其版本统计图
以下安装都是使用root用户登录后操作。由于root用户权限过大,一些linux发行版并不允许root用户以图形化界面登录,但是Centos系统是允许的。此处的安装过程都是在root用户图形化界面和终端中操作的。
3.3.1 前期准备
3.3.1.1 添加读取ntfs硬盘功能
读者如果不需要读写移动硬盘或者优盘,可以跳过此步骤。
因为笔者之前已经下载好了HDP和Ambari的安装包,并且拷贝在了移动硬盘中,所以此处添加ntfs-3g功能来将HDP和Ambari的安装包拷贝到主节点中的“/root/下载”路径下,以保证笔者的安装环境和读者的安装环境保持一致。HDP和Ambari的安装包的下载地址后面我们会有提及。读者安装的时候最好选择没有安装过hadoop环境的系统,不然有可能会出现各种问题,比如HDP要新建很多用户,其中就有hadoop用户,可以先找三台服务器进行实验,如果成功后,再添加其他节点,如果不成功,建议重新安装centos7系统后再进行安装。使用完移动硬盘或者优盘后,安装HDP平台之前,需要先卸载掉ntfs-3g功能,因为它会出现在HDP平台安装过程的警告中。如果需要读取移动硬盘或者优盘,可以在HDP安装完以后,再安装此功能。
1、添加aliyun的epel源
在终端中输入如下指令:
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
2、yum 安装ntfs-3g
在终端中输入如下指令:
yum install ntfs-3g
安装完成ntfs-3g服务后终端显示的信息如图3-42所示。
图3-42 安装完成ntfs-3g服务后终端显示的信息
3、判断 yum 安装ntfs-3g是否成功
在终端中输入如下指令:
yum list installed | grep ntfs-3g
ntfs-3g安装成功的测试结果如图3-43所示。
图3-43 ntfs-3g安装成功的测试结果
3.3.1.2 为所有节点配置静态IP
因为服务器每次开机可能会改变IP,所以三台都要配置静态IP。三台机器的配置文件略有不同,即配置文件中的IP地址、 IPADDR参数不同。此处我们以其中的一台服务器举例。
1、在网络设置中查看本机正在使用的网卡及IP
如图3-44中显示正在使用的网卡为em2。
图3-44 查看本机正在使用的网卡
我们也可以在终端输入ifconfig查看当前服务器的IP地址,如图3-45所示,当前服务器正在使用的网卡为em1,em1的IP地址为192.168.10.237。(图3-44和图3-45并非同一台服务器的网卡信息)
图3-45 查看em1的IP地址
2、修改 ifcfg-em1文件
在终端中输入如下指令:
cd /etc/sysconfig/network-scripts/
gedit ifcfg-em1 #此处应修改em1为读者自己的网卡号
原配置文件如下:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=em1
UUID=868d312a-e0e8-4a06-a1cc-fb0a67116e37
DEVICE=em1
ONBOOT=no
按照如下修改配置文件:
需要修改的参数
BOOTPROTO=static #修改ip为静态
ONBOOT=yes #设置为开机启动
需要添加的参数
IPADDR=192.168.10.201 #每台服务需要年设置成不同的IP,第二台服务器的结尾可以是202,第三台服务器的结尾可以是203
NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.10.1 #默认网关
保存文件。
3、修改/etc/sysconfig/network文件
在终端中输入如下指令:
gedit /etc/sysconfig/network
然后在文件的末尾下添加以下语句:
NETWORKING=yes
GATEWAY=192.168.10.1
DNS1=119.29.29.29
DNS2=182.254.116.116
保存文件。
4、重启网卡
在终端中输入如下指令:
systemctl restart network.service
输入ifconfig 查看现在的IP地址,输出结果如图3-46所示。
图3-46 重启网卡后显示的信息
可以看到em1 的IP地址已经变为192.168.10.201,此时,可以打开浏览器测试是否可以联网。
其他两台服务器静态IP的配置与此类似,只要换成不同的IP即可,我们设置namenode的IP为192.18.10.201。2个datanode的IP分别为192.168.10.202和192.168.10.203。
3.3.1.3 所有节点配置ssh免密码登录本机
1、安装SSH server
执行命令:yum install openssh-server
安装的过程中会让用户输入两次“y”,最后安装后的界面如图3-47所示。
图3-47 安装SSH server成功后显示的信息
2、使用ssh服务免密码登录本机
执行命令:ssh localhost
此时会有如下提示(SSH首次登录提示)如图3-48所示,输入“yes”,然后需要用户输入一次root用户的密码。
图3-48 ssh登录本机
但这样登录是需要每次都输入密码的。因为如果不修改为免密码登录的话,启动Hadoop会让我们输入很多次密码,所以我们需要配置成SSH无密码登录。
首先退出刚才的SSH,就回到了我们原先的终端窗口,然后利用ssh-keygen 生成密钥,并将密钥加入到授权中:
exit # 退出刚才的ssh localhost
cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa # 然后会有3次提示用户输入,因为要设置成免密码登录的方式,所以都直接按回车键即可。
cat id_rsa.pub >>authorized_keys # 加入授权
配置SSH无密码登录界面,如图3-49所示。
图3-49 配置SSH无密码登录
此时再执行ssh localhost 命令,SSH无密码登录成功,如图3-50所示,输入exit,退出。
图3-50 SSH无密码登录成功
如果没有成功,需要先删除 ./ssh内的文件,然后重新配置SSH登录。命令如下:
cd ~/.ssh
然后输入ls ,我们可以看到~/.ssh一共有四个文件:
id_rsa
id_rsa.pub
known_hosts
authorized_keys
然后输入:
rm -r ~/.ssh
系统会提示 rm:是否进入目录"/root/.ssh"?
接下来全部都输“y”,即可全部删除~/.ssh内的文件。
3.3.1.4 修改每个节点的host和FQDN
为了以后能够采用“ssh + 主机名”的方式来访问其余节点,要保证每个节点上的hosts文件下有各个ip和主机名对应的映射。
1、设置主机名
每个节点都要设置,执行如下命令:
gedit /etc/sysconfig/network
将以下内容添加到文件中:
HOSTNAME=c205-001 #但HOSTNAME的参数不同,三台服务器分别为c205-001,c205-002,c205-003
保存退出后,重启网卡,执行如下命令:
systemctl restart network.service
2、修改host文件
终端中输入命令:
gedit /etc/hosts
修改之前的内容如下:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
删掉之前的内容,替换的内容如下:
192.168.10.201 c205-001.hadoop c205-001
192.168.10.202 c205-002.hadoop c205-002
192.168.10.203 c205-003.hadoop c205-003
保存后关闭。
3、修改/etc/hostname
终端中输入命令:
gedit /etc/hostname
之前的内容为:
localhost.localdomain
替换为我们想要的hostname,即分别为c205-001,c205-002,c205-003。
保存退出后,重启网卡,执行如下命令:
systemctl restart network.service
4、测试使用“ssh + 主机名”方式登录是否成功
例如在主节点上进行测试。如果没有出现如下返回的内容则是因为还没有更新好,可以输入几次hostnamectl和systemctl restart network.service指令,就会出现正确的返回内容。
输入:hostname
返回:c205-001
输入:hostname -f
返回:c205-001.hadoop
输入:hostnamectl
返回:
Static hostname: c205-001
Icon name: computer-server
Chassis: server
Machine ID: e78dc180677d4c84be5facbd517668d4
Boot ID: 0fb80e52aad340bcab99cb49a371ca0d
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-693.el7.x86_64
Architecture: x86-64
3.3.1.5 实现主节点免密码登录从节点
1、将主节点的公钥文件拷贝到从节点上
此时会让你输入一次“yes”和密码,执行之前要保证从节点已经开机,否则会出现不能复制到从节点的问题。
终端中执行如下命令:
scp ~/.ssh/id_rsa.pub root@c205-002:~
scp ~/.ssh/id_rsa.pub root@c205-003:~
结果如图3-51所示。
图3-51 将主节点的公钥文件拷贝到从节点上
2、将主节点的公钥追加到授权文件中
在两个从节点中执行如下命令:
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
rm ~/id_rsa.pub
结果如图3-52所示。
图3-52 将主节点的公钥追加到授权文件中
在主节点中使用”ssh + 主机名”的方式,实现主节点到从节点无密码访问。
终端中执行如下命令:
ssh c205-002
登录成功后,如图3-53所示。第一次这样登录的时候会让你输入一次“yes”,但是不需要输入密码。以后ssh登录都不需要再输入“yes”和密码了。
图3-53使用”ssh + 主机名”的方式登录
输入exit,退出登录
3.3.1.6 在所有节点上开启NTP 服务
安装或更新NTP,终端中执行如下命令:
yum installntp
系统会提示两次输入“y”,安装或更新NTP结果如图3-53所示。
图3-53安装或更新NTP
接下来将ntp服务设置为开机自启动。
在终端中依次输入:
systemctl is-enabled ntpd
systemctl enable ntpd
systemctl start ntpd
结果如图3-54所示。
图3-54 ntp服务设置为开机自启动
3.3.1.7 关闭所有节点的防火墙
关闭节点防火墙,在所有节点的终端中执行如下命令:
systemctl disable firewalld
systemctl stop firewalld
结果如图3-55 所示。
图3-55 关闭防火墙
3.3.1.8 所有节点关闭SELinux
1、查看SELinux状态
在终端中输入如下指令:
sestatus
结果如图3-56所示。
图3-56 查看SELinux状态
如果SELinux status参数为enabled(SELinux status: enabled),即为开启状态。
2、关闭SELinux
需要注意的是,修改配置文件后需要重启机器。
在终端中修改配置文件,执行如下指令:
gedit /etc/sysconfig/selinux
配置文件如图3-57所示。
图3-57 SELinux配置文件
将selinux参数由enforcing修改为disabled,执行如下命令:
SELINUX=disabled
修改完成后保存,退出。
若是服务器不能现在关机,可以选择临时关闭,不用重启机器,执行如下命令:
setenforce 0
3.3.2 在主节点上制作本地源
1、安装 Apache HTTP 服务
在终端中输入如下命令:
yum install httpd
安装的过程中会输入一次“y”,结果如图3-58所示。
图3-58 安装 Apache HTTP 服务
因为已经关闭了防火墙,所以就不用设置允许 http 服务(永久)通过防火墙了。
2、添加 Apache 服务到系统层,使其随系统自动启动
在终端中输入如下命令:
systemctl start httpd.service
systemctl enable httpd.service
结果如图3-59所示。
图3-59 添加 Apache 服务到系统层
3、安装本地制作相关工具
在终端中输入如下命令:
yum install yum-utils create repo
安装的过程中系统会输入一次“y”,结果如图3-60所示。
图3-60 安装本地制作相关工具
4、下载HDP 2.6.2 和Ambari-2.6.2.0对应centos7的安装资源
Ambari-2.6.2.0 tar包下载地址:
http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.6.2.0/ambari-2.6.2.0-centos7.tar.gz
Ambari Repo File 文件链接:
http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.6.2.0/ambari.repo
HDP-2.6.5.0 tar包下载地址:
http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.5.0/HDP-2.6.5.0-centos7-rpm.tar.gz
HDP-UTILS 2.6.5.0 tar包下载地址:
http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.21/repos/centos7/HDP-UTILS-1.1.0.21-centos7.tar.gz
HDP Repo File 文件链接:
http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.5.0/hdp.repo
5、将下载的压缩包解压到/var/www/html/ambari目录
在httpd网站根目录(httpd网站根目录默认为/var/www/html/)下,创建目录ambari,然后将三个文件都解压到/var/www/html/ambari/路径下。
在终端中输入如下命令:
cd /var/www/html
mkdirambari
利用图形化界面将下载好的三个文件在/root/下载/路径下解压。Ambari-2.6.2.0解压后最外层文件夹名需命名为ambari,HDP-2.6.5.0文件解压后最外层文件夹名需命名为HDP,HDP-UTILS 2.6.5.0解压后,最外层文件夹名需命名为HDP-UTILS。然后将三个命名好的文件夹放在/var/www/html/ambari/路径下。
修改/var/www/html/ambari文件夹及其内部文件的权限为root可读写,以防HDP安装的过程中出现不能读取的情况。
6、验证httpd网站是否被访问
用浏览器直接访问下面的地址:
此处请读者注意将192.168.10.201修改为自己的集群主节点的IP地址,否则会出现在浏览器中不能访问的现象。图3-61为访问成功的界面。
图3-61 访问httpd网址的结果
7、修改HDP Repo File
修改hdp.repo,在终端中执行如下指令:
cd /root/下载
gedithdp.repo
初始配置如下:
#VERSION_NUMBER=2.6.3.0-235
[HDP-2.6.3.0]
name=HDP Version - HDP-2.6.3.0
baseurl=http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.3.0
gpgcheck=1
gpgkey=http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.3.0/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://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.21/repos/centos7
gpgcheck=1
gpgkey=http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.3.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
修改其中的URL为本地的地址,修改后的配置如下:
#VERSION_NUMBER=2.6.3.0-235
[HDP-2.6.3.0]
name=HDP Version - HDP-2.6.3.0
baseurl=http://192.168.10.201/ambari/HDP/centos7/2.6.3.0-235/
gpgcheck=1
gpgkey=http://192.168.10.201/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.10.201/ambari/HDP-UTILS
gpgcheck=1
gpgkey=http://192.168.10.201/ambari/HDP-UTILS/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
修改成功后保存并退出
8、修改Ambari Repo File
在终端中执行如下指令:
cd /root/下载
geditambari.repo
初始文件如下:
#VERSION_NUMBER=2.6.0.0-267
[ambari-2.6.0.0]
name=ambari Version - ambari-2.6.0.0
baseurl=http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.6.0.0
gpgcheck=1
gpgkey=http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.6.0.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
修改其中的URL为本地的地址,修改后的配置如下:
#VERSION_NUMBER=2.6.0.0-267
[ambari-2.6.0.0]
name=ambari Version - ambari-2.6.0.0
baseurl=http://192.168.10.201/ambari/ambari/centos7/2.6.0.0-267/
gpgcheck=1
gpgkey=http://192.168.10.201/ambari/ambari/centos7/2.6.0.0-267/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
保存后退出。
执行如下两行命令,将修改过的源放到/etc/yum.repos.d/下面。
cp /root/下载/hdp.repo /etc/yum.repos.d/
cp /root/下载/ambari.repo /etc/yum.repos.d/
然后查看一下该路径下是否有该文件,在终端中执行如下指令:
cd /etc/yum.repos.d/
ls
结果如图3-62所示。
图3-62 查看/etc/yum.repos.d/路径下的文件
9、清理并更新软件源
在主节点的终端中依次输入如下命令:
yum clean all
yum list update
yum makecache
yum repolist
结果如图3-63所示。
图3-63清理并更新软件源后的结果
3.3.3 主节点上安装MYSQL数据库
1、下载mysql的repo源
CentOS 7.2的yum源中默认没有mysql,要先下载mysql的repo源。
在终端中执行如下指令:
cd /opt
mkdirmysql
cd mysql
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
2、安装mysql57-community-release-el7-8.noarch.rpm包
在终端中执行如下指令:
rpm -ivhmysql57-community-release-el7-8.noarch.rpm --nodeps --force
3、安装MYSQL
在终端中执行如下指令:
yum install mysql-server
安装的时候会输入2次“y”
结果如图3-64所示。
图3-64安装mysql-server
4、启动MYSQL
查看MySQL服务是否已启动,在终端中执行如下指令:
service mysqld status
结果如图3-65所示。
图3-65安装mysql服务
启动服务,在终端中执行如下指令:
systemctl start mysqld
结果如图3-66所示。
图3-66启动mysql服务
MySQL5.7会在安装后为root用户生成一个随机密码,而不是像以往版本的空密码。可以在安全模式修改root登录密码或者用随机密码登录修改密码。
下面用随机密码方式:
MySQL为root用户生成的随机密码,通过mysqld.log文件可以查找到。
执行如下命令:
grep 'temporary password' /var/log/mysqld.log
如图3-67中的随机密码为gpupLo%3W=Ia
图3-67查看数据库的随机密码
修改root用户密码:(MySQL的密码策略比较复杂,过于简单的密码会被拒绝)。
在终端中执行如下指令:
mysql -u root -p
然后输入刚才的随机密码,点击回车。
结果如图3-68所示
图3-68修改root用户密码
设置密码,在终端中执行如下指令:
mysql> SET PASSWORD FOR 'root'@'localhost'= "此处填写你的密码";
退出mysql数据库,在终端中执行如下指令:
mysql> exit
用root新密码登录,在终端中执行如下指令:
mysql -u root -p此处填写你的密码(注意:-p和密码之间没有空格,以后不再赘述此注意事项)
退出mysql数据库,在终端中执行如下指令:
mysql> exit
用root密码登录,在终端中执行如下指令:
mysql -u root -p此处填写你的密码
登录后依次输入如下命令:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '此处填写你的密码' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit;
因为已经关闭了防火墙,所以此处不需要再开启防火墙mysql 3306端口的外部访问。
7、创建ambari数据库及用户
Centos系统登录root用户执行下面语句。
首先用root密码登录mysql,在终端中执行如下指令:
mysql -u root -p此处填写你的密码
create database ambari character set utf8 ;
CREATE USER 'ambari'@'%'IDENTIFIED BY '此处填写你的密码';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';
FLUSH PRIVILEGES;
use ambari
exit
8、如果要安装Hive,创建Hive数据库和用户
首先用root密码登录mysql,在终端中执行如下指令:
mysql -u root -p此处填写你的密码
create database hive character set utf8 ;
CREATE USER 'hive'@'%'IDENTIFIED BY '此处填写你的密码';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';
FLUSH PRIVILEGES;
exit;
9、如果要安装Oozie,创建Oozie数据库和用户
首先用root密码登录mysql,在终端中执行如下指令:
mysql -u root -p此处填写你的密码
create database oozie character set utf8 ;
CREATE USER 'oozie'@'%'IDENTIFIED BY '此处填写你的密码';
GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'%';
FLUSH PRIVILEGES;
exit;
10、安装mysqljdbc驱动
在终端中执行如下指令:
yum install mysql-connector-java
安装的过程会让用户输入一次“y”,结果如图3-68所示。
图3-68安装mysqljdbc驱动
3.3.4 为所有节点安装JDK
笔者使用的JDK版本为 "1.8.0_131",请读者自行到官网下载JDK文件。笔者的下载路径为/root/下载/
1、新建java8文件夹
在终端中输入如下命令:
cd /opt
mkdir java8
2、将tar.gz文件拷贝到java8目录下
终端中输入如下命令:
cp /root/下载/jdk-8u131-linux-x64.tar.gz /opt/java8 #此处可以修改为想要安装的其他路径,但是不建议放在/目录下,有可能会报错。
3、解压JDK文件
进入/opt/java8文件夹。在终端中输入如下命令:
cd /opt/java8
解压文件,在终端中输入如下命令:
tar -zxvf jdk-8u131-linux-x64.tar.gz
4、配置java环境
在终端中输入如下命令:
gedit ~/.bashrc
然后在文档的末尾加入
#java
export JAVA_HOME=/opt/java8/jdk1.8.0_131
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
然后点击ctrl+s保存后关闭文件
为了使配置文件立即生效,在终端输入如下命令:
source ~/.bashrc
5、测试是否安装成功
终端中输入如下命令:
java -version
出现如下信息:
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
则表示安装成功。如果没有出现这些信息,请尝试关闭当前终端窗口,然后重新打开一个终端窗口进行测试。
3.3.5 所有节点修改Python的配置文件
在终端中执行如下指令:
gedit /etc/python/cert-verification.cfg
原配置文件如下:
# Possible values are:
# 'enable' to ensure HTTPS certificate verification is enabled by default
# 'disable' to ensure HTTPS certificate verification is disabled by default
# 'platform_default' to delegate the decision to the redistributor providing this particular Python version
# For more info refer to https://www.python.org/dev/peps/pep-0493/
[https]
verify=platform_default
将verify=platform_default参数修改为verify=disable
保存退出。
3.3.6 安装Ambari-2.6.2.0
在终端中输入如下命令:
cd /etc/yum.repos.d/
yum install ambari-server
输入2次“y”
结果如图3-68所示。
图3-68安装Ambari-2.6.2.0
输入命令:
ambari-server setup
系统会提示输入“n”,但是要输入“y”.
Customize user account for ambari-server daemon [y/n] (n)?
然后,系统会提示
Enter user account for ambari-server daemon (root):
按回车键
接下来,会让用户检查JDK版本
Checking JDK...
[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8
[2] Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files 7
[3] Custom JDK
==============================================================================
Enter choice (1): 3
因为我们自己安装了java环境,所以我们输入:3
然后系统会提示用户输入自己所安装的java环境的路径
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: /opt/java8/jdk1.8.0_131
此处我们的JDK路径为/opt/java8/jdk1.8.0_131
输入后点击回车。
然后,系统会提示:
Enter advanced database configuration [y/n] (n)?
输入:y
接下来,系统会提示:
Configuring database...
==============================================================================
Choose one of the following options:
[1] - PostgreSQL (Embedded)
[2] - Oracle
[3] - MySQL
[4] - PostgreSQL
[5] - Microsoft SQL Server (Tech Preview)
[6] - SQL Anywhere
此处我们安装了MySQl数据库,所以选择3,数据库的密码我们设置为 “此处填写你的密码”,密码需要输入两次,其他的设置如果和括号中默认的设置相同,就直接回车,如果不同,就输入自己想要配置。比如Database Password 你可以不用bigdata,那么就在Enter Database Password(bigdata):后输入我们想要设置的密码。
Enter choice (1): 3
Hostname (localhost):
Port (3306):
Database name (ambari):
Username (ambari):
Enter Database Password (bigdata):
Re-enter password:
然后系统会提示警告:
WARNING: Before starting Ambari Server, you must run the following DDL against the database to create the schema: /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
Proceed with configuring remote database connection properties [y/n] (y)?
此处输入y
然后系统提示:
Extracting system views...
Adjusting ambari-server permissions and ownership...
Ambari Server 'setup' completed successfully.
将Ambari数据库脚本导入到数据库.如果使用自己定义的数据库,必须在启动Ambari服务之前导入Ambari的sql脚本,在终端中输入如下命令:
mysql -u ambari -p
输入密码此处填写你的密码
use ambari
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
exit
最后如图3-69所示。
图3-69将Ambari数据库脚本导入到数据库
接下来输入命令:
ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar
系统在终端中返回如下信息:
Using python /usr/bin/python2
Setup ambari-server
Copying /usr/share/java/mysql-connector-java.jar to /var/lib/ambari-server/resources
JDBC driver was successfully initialized.
Ambari Server 'setup' completed successfully.
在启动ambari-server之前,将主节点的私钥文件拷贝到主节点的/root下,在终端中执行如下指令:
cp ~/.ssh/id_rsa /root
将主节点下/etc/yum.repos.d的hdp.repo文件复制到两个从节点/etc/yum.repos.d文件夹下,在终端中执行如下指令:
scp /etc/yum.repos.d/hdp.reporoot@c205-002:/etc/yum.repos.d/
scp /etc/yum.repos.d/hdp.reporoot@c205-003:/etc/yum.repos.d/
结果如图3-70所示。
图3-70将主节点的私钥文件拷贝到主节点的/root下
其他每个节点要执行的命令和注意事项:
打开终端,在终端中执行如下指令:
cd
yum install git git-core
注意:安装之前一定要拔掉优盘!不然有可能会报错。
3.3.7 启动ambari-server并使用HDP部署分布式计算环境
1、启动ambari-server
首先每个节点都切换到英文,然后重新登录root用户。
登录之后,系统会提示是否更新文件夹的名字,选择不更新。由于更新之后文件的路径会有变化,所以不推荐更新文件夹的名字。接下来,在主节点上启动ambari-server,终端中输入如下命令:
ambari-server start
结果如图3-71所示。
图3-71启动ambari-server
2、HDP部署分布式计算环境
打开浏览器输入http://c205-001:8080
因为我们已经配置了hosts文件,所以直接输入c205-001:8080就可以进入到ambari的登录界面,也可以通过输入http://192.168.10.201:8080来进入ambari的登录界面。
默认的用户名和密码都是admin,登录界面如图3-72所示。
图3-72 浏览器访问http://c205-001:8080
输入用户名和密码后点“sign in",登录后的界面如图3-73 所示。
图3-73 Ambari登录成功后的界面
点击“Launch Install Wizard”按钮,如图3-74所示,给集群取一个名字。
图3-74 输入集群的名字
笔者给集群命名为clusterc205,然后点击“Next”
然后选择HDP2.6,在Advanced Repository Options中我们选择redhat7,因为centos7是基于redhat7的,如图3-75所示。
图3-75 选择HDP的版本
将redhat7后的两个网址作替换,
http://192.168.10.201/ambari/HDP/centos7/2.6.3.0-235
http://192.168.10.201/ambari/HDP-UTILS
替换后如图3-76所示:
这是为了让HDP使用本地文件安装,免于在线安装,因为在线安装成功的几率很小,对网速要求很高,一旦网络出现问题,就会导致整个文件下载失败,HDP整个文件6G以上,下载需要的时间比较长,读者需要保持耐心。
若出现一直卡在此处的情况,返回查看/var/www/html/ambari文件夹及其内部文件的权限是否为root可读写。
替换完链接地址之后点击“Next”。
图3-76 替换链接地址
Target Hosts填写要求Enter a list of hosts using the Fully Qualified Domain Name (FQDN)
所以应填写如下内容:
c205-001.hadoop
c205-002.hadoop
c205-003.hadoop
勾选“Provide your SSH Private Keyto automatically register hosts”选项,如图3-77所示,SSH User Account选择为root,(注意:Perform manual registration on hostsand do not use SSH 的选项不要选择,这样ambari会自动的安装ambari-agent到从节点。如果自己已经在从节点安装好了ambari-agent可以选择此项。)点击图中的“浏览”按钮,选择“root”下的“id_rsa”文件。
图3-77选择SSH Private Key
然后点击图3-77中的“Register and Comfirm”按钮,结果如图3-78所示。
图3-78 ComfirmHoste
注册(Register)完成后,在“Next”按钮的上侧,会出现一行英文提醒,点击“Click here to see the check results”。
然后将里面的警告全部解决。例如:
需要主节点卸载ntfs-3g:
yum remove ntfs-3g
可能有部分节点需要重新启动ntpd等:
systemctl is-enabled ntpd
systemctl enable ntpd
systemctl start ntpd
解除这些警告后,点击Return Checks 后Host Checks会显示全部都是对勾,没有感叹号,如图3-79所示,然后点击“Close”。
图3-79 解除所有警告
接下来开始选择想要安装的服务,此处笔者只选择了部分需要的服务,如图3-80和3-81所示。然后点击“Next”。
图3-80 选择想要安装的服务
图3-81 选择想要安装的服务(接图3-80)
因为数据库安装在c20-001上,所以Hive Metastore和HiveServer2的安装位置选择c205-001,如图3-82所示,然后点击“next”。
图3-82 选择Hive Metastore和HiveServer2的安装位置
Assign Slaves and Clients的选择,如图3-83和3-84所示。
图3-83 Assign Slaves and Clients的选择
图3-84 Assign Slaves and Clients的选择(接图3-83)
如果HDFS和YARN服务中有红色的警告,去掉HDFS和YARN中的/home,警告就会消失,如图3-85所示。
图3-85去掉HDFS和YARN服务中警告后的结果
Hive安装的时候需要设置数据库的相关信息,选择已有的MySQL数据库,然后输入之前为Hive设置的密码。
接着按照如图3-86所示进行选择,将页面拉到底部,点击“Next”,进行下一步的配置。然后点击“Hive”的“Advanced”,“Hive Database”选择“Existing MySQL Database”。
图3-86 Hive的设置
输入之前MySQL数据库安装时Hive数据库的用户名和密码等信息,点击“Test Connection”,显示连接成功。结果如图3-87所示。
图3-87 连接数据库成功
将页面拉到底部,点击"Next ",进行Review的配置。如图3-88所示。
图3-88 Review界面
点击"Deploy "后,会出现进度条,如图3-89所示。
图3-89准备开始部署
进度条结束后,HDP开始部署。界面如图3-90和3-91所示。[海川1] [xy2]
图3-90 HDP开始部署
每个节点的部署进度是不同的,这是由于每个节点部署的服务和机器性能不同造成的,整个部署过程的时间是比较长的,部署完成的时间取决于服务器的性能,部署进度较慢,也不需要担心。部署过程在网络没有问题的前提下很少出现错误。笔者这一步大概花费了3个小时的时间。
图3-91 HDP部署过程过半
HDP部署完成,如图3-92所示。
图3-92 HDP部署完成
注意:不需要使用分布式计算环境的时候,可以用STOP ALL 来停止所有服务,如图3-93所示。不要在完成停止所有服务之前,直接关闭服务器,这样的行为和服务器突然断电都很有可能造成文件损坏,很难修复,有时候只能用重装来解决,这样做的代价会很大。
图3-93用Stop ALL 来停止所有服务
我们可以使用“Stop All”和“Start All”来关闭和开启集群的服务,关闭集群的服务后,可以关闭集群的服务器,正常开启集群后,再次“Start All”来开启所有服务,所有的警告都会在服务全部开启后自动消失。但是如果集群突然断电,有些服务可能会难以正常开启,只能够通过重装系统和HDP平台来解决。所以,使用完集群后可以选择停止所有服务,然后关闭集群的服务器。
通过Add Service可以为集群添加服务。[海川3] [xy4] 比如为这个集群添加Mahout,Spark等服务,当然,这些服务不一定要在每个节点上都添加,我们在添加的过程中,可以选择哪些节点添加服务。
如图3-94所示,可以通过Add Hosts为集群添加新节点,也就是添加新的服务器到集群中。但是一定要和集群现在的服务器系统保持一致,比如,至少都需要是centos7 ,更细致的版本可以稍有差别,但不可以是centos6或者Ubuntu的系统。
图3-94通过Add Hosts可以为集群添加新节点
安装完成之后切换到中文,HDP平台也是可以正常使用的。由于现在的系统语言是英文,采用yum install 指令安装软件的时候,默认是在国外的服务器选择安装源,但是国内的网络不能随意的访问外网,所以会显示安装失败。
切换回中文后,因为之前安装HDP和Ambari改变了系统的源,所以如果安装软件显示失败的话,在终端中执行如下指令:
yum install epel-release --nogpgcheck
3.3.8 集群以及已安装服务的相关信息
Admin Name : admin
Cluster Name : clueter1
Total Hosts : 3 (3 new)
Repositories:
redhat7 (HDP-2.6): http://192.168.10.201/ambari/HDP/centos7/2.6.3.0-235
redhat7 (HDP-UTILS-1.1.0.21): http://192.168.10.201/ambari/HDP-UTILS
Services(已安装的服务):
HDFS
DataNode : 2 hosts
NameNode : c205-001.hadoop
NFSGateway : 0 host
SNameNode : c205-002.hadoop
YARN + MapReduce2
App Timeline Server : c205-002.hadoop
NodeManager : 1 host
ResourceManager : c205-002.hadoop
Tez
Clients : 3 hosts
Hive
Metastore : c205-001.hadoop
HiveServer2 : c205-001.hadoop
WebHCatServer : c205-001.hadoop
Database : Existing MySQL / MariaDB Database
Pig
Clients : 3 hosts
ZooKeeper
Server : 3 hosts
Ambari Metrics
Metrics Collector : c205-003.hadoop
Grafana : c205-001.hadoop
SmartSense
Activity Analyzer : c205-001.hadoop
Activity Explorer : c205-001.hadoop
HST Server : c205-001.hadoop
Spark
Livy Server : 1 host
History Server : c205-001.hadoop
Thrift Server : 1 host
Spark2
Livy for Spark2 Server : 1 host
History Server : c205-001.hadoop
Thrift Server : 1 host
Mahout
Clients : 3 hosts
Slider
Clients : 3 hosts
[海川1]两图之间加点内容
[xy2]已修改
[海川3]扩充点内容
[xy4]已修改