Ambari 跟 Hadoop 等开源软件一样,也是 Apache Software Foundation 中的一个项目,并且是顶级项目。目前最新的发布版本是 2.5.1。就 Ambari 的作用来说,就是创建、管理、监视Hadoop 的集群,但是这里的 Hadoop 是广义,包括的是 Hadoop 整个生态圈(例如 Hive,Hbase,Sqoop,Zookeeper 等)。用一句话来说,Ambari 就是为了让Hadoop以及相关的大数据软件更容易使用的一个工具。
Ambari 现在所支持的平台组件也越来越多,例如流行的 Spark,Storm 等计算框架,以及资源调度平台 YARN 等,我们都能轻松地通过 Ambari 来迚行部署。Ambari 自身也是一个分布式架构的软件,主要由两部分组成:Ambari Server 和 AmbariAgent。简单来说,用户通过 Ambari Server 通知 Ambari Agent 安装对应的软件;Agent 会定时地发送各个机器每个软件模块的状态给 Ambari Server,最终这些状态信息会呈现在 Ambari 的GUI,方便用户了解到集群的各种状态,并进行相应的维护。
温馨提示:安裝此平台,建议先将文章末尾的7大坑先看一遍,先填坑,再干活,避免中途各种崩溃
操作系统: CentOS7 64 位
- JDK:1.8.0_191 64 位
- Ambari:2.2.1.0
- HDP:2.4.0.0-centos7
- HDP-UTILS:1.1.0.20
Ambari:
http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.2.1.0/ambari-2.2.1.0-centos7.tar.gzHDP-UTILS:
http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos7/HDP-UTILS-1.1.0.20-centos7.tar.gzHDP-2.4.0:
http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.4.0.0/HDP-2.4.0.0-centos7-rpm.tar.gzps: https://docs.hortonworks.com 去这个地址下寻找自己想要的东西
因为Ambari安装会将安装等信息写入数据库,建议使用自己安装的MySQL数据库,也可以不安装而使用默认数据库PostgreSQL。
Mysql服务安装文档: https://blog.csdn.net/weixin_38822045/article/details/9144725
安装Mysql Jdbc 驱动:
yum install -y mysql-connector-java
5.1、创建必要的Ambari数据库和数据库用户
安装完成后创建Ambari数据库及用户,登录root用户执行下面语句:
create database ambari character set utf8;
CREATE USER 'ambari'@'%' IDENTIFIED BY 'ambari-1234';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';
FLUSH PRIVILEGES;
5.2、如果要安装Hive,再创建Hive数据库和用户 再执行下面的语句:
create database hive character set utf8;
CREATE USER 'hive'@'%' IDENTIFIED BY 'hive-1234';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';
FLUSH PRIVILEGES;
5.3、如果要安装Oozie,再创建Oozie数据库和用户 再执行下面的语句:
create database oozie character set utf8;
CREATE USER 'oozie'@'%' IDENTIFIED BY 'oozie-1234';
GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'%';
FLUSH PRIVILEGES;
6.1、配置主机名:修改每一台机器上的/etc/hosts文件:
vi /etc/hosts
192.168.1.212 bigdata001
192.168.1.214 bigdata002
192.168.1.215 bigdata003
6.2、设置ntpd自动启动,所有机器(时间同步服务)
没有安装ntpd的机器,用yum命令安装一下:
yum install -y ntp
停止ntp服务:service ntpd stop
设置时间同步,所有机器
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ntpdate us.pool.ntp.org
6.3、使用crontab -e 添加一个新的定时任务,在弹出的新文件编辑框中输入:
*/15 * * * * ntpdate us.pool.ntp.org
保存退出,会提示增加了一个新的任务,上面代表(每间隔15 分钟向时间服务器192.168.1.111 同步一次时间)
设置服务开机启动:systemctl enable ntpd
启动服务:systemctl start ntpd
6.4、关闭SeLinux,所有机器
修改配置:
vi /etc/sysconfig/selinux
selinux=disabled
6.5、关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
6.6、配置服务器之间免密登录:
在三台服务器按顺序执行一遍
ssh-keygen -t rsa
ssh-copy-id bigdata001
ssh-copy-id bigdata002
ssh-copy-id bigdata003
略
下载HortWorks官网上的3个库到本地(也可以在线下载,但是速度会很慢)。我们先把hortworks官网上需要下载的3个库下载到本地(这个还是需要很长时间的,当然你也可以在线下载,通过wget但是由于文件比较大,所以下载会非常慢)然后把他上传到我们的镜像服务器上。 按照第三步骤,下载完毕后,有如下的安装包 ↓
9.1、在Ambari.Server上配置httpd服务:(自己选择的一个节点)
yum install -y httpd
9.2、把下载到的3个资源文件,上传到Ambari.Server,并解压到制定目录:
mkdir /var/www/html/ambari-hdp mkdir /var/www/html/ambari-hdp/HDP-UTILS tar -xvf ambari-2.2.1.0-centos7.tar.gz -C /var/www/html/ambari-hdp/ tar -xvf HDP-2.4.0.0-centos7-rpm.tar.gz -C /var/www/html/ambari-hdp/ tar -xvf HDP-UTILS-1.1.0.20-centos7.tar.gz -C /var/www/html/ambari-hdp/HDP-UTILS
9.3、启动Httpd服务:
systemctl start httpd
9.4、通过浏览器访问本地资源地址,如果能看到以下页面,则表示配置成功
备注:此处访问,在Uclound云服务器安装的时候,访问可能无法访问,通过外部页面,无法访问,可是使用CURL命令在Linux服务器内网访问,如果访问的时候,结果返回403,详情见下面博客,解决方案是,对/var/www目录下使用级联授权,授所有权限!!!如果页面无法访问,就通过CRUL通过内网访问,如果可以,页面不能访问也没有关系。【因为使用依赖资源,是通过内网拉取的】
https://blog.csdn.net/weixin_38822045/article/details/94388663
10.1、在ambari.server上执行:(三台服务器都操作一遍,起始操作点,Begin)
yum install -y yum-plugin-priorities
A)、修改Yum安装源的校验
vi /etc/yum/pluginconf.d/priorities.conf
设置为以下内容
[main]
enabled=1
gpgcheck=0
B)、制作本地资源文件
创建Ambari、HDP、HDP-UTIL资源文件:
ambari.repo
[ambari-2.2.1.0]
name=ambari-2.2.1.0
baseurl=http://192.168.1.212/ambari-hdp/AMBARI-2.2.1.0/centos7/2.2.1.0-161
gpgcheck=0
gpgkey=http://192.168.1.212/ambari-hdp/AMBARI-2.2.1.0/centos7/2.2.1.0-161/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
HDP.repo
[HDP-2.4.0.0]
name=Hortonworks Data Platform Version - HDP-2.4.0.0
baseurl=http://192.168.1.212/ambari-hdp/HDP/centos7/2.x/updates/2.4.0.0
gpgcheck=0
gpgkey=http://192.168.1.212/ambari-hdp/HDP/centos7/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
HDP-UTILS.repo
[HDP-UTILS-1.1.0.20]
name=Hortonworks Data Platform Version - HDP-UTILS-1.1.0.20
baseurl=http://192.168.1.212/ambari-hdp/HDP-UTILS/HDP-UTILS-1.1.0.20/repos/centos7
gpgcheck=0
enabled=1
priority=1
C)、制作完成后,移动到/etc/yum.repos.d/;依次执行以下命令,更新本地资源池:
yum clean all
yum update list
yum makecache
D)、等待更新完毕后,查看资源池:
yum repolist
如果在三台服务器上都看到以下资源,表示配置成功:(三台服务器操作结束:End)
备注:上述文件文件,标记为红色192.168.1.212加粗的iP即为安装httpd 服务器存放资源服务的地址【如果有内网地址,最好写内网IP,因为内网通信快】。使用时候直接拷贝整个配置,替换自己的IP即可,许下都不用修改。
11.1、执行安装命令:
yum install -y ambari-server
安装过程无需互动
11.2、如果提示找不到KEY,则执行如下命令:
rpm --import /var/www/html/ambari-hdp/AMBARI-2.2.1.0/centos7/2.2.1.0-161/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
11.3、将Ambari数据库脚本导入到数据库。
Ambari安装会将安装等信息写入数据库,建议使用自己安装的MySQL数据库,也可以不安装而使用默认数据库PostgreSQL。如果使用自己定义的数据库,必须在启动Ambari服务之前导入Ambari的sql脚本。
用root用户登录mysql
mysql -u root -p
mysql> use ambari;
mysql> source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql;
12.1、执行配置命令:
ambari-server setup
12.2、提示是否自定义设置?输入:y
Customize user account for ambari-server daemon [y/n] (n)? y
12.3、Ambari-server 账号。输入:root
Enter user account for ambari-server daemon (root): root
Adjusting ambari-server permissions and ownership......
12.4、检查防火墙,如果关闭则不用操作。
Checking firewall status...
Redirecting to /bin/systemctl status iptables.service
12.5、设置JDK。输入:3。 【3是选择安装自己的JDK】
Checking JDK...Do you want to change Oracle JDK [y/n] (n)? y
[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
12.6、如果上面选择3自定义JDK,则需要设置JAVA_HOME。输入:【找到自己的JAVA_HOME路径】
/mnt/jdk1.8.0_191
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/local/jdk/jdk1.8.0_131
Validating JDK on Ambari Server...done.
Completing setup...
12.7、数据库配置。选择:y。
Configuring database...Enter advanced database configuration [y/n] (n)? y
12.8、选择数据库类型。输入:3。
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
==========================================
Enter choice (1): 3
12.9、设置数据库的具体配置信息,根据实际情况输入,如果和括号内相同,则可以直接回车。
Hostname (localhost): ambari.server
Port (3306):
Database name (ambari):
Username (ambari):
Enter Database Password (ambari-1234):
提示必须安装MySQL JDBC,如果执行了上述第五步,已安装则直接通过【忽略这一步】。如果开始没有安装,需要运行下面2命令
WARNING: Before starting Ambari Server, you must copy the MySQL JDBC driver JAR file to /usr/share/java.
Pressto continue.
运行这两条命令(所有节点)
yum provides '*/applydeltarpm'
yum install deltarpm
ambari-server start【status、stop】
启动后在浏览器输入Ambari地址:
http://192.168.1.212:8080/#/login
13.1、看到如下页面,则表示安装成功:
进入Ambari配置管理页面:
用户名:admin
密码: admin
登录成功进入以下页面:点击第一个图标,
因为搭建的是本地源:需要修改本地源
上述配置文件的URL分别对应第9步骤,配置Yum本地Repos资源池的HDP.repo的baseurl和HDP-UTILS.repo的baseurl。
然后配置完毕后直接,点击下一步,输入服务器的hostname(一个一换行),不需要填写IP,然后,将第一台服务器下面文件夹下 /root/.ssh 下的文件 id_rsa文件内容全部复制到SSH免密框子中,然后点击下一步即可,一直点击下一步,余下详细不用赘述,都是一键式安装。最终效果图如下:↓
______________________________________________分割线________________________________________________
注意事项:安装上述平台所有操作为了出错,请先完成所有注意事项的阅读:
第一坑:
Ps: 安装ambari-agent
将ambari.server上的3个.repo文件复制到hadoop集群的三台服务器上;并完成yum源更新的命令。
第二坑:
需要更改服务器最大文件打开数为65535
echo "* soft nofile 65536" >> /etc/security/limits.conf
echo "* hard nofile 65536" >> /etc/security/limits.conf
第三坑:
vi /etc/python/cert-verification.cfg
[https]
verify=disable
修改vi /etc/ambari-agent/conf/ambari-agent.ini
添加在 [security] 下 force_https_protocol=PROTOCOL_TLSv1_2
第四坑:
如果报错:Could not initialize class javax.crypto.JceSecurity
到http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html下载,解压后替换JAVA_HOME/jre/lib/security下边的local_policy.jar和US_export_policy.jar两个jar包,如果没有直接,放里面即可。
下面是本人百度云盘下载,提供的链接
链接:https://pan.baidu.com/s/1PpBbMT6xzR-RnJPpOW3vrQ
提取码:fpie
第五坑:
报错:SSLError: Failed to connect. Please check openssl library versions.
修改三个节点的,vi /etc/ambari-agent/conf/ambari-agent.ini 配置文件,
在 [security] 节部分,确保设置如下两个值,其它值保持不变:
[root@ambari ~]# vi /etc/ambari-agent/conf/ambari-agent.ini
[security]
ssl_verify_cert=0
force_https_protocol=PROTOCOL_TLSv1_2
保存退出,重启 ambari-agent:
[root@ambari ~]# ambari-agent restart
第六坑:
上述过程中由于自已已经安装了MYSQL 所以在安装Hive时候,需要存储Hive元数据,会默认指定安装在服务器2上面,
这样会导致 安装特别慢,并且会一直下载不下来,所以需要修改HIVE安装时的配置,将Hive的组件MetaStore元数据组件,选在你自己的Mysql安装的服务器上,然后,选择以安装的Mysql数据库,自己指定自己安装mysql的地址,安装的用户名,密码,然后测试连接,如果连接通过,即可。进行下一步.........
第七坑:
SSH 突然 不能使用和启动
解决办法:
sshd -t
查看具体报错信息
/var/empty/sshd must be owned by root and not group or world-writable
查看应该和权限相关。
登录一台正常的机器查看, /var/empty/sshd 权限为711
而客户/var/empty/sshd 权限为777
chmod 711 /var/empty/sshd #修改权限为711
尝试启动ssh服务成功由此可知,并不是所有的都能随便给所有权限,很容易出错
参考博客:https://www.huangfh.cn/1050.html
重要说明:
上述安装完毕之后,会选择组件进行安装,根据你对Hadoop大数据生态圈的组件需求,可以自行选择组件安装,比如集群,或者单节点,均可选择,第一次不要选太多组件,避免安装过成功一个组件无法启动,后续无法进行,刚开始安装,可以选择基础组件,后续平台稳定后,按照需求自行添加。
只要安装成功之后,就可以一个个的启动和测试,启动时分别查看各组件的执行日志。根据错误日志进行排错,然后一步一步的解决,启动。切勿只看页面状态,GUI页面能查到的信息太少,需要进入服务器,进入/val/log文件下进行组件间的日志查看,更好的排错!!!
切记
安装大数据平台初期,最好先给足资源配置,切勿开始资源不够,后续在扩容,因为HDP平台会更具第一次资源安装的时候,进行资源分配,所有配置都免不用手动分配,都是系统分配,但是后续扩容,HDP平台配置沒有动态扩容能力,手动去扩容资源,一个个组件的修改配置文件,非常容易出错。
如果有任何疑问,请欢迎留言探讨.........