ambari2.7.3+hdp3.1.0 集群搭建
一、基本环境设置
a、VMware14.0安装包
http://bigsoft.zdfans.wang/VMware_5928.zip
b、CentOS-7-x86_64-Minimal-1810.iso
http://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso
c、win10下VMware安装CentOS7并配置⽹络教程
配置内核为4,磁盘空间为30G ,内存为2~4G都可以!
https://blog.csdn.net/zyq_2014/article/details/79692181
d、安装好主节点后打开修改主机名
hostname 主机名
vi /etc/hostname 修改主机名
hostnamectl set-hostname 主机名
e、关机,克隆。修改另外三个从节点的ip和主机名。
虚拟机访问地址
192.168.154.20
192.168.154.21
192.168.154.22
192.168.154.23
二、每个节点host设置
主机名最好符合规范,否则主机注册会出现问题。命名参考如下:
192.168.154.20 master1.xd.edu.cn
192.168.154.21 slave1.xd.edu.cn
192.168.154.22 slave2.xd.edu.cn
192.168.154.23 slave3.xd.edu.cn
补充:
修改主机名方法:
a、hostname 主机名
b、vi /etc/hostname 修改主机名
c、hostnamectl set-hostname 主机名
c、vi /etc/hosts 完成ip和域名的映射
三、操作系统环境准备
3.1 配置ssh免密登录
https://blog.csdn.net/l1394049664/article/details/82528372
a、在所有节点上创建目录并赋予权限
mkdir /root/.ssh
chmod 700 /root/.ssh
b、在主节点上生成公钥
cd ~
#进入用户目录
ssh-keygen -t rsa -P “”
#这是生成ssh密码的命令,-t 参数表示生成算法,有rsa和dsa两种;-P表示使用的密码,这里使用""空字符串表示无密码。
#回车后,会提示输入信息,我们直接回车即可。这样就在~/.ssh目录下生成了几个东西
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
#这个命令将id_rsa.pub的内容追加到了authorized_keys的内容后面。
c、把公钥传送到需要免密钥登录的节点
scp authorized_keys slave1.xd.edu.cn:/root/.ssh/
scp authorized_keys slave2.xd.edu.cn:/root/.ssh/
scp authorized_keys slave3.xd.edu.cn:/root/.ssh/
**备注:**在传输的过程中需要去用到node2和node3的密码,不过只使用一次,以后再使用ssh node2或者ssh node3即不在需要密码,实现免密钥登录
3.2、开启ntp服务
所有节点上都需要执行以下操作
yum install ntp
systemctl is-enabled ntpd
systemctl enable ntpd
systemctl start ntpd
systemctl status ntpd
3.3 检查DNS,配置FQDN
所有节点都要检查,并配置FQDN(所有节点)
配置FQDN,如下以主节点为例
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=xd1.edu.cn
3.4 关闭防火墙
所有节点都要设置(以主节点为例)
systemctl disable firewalld
systemctl stop firewalld
3.5 关闭SELinux
所有节点都要设置(以主节点为例)
查看SELinux的状态:
修改配置文件为disabled需要重启机器:
vi /etc/sysconfig/selinux
四、制作本地源
制作本地源只需要在主节点上进行即可
4.1相关工作准备
4.1.1 安装Apache HTTP服务器
安装HTTP服务器,允许http服务通过防火墙(永久)

添加Apache服务到系统层随系统自动启动
systemctl start httpd.service
systemctl enable httpd.service
4.1.2 安装本地源制作相关工具
yum install yum-utils createrepo
4.2下载安装资源 (稳定版下载包路径)
Ambari 2.7.1 Repositories
| OS | Format | URL |
|---|---|---|
| RedHat 7 CentOS 7 Oracle Linux7 | Base URL | http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.1.0 |
| Repo File | http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.1.0/ambari.repo | |
| Tarball md5 | asc | http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.1.0/ ambari-2.7.1.0-centos7.tar.gz |
HDP 3.0.1 Repositories
| OS | Version Numbe | Repository Name | Format | URL |
|---|---|---|---|---|
| RedHat 7CentOS 7Oracle Linux7 | HDP-3.0.1.0 | HDP | Base URL | http://public-repo-1.hortonworks.com/HDP/centos7/3.x/ updates/3.0.1.0 |
| Repo File | http://public-repo-1.hortonworks.com/HDP/centos7/3.x/ updates/3.0.1.0/hdp.repo | |||
| Tarball md5 | asc | http://public-repo-1.hortonworks.com/HDP/centos7/3.x/ updates/3.0.1.0/HDP-3.0.1.0-centos7-rpm.tar.gz | |||
| Version Definition File | http://public-repo-1.hortonworks.com/HDP/centos7/3.x/ updates/3.0.1.0/HDP-3.0.1.0-187.xml | |||
| HDP-UTILS | Base URL | http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.22/ repos/centos7 | ||
| Tarball md5 | asc | http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.22/ repos/centos7/HDP-UTILS-1.1.0.22-centos7.tar.gz |
在httpd网站根目录,默认是即/var/www/html/,创建目录ambari。将ambari-2.7.3、HDP 3.1.0和HDP-UTILS-1.1.0.22-centos7.tar.gz放入ambari文件夹下,并在该文件夹下进行解压。
tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz
验证httpd网站是否可用,用浏览器直接访问主节点的地址,如果能看到目录列表就表示成功:
http://192.168.154.20/ambari/
(刚开始访问不到该页面,可能是httpd.service服务没有开启),开启该服务
4.3配置ambari、HDP、HDP-UTILS的本地源
首先下载上面资源列表中的相应repo文件,修改其中的URL为本地的地址,相关配置如下:
ambari.repo
hdp.repo
将上面的修改过的源放到/etc/yum.repos.d/下面
4.4安装Mysql数据库
Ambari安装会将安装等信息写入数据库,建议使用MariaDB数据库,也可以不安装而使用默认数据库PostgreSQL。

开启数据库,并检查开启的状态:
数据库初始化设置:
首先是设置密码,提示先输入密码,初次运行直接回车
是否为root用户设置密码,输入y并回车
设置root用户的密码,再次输入设置的密码,显示成功!
是否删除匿名用户,直接回车
是否禁止root远程登录,直接回车
是否删除test数据库,直接回车
是否重新加载权限表,直接回车!
以上完成了初始化mariadb,接下来测试登录,输入密码能正常登录就完成了。(本次搭建密码为ambari)
4.5 创建数据库及用户
安装完成后创建ambari数据库及用户,登录数据库root用户后执行下面的语句:
创建数据库,并创建使用者的用户名和密码
为新创建的ambari用户分配权限,之后刷新权限;
4.6 安装mysql jdbc驱动
一般默认的安装路径:/usr/share/java/mysql-connector-java.jar 如果发现不是,将其拷贝到该路径:
yum install mysql-connector-java
3.7 安装jdk
每个节点上都安装!
Java SE Development的下载地址:
http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk8-downloads-2133151-zhs.html
下载jdk-8u112-linux-x64.tar.gz,再执行以下的命令:
安装jdk,并配置环境变量:
解压jdk,tar –zxvf jdk-8u112-linux-x64.tar.gz
配置环境变量:
重启配置,使得配置文件生效:
五、安装Ambari
5.1 安装Ambari 2.7.3
5.1.1 安装Ambari
5.1.2 配置Ambari
下面是配置流程
1、检查SELinux是否关闭,如果关闭不用操作
2、提示是否自定义设置,输入:y
3、ambari-server账号,输入:ambari
4、检查防火墙的状态(如果后续页面无法打开,查看防火墙是否关闭)
5、设置JDK,输入:3
6.如果上面选择3自定义JDK,则需要设置JAVA_HOME。输入:/opt/java/jdk1.8.0_112
7.数据库配置。选择:y
8.选择数据库类型。输入:3
9.设置数据库的具体配置信息,根据实际情况输入,如果和括号内相同,则可以直接回车。(之前配置过ambari用户的密码是ambari,但是此次显示是bigdatga,所以自己改为了ambari)
10.提示必须安装MySQL JDBC,输入y,回车结束ambari配置
11.将Ambari数据库脚本导入到数据库
5.1.3 启动ambari
执行启动命令,启动ambari服务
成功启动后在浏览器中输入ambari地址:http://192.168.154.20:8080 启动成功
出现登录界面,默认管理员账户登录,账户:admin 密码:admin
登录成功后出现上面的界面,至此Ambari的安装成功 。
5.1.4 安装ambari-agent
ambari-agent的功能:
采集所在节点的信息并且汇总发心跳汇报给ambari-server;
处理ambari-server的执行请求。
将hdp.repo文件和ambari.repo两个文件放在所有节点上,如果没有这一步,agent无法安装成功:

之后在每台节点上安装ambari-agent
在每台节点上修改 vi /etc/ambari-agent/conf/ambari-agent.ini文件,指定服务器为master1.xd.edu.cn
启动ambari-agent
ambari-agent start
六:配置hdp集群
5.1 创建集群
5.2 Select Version
本次使用本次源,库选择redhat7,其余移除。版本选择使用add version 上传HDP-3.1.0.0-78.xml文件。 勾选下方的use Rethat 点击next:
5.3 Install Options
配置主机节点,上传id_rsa文件(主机节点对应于/etc/hosts文件下的主机,不能使用ip),私钥在主节点的/root/.ssh/id_rsa下。重要一点是勾选Perform。网上很多都不勾选,但是这样表示自动在节点上安装ambari-agent,但其实很多时候会出错。之前已经在节点上安装了ambari-agent,所以这勾选表示手动安装。
5.3 Confirm Hosts
注册成功后要解决掉出现的所有警告。
解决警告的办法:
a、查看出现警告的服务
b、使用yum -y remove 警告在每台节点上都执行。例如:yum -y remove hdp-select
c、点击RERUN CHECK多等待几分钟,所有警告解除!
5.4 Choose Services
选择的服务越多,后面的安装会有很多问题,第一次安装可以只选择Hdfs服务即可。
5.5 Assign Master
有时候出现的不是上面正确的界面,会出现以下错误:
解决办法,很简单,应用如下的命令:
5.6 Assing Slaves and Clients
5.7 Customize Services
按提示点击下一步即可。
5.8 Review
点击next即可。
5.9 Install Start and Test
可能需要一定的安装时间。耐心等待!
5.10 Summary
至此,4节点的ambari+hdp集群搭建成功!
七、仪表盘服务开启
若开启服务过程中出错,无法成功,检查四个节点的ntpd是否开启,若没开启会失败:
出错如下:
所有节点开启时间同步后,结果如下:
八、增加hive及spark2服务
8.1 新建hive数据库
mysql -u root -p //root用户下新建hive数据库
create database hive;
CREATE USER ‘hive’@’%’ IDENTIFIED BY ‘hive’; //创建hive用户和用户的密码 hive
GRANT ALL PRIVILEGES ON . TO ‘hive’@’%’; //赋予hive用户所有权限
FLUSH PRIVILEGES; //刷新
8.2、mysql的jar包
执行下面语句:
ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar
测试连接,输入数据库hive用户的密码 hive,连接成功
补充:hive一定要安装在有mysql的主机上。否则无法连接成功!
成功后重新启动所有服务,界面如下;
8.3 新增spark2的服务
新增spark2的服务,成功安装
界面如下:
8.4、服务目录
ambari中服务的目录是/usr/hdp/3.1.0.0-78
配置文件的目录(以spark2为例)是:
或者是在/etc/spark2/conf 下:
九、启动spark2
进入到spark2的bin目录下,使用spark-shell启动;
启动spark后出错,报错如下:
**错误一:**启动Spark2 Thrift Server报错.Exception in thread “main” java.lang.IllegalArgumentException: Required executor memory (1024+384 MB) is above the max threshold (1024 MB) of this cluster! Please check the values of ‘yarn.scheduler.maximum-allocation-mb’ and/or ‘yarn.nodemanager.resource.memory-mb’.是spark启动内存不足,改yarn下的对应属性增加内存
- 解决方案:调整yarn相关参数配置 yarn.nodemanager.resource.memory-mb表示该节点上YARN可使用的物理内存总量。yarn.scheduler.maximum-allocation-mb表示单个任务可申请的最多物理内存量。两者都修改为1536MB。修改如下:
**错误二:**若遇到Hadoop HDFS的写入权限问题,问题如下:
解决方案一: 在所有节点下对hdfs-site.xml中添加如下配置,关闭权限验证
hdp的配置文件所在的目录是:/etc/hadoop/conf
将true改为false。
运用方案一就得对所有节点都改动。
解决方案二:在hdfs的界面上改动:
修改后重启hdfs服务。
之后重启spark后,成功