公司目前在开展大数据业务,在大数据框架选型方面一直在Ambari+HDP 和CM+CDH之中徘徊。我就尝试动手搭建了两套环境来试试效果。接下来我会记录搭建HDP和CDH环境的详细步骤。。
如果是生产环境打算用ambari+hdp,不建议用高版本,因为后期需要自己整合一些组件,比如impala、flume,很麻烦,特别是版本不匹配的时候,简直吐血。。
接下来的我会把搭建过程一一记录下来。。机器使用的是阿里云的。。
一、集群规划
1.1 机器准备
总共用了四台阿里云的机器来做环境搭建测试
机器列表.png
1.2 机器分配
hostname | 内网IP | 功能 | 内存 | 核数 | 磁盘 |
---|---|---|---|---|---|
ambari.gey.com | 172.25.147.10 | Ambari和hdp安装 | 16G | 4 | 200G |
master.gey.com | 172.25.147.11 | Master节点 | 16G | 4 | 1T |
slave1.gey.com | 172.25.147.12 | Slave节点 | 16G | 4 | 1T |
slave2.gey.com | 172.25.147.13 | Slave节点 | 16G | 4 | 1T |
1.3 软件版本
组件 | 描述 |
---|---|
linux | Centos7.5 |
Ambari | 2.7.1 |
HDP | 3.0.1 |
HDP-GPL | 3.0.1 |
HDP-UTILS | 1.1.0.22 |
MySQL | 5.6 |
JDK | 1.8.0_181 |
二、环境配置
2.1 基本配置
以下以在ambari.gey.com机器上做的演示,其他机器做前三步修改即可
2.1.1 修改vim /etc/sysconfig/network
[root@iZhp3d9vtcbp6p96whe4uvZ ~]#
NETWORKING=yes
HOSTNAME=ambari.gey.com
2.1.2 修改vim /etc/hosts
[root@iZhp3d9vtcbp6p96whe4uvZ ~]#
172.25.147.10 ambari.gey.com
172.25.147.11 master.gey.com
172.25.147.12 slave1.gey.com
172.25.147.13 slave2.gey.com
2.1.3 修改vim /etc/hostname
[root@iZhp3d9vtcbp6p96whe4uvZ ~]#
ambari.gey.com
2.1.4 检查和关闭防火墙
[root@iZhp3d9vtcbp6p96whe4uvZ ~]# systemctl status firewalld.service
[root@iZhp3d9vtcbp6p96whe4uvZ ~]# systemctl disable firewalld.service
注意:修改完上述配置后重启
2.1.5 安装openssl
[root@ambari ~]# yum install openssl
2.1.6 安装NTP时间同步服务
检查是否已安装:[root@ambari ~]# rpm -qa | grep ntp
未安装则安装:[root@ambari ~]# yum install ntp ntpdate -y
2.1.7 关闭SELinux
[root@ambari ~]# vim /etc/selinux/config
SELINUX=disabled
2.1.8 安装httpd服务
安装httpd服务:[root@ambari ~]# yum install httpd -y
开启httpd服务:[root@ambari ~]# systemctl start httpd.service
开机启动:[root@ambari ~]# systemctl enable httpd.service
测试httpd服务是否能使用:把HTTP样本放到/var/www/html目录里,在浏览器输入
http://服务器IP ,看是否能进入HTTP样本网页
2.2 SSH免密登录
2.2.1 生成公钥和私钥
[root@ambari ~]# ssh-keygen -t rsa -f ~/.ssh/id_rsa
ssh.png
连续三次回车即可,再查看.ssh目录下,会生产两个文件:id_rsa和id_rsa.pub,其中id_rsa表示私钥,id_rsa.pub表示公钥
2.2.2 将公钥id_rsa.pub复制到自己和其他机器
[root@ambari .ssh]# ssh-copy-id ambari.gey.com
[root@ambari .ssh]# ssh-copy-id master.gey.com
[root@ambari .ssh]# ssh-copy-id slave1.gey.com
[root@ambari .ssh]# ssh-copy-id slave2.gey.com
以上只是ambari.gey.com--->ambari.gey.com 、master.gey.com、slave1.gey.com、slave2.gey.com
同样的,如果需要可以继续做:
master.gey.com ---> ambari.gey.com 、master.gey.com、slave1.gey.com、slave2.gey.com
slave1.gey.com ---> ambari.gey.com 、master.gey.com、slave1.gey.com、slave2.gey.com
slave2.gey.com ---> ambari.gey.com 、master.gey.com、slave1.gey.com、slave2.gey.com
2.3 安装JDK8
2.3.1 创建java目录
[root@master ~]# mkdir -p /usr/local/software/java/
[root@slave1 ~]# mkdir -p /usr/local/software/java/
[root@slave2 ~]# mkdir -p /usr/local/software/java/
2.3.2 解压jdk8压缩包
先将压缩包上传到ambari.gey.com机器上的某个目录下,然后进行解压操作
[root@ambari software]#
tar -zvxf jdk-8u181-linux-x64.tar.gz -C /usr/local/software/java/
2.3.3 将jdk分发到其他机器上
1)分发到master.gey.com机器上
[root@ambari java]#
scp -r jdk1.8.0_181 root@master.gey.com:/usr/local/software/java
2)分发到slave1.gey.com机器上
[root@ambari java]#
scp -r jdk1.8.0_181 root@slave1.gey.com:/usr/local/software/java
3)分发到slave2.gey.com机器上
[root@ambari java]#
scp -r jdk1.8.0_181 root@slave2.gey.com:/usr/local/software/java
2.3.4 配置JDK
[root@ambari jdk1.8.0_181]# vim /etc/profile
export JAVA_HOME=/usr/local/software/java/jdk1.8.0_181
export PATH=${JAVA_HOME}/bin:$PATH
[root@ambari jdk1.8.0_181]# source /etc/profile
[root@ambari jdk1.8.0_181]# java -version
查看java版本时,会报错:
-bash: /usr/local/software/java/jdk1.8.0_181/bin/java: Permission denied
解决方法:
chmod 777 /usr/local/software/java/jdk1.8.0_181/bin/java
如下图所示:
javaversion.png
2.4 安装mysql
此处,我们采用本地安装方式,安装在ambari.gey.com机器上,由于存放ambari-server的元数据、hive元数据以及其他组件的元数据
2.4.1 上传mysql的服务端和客户端rpm文件
MySQL-server-5.6.24-1.el6.x86_64.rpm
MySQL-client-5.6.24-1.el6.x86_64.rpm
2.4.2 检查机器是否自带了mariadb
[root@ambari mysofts]# rpm -qa|grep mariadb
[root@ambari mysofts]# rpm -qa | grep -i mysql 加i表示不区分大小写
如果已经存在,则需要先卸载
[root@ambari mysofts]# rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
mysql1.png
2.4.3 安装服务端
1)执行安装:[root@ambari mysofts]# rpm -ivh MySQL-server-5.6.24-1.el6.x86_64.rpm
2)启动服务:[root@ambari mysofts]# service mysql start
3)查看状态:[root@ambari mysofts]# service mysql status
报错1:libaio.so.1()(64bit) is needed by MySQL-server-5.6.24-1.el6.x86_64
mysql2.png
解决方法:yum -y install libaio
卸载掉刚才安装的Mysql服务,重新安装
卸载步骤:
[root@ambari mysofts]# rpm -qa | grep -i mysql
[root@ambari mysofts]# rpm -e --nodeps MySQL-server-5.6.24-1.el6.x86_64
[root@ambari mysofts]# rm -rf /var/lib/mysql/
[root@ambari mysofts]# whereis mysql
[root@ambari mysofts]# rm -rf /usr/lib64/mysql
[root@ambari mysofts]# rm –rf /usr/my.cnf
[root@ambari mysofts]# rm -rf /root/.mysql_sercret
再重新安装
2.4.4 安装客户端
1)执行安装:[root@ambari mysofts]# rpm -ivh MySQL-client-5.6.24-1.el6.x86_64.rpm
2)查看密码:[root@ambari mysofts]# cat /root/.mysql_secret
mysql3.png
3)登录mysql:[root@ambari mysofts]# mysql -uroot -p随机密码
4)修改密码:set password=password('gey20190416');
5)退出重登:[root@ambari mysofts]# mysql -uroot -pgey20190416
6)修改mysql.user表内容:
mysql> use mysql
mysql> select User, Host, Password from user;
mysql4.png
mysql> update user set host='%' where host='localhost';
mysql> delete from user where Host='ambari.gey.com';
mysql> delete from user where Host='127.0.0.1';
mysql> delete from user where Host='::1';
mysql> flush privileges;
网友评论