之前了解了很多关于大数据平台一站式部署管理的工具,比如Apache Ambari和CDH,目前最新的CDH已经没有了社区版,也就是说以后使用新版本的Cloudera Manager和CDH都是要收费的,这对于很多小公司来说,可能无法承受。转向Ambari是他们的一个可选项。
Ambari是Apache的一个顶级开源项目,开源是其最大的优势,开源也意味着Ambari可以灵活地进行扩展,集成更多的数据组件,对于需要定制化和二次开发的企业来说,Ambari也极具吸引力。
由于之前学习大数据一直使用的虚拟机,本身虚拟机内存和配置不大,一直没有机会上手Ambari。最近遇到一个好机会,就是很多云服务器商搞活动,于是我在电信天翼云和青云订购了3台主机,总共花费228元,可以使用一年时间。
天翼云(88元)2核4G
青云(70元*2 ) 1核2G
这个活动还是很划算的,感兴趣的可以问度娘参加活动。也可以关注公众号【猫头鹰数据分析】给我留言,我会告诉读者怎么购买主机最划算。
今天就开始搭建一下基于Ambari的HDP大数据环境,天翼云主机(tt1)因为配置好,就做master,其它2台主机做slave(ss1,ss2)。
Ambari官网连接不能用了,现在需要收费,用到的软件包我整理好放云盘了,需要的朋友可以关注我的微信公众号【猫头鹰数据分析】后台回复ambari或hdp,就可以获取离线包了,总共11G多,本次安装使用的软件及版本如下
Ambari2.7.5
HDP3.1.5
JAVA1.8
Mysql5.7.35
Httpd
云盘的包如下
ambari-2.7.5.0-centos7.tar.gz
HDP-3.1.5.0-centos7-rpm.tar.gz
HDP-GPL-3.1.5.0-centos7-gpl.tar.gz
HDP-UTILS-1.1.0.22-centos7.tar.gz
首先我们配置下基本环境
java需要3台主机都配置,这里我就不做介绍了,我的博客里也有介绍,因为比较简单,主要是下载jdk解压,然后配置环境变量就可以了
mysql服务我们只需要安装到tt1主服务器上,网上例子也比较多,这里就不介绍了,装好后记得设置远程 % 访问,同时要在云服务器安全组设置外网端口3306。
yum install httpd
yum install yum-utils
yum repolist
yum install createrepo
参见博客大数据分析学习第一课 准备虚拟机环境
这里我是外网ip就不公开了,下面ip是举例
参见博客大数据分析学习第一课 准备虚拟机环境
vim /etc/hosts
每个节点的hosts文件中添加如下配置:
192.168.179.101 tt1
192.168.179.102 ss1
192.168.179.103 ss2
可以参照我的另一篇文章 大数据分析学习第一课 准备虚拟机环境
这里注意密匙生成用云服务器master控制台来生成,生成后保存一份公匙,后面配置服务需要使用。保证tt1可以ssh远程 ss1,ss2
sudo sh -c "echo umask 0022 >> /etc/profile"
[root@tt1 ~]# vim /etc/systemd/system.conf
[Manager]
DefaultLimitNOFILE=1024000 #这里需要修改
DefaultLimitNPROC=1024000 #这里也需要修改,修改完成重启生效
[root@tt1 ~]# ulimit -a 查看
[root@tt1 ~]# ulimit -n 10000 临时修改
[root@tt1 ~]# ulimit -Sn
10000
[root@tt1 ~]# ulimit -Hn
10000
前面介绍安装完httpd后,会生成 /var/www/html目录,我们在html目录里再建一些目录
[root@tt1 ~]# mkdir /var/www/html/ambari
[root@tt1 ~]# mkdir /var/www/html/hdp
[root@tt1 ~]# mkdir /var/www/html/hdp/HDP-UTILS-1.1.0.22
[root@tt1 ~]# mkdir /var/www/html/hdp/HDP-GPL-3.1.5.0
建完目录,我们上传上面介绍的4个ambari离线包放到/var/www/html目录下 (主服务器tt1),传完后我们执行解压命令
[root@tt1 ~]# tar -zxvf ambari-2.7.5.0-centos7.tar.gz -C /var/www/html/ambari/
[root@tt1 ~]# tar -zxvf HDP-3.1.5.0-centos7-rpm.tar.gz -C /var/www/html/hdp/
[root@tt1 ~]# tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz -C /var/www/html/hdp/HDP-UTILS-1.1.0.22
[root@tt1 ~]# tar -zxvf HDP-GPL-3.1.5.0-centos7-gpl.tar.gz -C /var/www/html/hdp/HDP-GPL-3.1.5.0/
解压后,我们可以等正常运行ambari后,删除离线包,因为离线包有将近12个G,还是比较占空间的
[root@tt1 ~]# systemctl start httpd # 启动httpd
[root@tt1 ~]# systemctl status httpd # 查看httpd状态
[root@tt1 ~]# systemctl enable httpd # 设置httpd开机自启
测试访问刚才解压的文件路径
http://tt1:8081/ambari/
http://tt1:8081/hdp/
能看到资源目录就可以了
因为我们下载repo文件提示没有权限
http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.5.0/ambari.repo
这里我们就直接自己新建ambari.repo和HDP.repo文件了
ambari.repo
cd /etc/yum.repos.d/
vim ambari.repo
#VERSION_NUMBER=2.7.4.0-118
[ambari-2.7.4.0]
name=ambari Version - ambari-2.7.4.0
baseurl=http://tt1:8081/ambari/ambari/centos7/2.7.4.0-118
gpgcheck=1
gpgkey=http://tt1:8081/ambari/ambari/centos7/2.7.4.0-118/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
ambari.repo需要复制到其他2台slave主机
HDP.repo
#VERSION_NUMBER=3.1.4.0-315
[HDP-3.1.4.0]
name=HDP Version - HDP-3.1.5.0
baseurl=http://tt1:8081/hdp/HDP/centos7/3.1.5.0-152/
gpgcheck=1
gpgkey=http://tt1:8081/hdp/HDP/centos7/3.1.5.0-152/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
[HDP-UTILS-1.1.0.22]
name=HDP Utils Version - HDP-UTILS-1.1.0.22
baseurl=http://tt1:8081/hdp/HDP-UTILS-1.1.0.22/HDP-UTILS/centos7/1.1.0.22
gpgcheck=1
gpgkey=http://tt1:8081/hdp/HDP-UTILS-1.1.0.22/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
[HDP-GPL-3.1.5.0]
name=HDP-GPL Version - HDP-GPL-3.1.5.0
baseurl=http://tt1:8081/hdp/HDP-GPL-3.1.5.0/HDP-GPL/centos7/3.1.5.0-152/
gpgcheck=1
gpgkey=http://tt1:8081/hdp/HDP-GPL-3.1.5.0/HDP-GPL/centos7/3.1.5.0-152/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
[root@tt1 ambari]# yum clean all
[root@tt1 ambari]# yum makecache
[root@tt1 ambari]# yum repolist
可以看到本地源已经配置成功,这是离线安装的关键,因为源文件文件我们已经解压到本地了
复制到ss1,ss2的/etc/yum.repos.d目录下
[root@tt1 ambari]#cd /etc/yum.repos.d
[root@tt1 yum.repos.d]# scp ambari.repo HDP.repo ss1
[root@tt1 yum.repos.d]# scp ambari.repo HDP.repo ss2
同时也更新yum源
yum clean all
yum makecache
yum repolist
yum -y install ambari-server
上传mysql连接驱动的jar包并重命名
mkdir /usr/share/java
cp mysql-connector-java-5.1.44-bin.jar /usr/share/java/mysql-connector-java.jar
cp mysql-connector-java-5.1.44-bin.jar /var/lib/ambari-server/resources/mysql-jdbc-driver.jar
修改ambari.properties
vi /etc/ambari-server/conf/ambari.properties
初始化数据库,我们连接在tt1装好的mysql,新建ambari,hive,oozie 三个数据库
use ambari;
CREATE USER 'ambari'@'%' IDENTIFIED BY 'ambari';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';
CREATE USER 'ambari'@'localhost' IDENTIFIED BY 'ambari';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'localhost';
CREATE USER 'ambari'@'tt1' IDENTIFIED BY 'ambari';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'tt1';
CREATE DATABASE hive;
use hive;
CREATE USER 'hive'@'%' IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';
CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'localhost';
CREATE USER 'hive'@'tt1' IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'tt1';
CREATE DATABASE oozie;
use oozie;
CREATE USER 'oozie'@'%' IDENTIFIED BY 'oozie';
GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'%';
CREATE USER 'oozie'@'localhost' IDENTIFIED BY 'oozie';
GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'localhost';
CREATE USER 'oozie'@'tt1' IDENTIFIED BY 'oozie';
GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'tt1';
添加一行新内容,配置驱动
server.jdbc.driver.path=/usr/share/java/mysql-connector-java.jar
导入初始化数据结构和数据
use ambari;
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
执行 ambari-server setup
按shell给出的提示选择并配置,ambari版本不同可能提示略有差异,但内容就是以下这些
1) 提示是否自定义设置。输入:y
Customize user account for ambari-server daemon [y/n] (n)? y
(2)ambari-server 账号。
Enter user account for ambari-server daemon (root):
默认选择root
Enter user account for ambari-server daemon (root):ambari
Adjusting ambari-server permissions and ownership...
(3)检查防火墙
Adjusting ambari-server permissions and ownership...
Checking firewall...
WARNING: iptables is running. Confirm the necessary Ambari ports are accessible. Refer to the Ambari documentation for more details on ports.
OK to continue [y/n] (y)?
直接回车
(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
如果选择3自定义JDK,则需要设置JAVA_HOME
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/java/jdk1.8.0_131
Validating JDK on Ambari Server...done.
Completing setup...
(5)数据库配置。选择:y
Configuring database...
Enter advanced database configuration [y/n] (n)? y
(6)选择数据库类型。输入: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
(7)设置数据库的具体配置信息,
Hostname (localhost): tt1
Port (3306): 3306
Database name (ambari): ambari
Username (ambari): ambari
Enter Database Password (bigdata):ambari
Re-Enter password: ambari
错误处理:
如果出现错误,请注意查看日志,根据具体的错误内容进行处理,默认ambari-server的日志在/var/log/ambari-server/ambari-server.log里面。
tail -100 /var/log/ambari-server/ambari-server.log 可以查看日志,一般就是数据库连接异常或者端口占用问题,都好解决
我们在httpd服务启动的情况下,在ss1,ss2主机上执行安装ambari-agent (这里也是离线安装,所以需要启动httpd,我们前面配置了yum的源地址是tt1)
yum install ambari-agent
安装成功有如下提示
agent安装完后,我们在2台从主机上分别启动
systemctl start ambari-agent
在tt1上执行 ambari-server start,这里注意启动前httpd服务也要启动,同时去天翼云控制台开8082的外网端口
启动成功,我们在浏览器访问服务地址http://xx.xx.xx.xx:8082/#/login
默认的用户名密码都是admin,我们输入后登录系统,就进入主界面了
这次的安装过程就介绍到这里了,下次我们介绍在Ambari平台里创建配置大数据集群和常用组件
总结
感谢能看到这里的朋友
本次的分享就到这里,猫头鹰数据致力于为大家分享技术干货
如果以上过程中出现了任何的纰漏错误,烦请大佬们指正
受益的朋友或对技术感兴趣的伙伴记得点赞关注支持一波
也可以搜索关注我的微信公众号【猫头鹰数据分析】,留言交流