源码安装对于新手来说往往费时费力,搭建好hadoop环境之后,再搭建hadoop生态中其他工具就更具挑战;此外,搭建好之后对于生态工具的管理以及监控也是不小的挑战,因此ambari及CDH并应运而生。ambari及CDH的诞生极大简化了大数据集群的配置安装及监控管理。这篇文章以ambari大数据集群的安装配置为例,记录整个过程。
PS: 本文中用到的安装包均可从百度网盘获取:https://pan.baidu.com/s/1povy3VrUgNyd2ezWHbxFKA 提取密码: ufqd
前提假设:
1. 基础系统环境Centos 7.x,预备3台物理机或虚拟机或docker容器 //由于ambari安装比源码更耗资源,建议每台主机内存不少于4G,如果要加装其他工具,建议分配更大
由于资源有限,本次示例以docker容器方式安装,分别规划了master(172.18.0.251), worker1(172.18.0.252), worker2(172.18.0.253)三个容器
容器快速入门可参考地址: https://blog.51cto.com/taoismli/category8.html
2. 每台主机(容器)已配置好JDK
centos配置JDK可参考地址: https://blog.51cto.com/taoismli/1963896
3. 每台主机(容器)之间已配置相互之间免密码登录
centos配置免密登录可参考地址: https://blog.51cto.com/taoismli/2056275
4. 集群主机之间配置NTP,保障时间同步
centos配置NTP可参考地址: https://blog.51cto.com/taoismli/2494056
5. 每台主机禁用防火墙以及SELinux
配置方式可参考地址: https://blog.51cto.com/taoismli/2162750
6. Optional:安装MySQL数据库 //安装HIVE时,需要配置HIVE元数据库,可选择自定义的关系型数据库也可使用默认的postgre数据库
本次示例以docker实例了MySQL数据库作为HIVE元数据库
一)每台主机基础环境插件安装
yum install -y openssl
yum -y install ruby*
yum -y install redhat-lsb*
yum -y install snappy*
yum -y install gcc
二)编辑每台主机/etc/hosts文件,将所有主机的ip和主机名映射配置在文件中
三)配置本地源
a. 确保即将配置本地源的节点有安装http服务器,如果没有安装运行以下命令进行安装与设置运行服务通过防火墙:
yum install -y httpd firewall-cmd --add-service=http firewall-cmd --permanent --add-service=http //防火墙设置 systemctl start httpd.service //开启服务 systemctl enable httpd.service //设置开机启动
b. 安装本地源制作工具,运行以下命令:
yum install -y yum-utils createrepo
c. 在/var/www/html/目录下创建ambari目录,并将大数据安装包解压到该目录:
cd /var/www/html/mkdir ambari cd /var/www/html/ambari/tar -zxvf ambari-2.2.2.0-centos7.tar.gz tar -zxvf HDP-2.4.2.0-centos7-rpm.tar.gz tar -zxvf HDP-UTILS-1.1.0.20-centos7.tar.gz //安装包的版本以自行安装版本为准
d. 制作本地yum源文件
成功解压后,可通过url访问,然后根据自己版本编辑ambari.repo和hdp.repo源文件
url访问解压的包及目录路径
编辑yum源文件
ambari.repo
#VERSION_NUMBER=2.2.2.0-460 [Updates-ambari-2.2.2.0] name=ambari-2.2.2.0 - Updates baseurl=http://172.31.83.171/ambari/AMBARI-2.2.2.0/centos7/2.2.2.0-460 gpgcheck=1 gpgkey=http://172.31.83.171/ambari/AMBARI-2.2.2.0/centos7/2.2.2.0-460/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins enabled=1 priority=1
hdp.repo
#VERSION_NUMBER=2.4.2.0-258 [HDP-2.4.2.0] name=HDP Version - HDP-2.4.2.0 baseurl= gpgcheck=1 gpgkey= enabled=1 priority=1 [HDP-UTILS-1.1.0.20] name=HDP Utils Version - HDP-UTILS-1.1.0.20 baseurl= gpgcheck=1 gpgkey= enabled=1 priority=1
使配置生效
将ambari.repo和hdp.repo文件拷贝至/etc/yum.repo.d/目录,并执行以下命令:
yum clean all yum makecache
四)数据库的安装与配置
ambari安装会将安装信息写入数据库,建议是使用自己安装的MySQL数据库。MySQL安装与基本配置,请参考博文:https://blog.51cto.com/taoismli/1965899
数据库安装完成后,创建ambari数据库及用户,以root账号登录数据库,执行以下sql语句:
create database ambari character set utf8 ; CREATE USER 'ambari'@'%'IDENTIFIED BY '123456'; GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%'; FLUSH PRIVILEGES;
为了后续安装配置HIVE,这里也以自定义的MySQL作为HIVE元数据存储,因此顺便运行以下sql语句创建相应的库与账号:
create database hive character set utf8 ; CREATE USER 'hive'@'%'IDENTIFIED BY '123456'; GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%'; FLUSH PRIVILEGES;
安装mysql jdbc驱动:
yum install -y mysql-connector-java
五)安装ambari
a. 安装ambari
yum install ambari-server
b. 配置ambari
ambari-server setup
1.检查SELinux是否关闭,如果关闭不用操作
Using Python /usr/bin/python
Setup ambari-server
Checking SELinux...
SELinux status is 'disabled'
2.提示是否自定义设置账号,可默认,可自定义,默认是root
Customize user account for ambari-server daemon [y/n] (n)? n
3.检查防火墙,如果关闭则不用操作
Checking firewall status...
Redirecting to /bin/systemctl status iptables.service
4.设置JDK,输入:3
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
5.如果上面选择3自定义JDK,则需要设置JAVA_HOME。输入:/opt/java/jdk1.8.0_91
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/java/jdk1.8.0_91
Validating JDK on Ambari Server...done.
Completing setup...
6.数据库配置,选择:y
Configuring database...
Enter advanced database configuration [y/n] (n)? y
7.选择数据库类型。输入: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 (3): 3
8.设置数据库的具体配置信息,根据实际情况输入,如果和括号内相同,则可以直接回车。
Hostname (localhost):
Port (3306):
Database name (ambari):
Username (ambari):
Enter Database Password (123456):
9.提示必须安装MySQL JDBC,回车结束ambari配置
WARNING: Before starting Ambari Server, you must copy the MySQL JDBC driver JAR file to /usr/share/java.
Press <enter> to continue.
10.将Ambari数据库脚本导入到数据库
如果使用自己定义的数据库,必须在启动Ambari服务之前导入Ambari的sql脚本
用Ambari用户(上面第四部分设置的用户)登录mysql
mysql -u ambari -p
use ambari
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
c. 启动ambari
ambari-server start
如果成功启动,这可以看到以下信息:
此外,也可以通过浏览器登录查验,默认账号密码均是admin/admin: