相关文章链接
CentOS7安装CDH 第一章:CentOS7系统安装
CentOS7安装CDH 第二章:CentOS7各个软件安装和启动
CentOS7安装CDH 第三章:CDH中的问题和解决方法
CentOS7安装CDH 第四章:CDH的版本选择和安装方式
CentOS7安装CDH 第五章:CDH的安装和部署-CDH5.7.0
CentOS7安装CDH 第六章:CDH的管理-CDH5.12
CentOS7安装CDH 第七章:CDH集群Hadoop的HA配置
CentOS7安装CDH 第八章:CDH中对服务和机器的添加与删除操作
CentOS7安装CDH 第九章:CDH中安装Kafka
CentOS7安装CDH 第十章:CDH中安装Spark2
CentOS7安装CDH 第十一章:离线升级CDH版本
CentOS7安装CDH 第十二章:YARN的资源调优
CentOS7安装CDH 第十三章:CDH资源池配置
CentOS7安装CDH 第十四章:CDH的优化
1. CDH的下载
以CentOS7.5和CDH5.7.0举例:
1.1. cm的tar包下载
下载地址:http://archive.cloudera.com/cm5/repo-as-tarball/5.7.0/
请选择需要的版本。
1.2. parcels包下载
下载地址:http://archive.cloudera.com/cdh5/parcels/5.7.0/
请选择对应的版本,el7,并将后缀.sha1更改为.sha。
2. 安装CDH的准备工作(所有节点都要执行)
2.1. 安装好JDK
2.2. 更改主机名和hosts
# echo "bigdata0*.tfpay.com" > /etc/hostname
# echo "172.17.28.1 bigdata01.tfpay.com bigdata01" >> /etc/hosts
# echo "172.17.28.2 bigdata02.tfpay.com bigdata02" >> /etc/hosts
# echo "172.17.28.3 bigdata03.tfpay.com bigdata03" >> /etc/hosts
# echo "172.17.28.4 bigdata04.tfpay.com bigdata04" >> /etc/hosts
2.3. 关闭防火墙,并重启服务器使hostname和selinux的配置生效
# systemctl stop firewalld
# systemctl disable firewalld
# systemctl status firewalld
# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
# reboot
# getenforce
# sestatus -v
2.4. 安装NTP服务
#在所有节点
yum -y install ntp
#在master节点,注释掉原有的server指向把时间服务器的域名地址指向一个靠谱可连的时间服务器,我选择的是ntp.api.bz.
# vim /etc/ntp.conf
……
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server ntp.api.gz iburst
......
# 在其余的节点上,把时间服务器的server指向master namenode节点
# vi /etc/ntp.conf
……
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server 172.17.28.1 iburst
......
# 在所有节点
systemctl start ntpd
systemctl enable ntpd
2.5. 配置SSH无密码登录,如上配置免密登录所示
2.6. 安装MySQL数据库,能进入MySQL数据库即为安装完成
3. 配置CDH的离线安装
目的:将上述下载的4个文件上传到centos7服务器中,并配置好离线服务,安装时即可以从该离线服务中下载,不需要再从官网中去下载,防止网络错误。
3.1. 在master节点上安装httpd
# 查看该centos7是否存在httpd服务
rpm -qa|grep httpd
# 如果不存在该服务就安装
yum install -y httpd
# 启动该服务
systemctl start httpd.service #启动
systemctl stop httpd.service #停止
systemctl restart httpd.service #重启
# 设置该服务是否开机启动
systemctl enable httpd.service #开机启动
systemctl disable httpd.service #开机不启动
# 查看该服务的状态
systemctl status httpd.service
当访问该服务器的80端口出现如下画面即为安装和启动成功
3.2. 创建 parcels文件
# 在/var/www/html下创建一个parcels文件夹,并将上述下载的3个文件上传到该目录下
cd /var/www/html/
mkdir parcels
# 上传如下3个文件
CDH-5.7.0-1.cdh5.7.0.p0.45-el7.parcel
CDH-5.7.0-1.cdh5.7.0.p0.45-el7.parcel.sha
manifest.json
# 校验文件下载未损坏
/usr/bin/sha1sum CDH-5.7.0-1.cdh5.7.0.p0.45-el7.parcel
cat CDH-5.7.0-1.cdh5.7.0.p0.45-el7.parcel.sha
如果2个验证码一样,证明该文件未损坏,可以使用:
在浏览器中能打开如下网址,证明配置成功:
3.3. 创建cm文件
# 在/var/www/html创建cm5/redhat/7/x86_64/文件夹(和官网一样的路径)
cd /var/www/html/
mkdir -p cm5/redhat/7/x86_64/
# 上传cm5.7.0-centos7.tar.gz包到/var/www/html目录下,并解压
tar -zxf cm5.7.0-centos7.tar.gz
# 将解压好的文件夹移动到上述创建的文件夹下
mv cm /var/www/html/cm5/redhat/7/x86_64/
# 配置本地的yum源,cdh集群在安装时会就从本地down包,不会从官网了,所有节点都要执行
vim /etc/yum.repos.d/cloudera-manager.repo
#在该文件下插入如下数据
[cloudera-manager]
name = Cloudera Manager, Version 5.7.0
baseurl = http://192.168.12.131/cm5/redhat/7/x86_64/cm/5/
gpgcheck = 0
在浏览器中出现如下界面:
3.4. 安装CM的server+agent
# 进入上述创建的CM的文件目录下
cd /var/www/html/cm5/redhat/7/x86_64/cm/5.7.0/RPMS/x86_64/
# 安装cloudera-manager-daemons-5.7.0-1.cm570.p0.76.el7.x86_64.rpm
yum install cloudera-manager-daemons-5.7.0-1.cm570.p0.76.el7.x86_64.rpm
# 安装cloudera-manager-server-5.7.0-1.cm570.p0.76.el7.x86_64.rpm,请注意,不用安装db版本的,那是使用默认数据库的,在生产环境中一般不使用,生产环境中是使用MySQL数据库的
yum -y install cloudera-manager-server-5.7.0-1.cm570.p0.76.el7.x86_64.rpm
3.5. 在MySQL中创建元数据库并上传jar包
# 在MySQL中创建元数据库
create database cmf DEFAULT CHARACTER SET utf8;
create database amon DEFAULT CHARACTER SET utf8;
create database hive DEFAULT CHARACTER SET utf8;
create database oozie DEFAULT CHARACTER SET utf8;
create database hue DEFAULT CHARACTER SET utf8;
grant all on cmf.* TO 'cmf'@'%' IDENTIFIED BY '123456';
grant all on amon.* TO 'amon'@'%' IDENTIFIED BY '123456';
grant all on hive.* TO 'hive'@'%' IDENTIFIED BY '123456';
grant all on oozie.* TO 'oozie'@'%' IDENTIFIED BY '123456';
grant all on hue.* TO 'hue'@'%' IDENTIFIED BY '123456';
# 创建cmf用户,并创建cmf数据库,此数据库需在CDH的数据库配置文件中配置
create database cmf DEFAULT CHARACTER SET utf8;
grant all on cmf.* TO 'cmf'@'%' IDENTIFIED BY '123456';
flush privileges;
# 创建其他数据库,并授权
create database amon DEFAULT CHARACTER SET utf8;
grant all on amon.* TO 'amon'@'%' IDENTIFIED BY '123456';
flush privileges;
create database hive DEFAULT CHARSET SET utf8;
grant all on hive.* TO 'hive'@'%' IDENTIFIED BY '123456';
flush privileges;
create database oozie DEFAULT CHARSET SET utf8;
grant all on oozie.* TO 'oozie'@'%' IDENTIFIED BY '123456';
flush privileges;
create database hue DEFAULT CHARACTER SET utf8;
grant all on hue.* TO 'hue'@'%' IDENTIFIED BY '123456';
flush privileges;
#给MySQL授权时会出现密码问题,可以执行如下命令
set global validate_password_policy=LOW;
set global validate_password_length=6;
#修改CDH关于数据库的配置文件(如下图所示)
vim /etc/cloudera-scm-server/db.properties
# 上传与MySQL连接的jar包(注:jar包需要放入如下目录,没有就创建)
# 所有节点都需要执行
cd /usr/share/java
# 上传jar包,并修改jar包的名字(此jar包不需要版本号)
mv mysql-connector-java-8.0.15.jar mysql-connector-java.jar
CDH数据库配置文件如下图所示:
在CDH5.8.4版本之后又如下配置,请修改:
3.6. 启动cloudera-scm-server服务并查看日志
#启动
service cloudera-scm-server start
service cloudera-scm-server status
#在启动时有可能碰到The server time zone value 'EDT' is unrecognized异常,这是mysql的时区和系统的时区不匹配,可以参考如下网站解决
https://blog.csdn.net/u010003835/article/details/88974898
#查看日志
cd /var/log/cloudera-scm-server/
tail -f cloudera-scm-server.log
# 出现如下7180即证明启动成功
WebServerImpl:org.mortbay.log: Started [email protected]:7180
成功图片如下所示:
此时查看MySQL数据库,会发现cmf数据库下回自动创建表:
使用命令会查看到连接cmf的用户的具体信息:
show processlist;
3.7. 在浏览器的web页面上安装CM
当service cloudera-scm-server start启动成功后,即可以在浏览器上服务7180端口(需开放防火墙)。
1. 在浏览器中输入http://bigdata01.ouyang.com:7180 ,登录CM的web界面,账号和密码均为admin:
2. 点击同意许可:
3. 选择CM的版本:
4. 使用搜索模式,搜索需要安装CDH的主机:
3.8. 在浏览器的web页面上安装CDH集群
1. 选择存储库
点击更多选项,将其他远程Parcel删除,并输入先前配置好的Parcel:
选择CDH的版本,并选择自定义存储库:
地址:http://bigdata01.ouyang.com/cm5/redhat/7/x86_64/cm/5/
2. 是否需要安装JDK,默认不进行安装,直接下一步:
3. 是否启用单用户模式,可以自由选择:
4. 提供 SSH 登录凭据,可以自由选择,这里直接使用root用户:
5. 进行集群安装,如果安装失败可以点击详细信息查看失败原因,解决后再重新安装:
6. 安装选定Parcel,先前配置的Parcel就作用于此处,如果不进行此配置会去官网进行下载,对网络要求很高,并网络中断后会重新下载,较麻烦,使用此配置可以直接下载成功,并速度很快:
7. 检查主机正确性,一般来说此步会存在swap设置和大页面2个问题,可以使用如下代码在每个主机上进行配置,然后重新检测即可:
#关闭大页面
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag'>> /etc/rc.local
echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled'>> /etc/rc.local
#设置swap
echo 'vm.swappiness = 10' >> /etc/sysctl.conf
sysctl -p
3.9. 在浏览器的web页面上进行CDH集群的配置
1. 选择要在集群上安装的CDH5服务:
2. 自定义角色分配,一般将主色分配到master节点,所以该节点内存要大,zookeeper需要安装奇数台,这里是只安装了一台,不合理,请安装3台以上的奇数台:
3. 进行数据库设置,此步骤中用到的数据库在上述的MySQL数据库中均进行了创建和授权:
4. 审核更改,此步骤中不管是开发测试还是生产环境,均不需要更改,直接点击继续,进行下一步:
5. 首次运行,会自动运行,运行之后点击继续按钮即可:
6. 安装成功:
此状态为主机配置较低,运行不良,对集群无影响,可以正常工作。