CM自动化安装CDH5.14.0详解
目前企业级大数据集群安装有两套方案:Ambari + hdp 或者Cloudera Manger + CDH
CDH:一个对Apache Hadoop的集成环境的封装,可以使用Cloudera Manager进行自动化安装
CDH5.14.0版本说明
CDH最早版本只包含hadoop、hive、hbase等基础组件,CDH5.14.0版本目前已经封装了spark、impala、kudu(CDH 5.13.x开始)等众多组件,但是目前kafka和CDH还是分离的,如果需要cdh离线安装kafka,需要单独下载kafka的parcel,具体请参考:kafka的cdh安装指导
服务器规划
主机名 IP地址 CM角色 配置
cm-1 192.168.25.130 server 内存2G处理器4核物理空间40G
cm-2 192.168.25.131 agent 内存1G处理器4核物理空间40G
cm-3 192.168.25.132 agent 内存1G处理器4核物理空间40G
cm-4 192.168.25.133 agent 内存1G处理器4核物理空间40G
一:环境准备
1.1 关闭防火墙(每台主机)
service iptables status#关闭防火墙
service iptables stop#查看防火墙开机启动状态
chkconfig iptables --list#关闭防火墙开机启动
chkconfig iptables off
Centos7
systemctl stop firewalld.service;#关闭防火墙
systemctl disable firewalld.service#禁止防火墙开启自启
1.2 修改主机名(每台主机)
vim /etc/sysconfig/network
例如:
1.3 主机名映射(每台主机)
vim /etc/hosts
1.4 关闭selinux(每台主机)
[root@cm-1~]# vim /etc/sysconfig/selinux
SELINUX=disabled
重启才能生效
重启后检查
[root@cm-1~]#sestatus -v
SELinux status: disabled
表示已经关闭了
1.5 节点间时间同步(每台主机)
集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题
#每个服务器节点执行命令同步时间
ntpdate cn.pool.ntp.org
1.6 开启ntpd服务(每台主机)
#安装ntpd服务
yum install ntp#修改ntp配置
vi /etc/ntp.conf#修改如下部分:
server 58.220.207.226 iburst
server 47.92.108.218 iburst
server 202.112.29.82 iburst
server 202.108.6.95 iburst#其中ip为全球可用的ntp时间服务器,免费提供授时服务。#配置之后,保存设置,重启服务
service ntpd stop
service ntpd start
1.7 ssh免密登录
只需要实现cm-1到cm[2-4]的免密登录
[root@cm-1 ~]# ssh-keygen -t rsa (四个回车)
执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免密登陆的目标机器上
[root@cm-1 ~]# ssh-copy-id cm-2
[root@cm-1 ~]# ssh-copy-id cm-3
[root@cm-1 ~]# ssh-copy-id cm-4
二:配置cm本地yum源
2.1 安装http服务器(cm-1)
先查看是否有httpd服务
[root@cm-1 ~]# rpm -qa|grep httpd
httpd-tools-2.2.15-39.el6.centos.x86_64
httpd-2.2.15-39.el6.centos.x86_64
如果没有则安装
yum install httpd
设置httpd开机启动
[root@cm-1 ~]# chkconfig httpd on
2.2 将cdh的parcel文件挂载到http服务器(cm-1)
创建parcels目录
[root@cm-1 ~]# cd /var/www/html
[root@cm-1 html]# mkdir parcels
[root@cm-1 html]# cd parcels/
下载3个文件到parcels目录
下载地址
当然你也可以选择wget在线下载
[root@cm-1 parcels]# wget archive.cloudera.com/cdh5/parcels/5.14.0/CDH-5.14.0-1.cdh5.14.0.p0.24-el6.parcel
[root@cm-1 parcels]# wget archive.cloudera.com/cdh5/parcels/5.14.0/CDH-5.14.0-1.cdh5.14.0.p0.24-el6.parcel.sha1
[root@cm-1 parcels]# wget archive.cloudera.com/cdh5/parcels/5.14.0/manifest.json
校验parcel文件是否完整
很多时候由于网络原因导致parcel文件下载失败,为了保证parcel文件的完整我们可以通过sha文件进行校验
修改校验文件的文件名
这一步必须做,否则,系统会重新下载 CDH-5.14.0-1.cdh5.14.0.p0.24-el6.parcel
[root@cm-1 parcels]# mv CDH-5.14.0-1.cdh5.14.0.p0.24-el6.parcel.sha1 CDH-5.14.0-1.cdh5.14.0.p0.24-el6.parcel.sha
2.3 将cm的rpm文件挂载到http服务器(cm-1)
下载地址:https://archive.cloudera.com/cm5/repo-as-tarball/5.14.0/
#解压
[root@cm-1 ~]# tar -zxvf cm5.14.0-centos6.tar.gz -C /var/www/html
[root@cm-1 ~]# cd /var/www/html/
[root@cm-1 html]# ll
总用量 8
drwxrwxr-x 3 1106 592 4096 1月 22 2018 cm
drwxr-xr-x 2 root root 4096 2月 7 11:32 parcels#创建与官网一样的rpm路径
[root@cm-1 html]# mkdir -p cm5/redhat/6/x86_64
[root@cm-1 html]# mv cm cm5/redhat/6/x86_64/
[root@cm-1 html]# ll
总用量 8
drwxr-xr-x 3 root root 4096 2月 7 11:36 cm5
drwxr-xr-x 2 root root 4096 2月 7 11:32 parcels
解释:为什么需要创建与官网一样的rpm路径,请看下图:
2.4 测试
http://192.168.25.130/parcels/
http://192.168.25.130/cm5/redhat/6/x86_64/cm/5.14.0/RPMS/x86_64/
2.5 配置本地yum源(每台主机)
配置yum源的目的是为了离线安装cm的服务端和客户端
[root@cm-1 yum.repos.d]# vi /etc/yum.repos.d/cloudera-manager.repo
[cloudera-manager]
name=Cloudera-Manager,version5.14.0
baseurl = http://192.168.25.130/cm5/redhat/6/x86_64/cm/5.14.0/
gpgcheck = 0
三:安装CM的server端
3.1 为cm安装mysql(cm-1)
参考:
安装mysql的时候一定注意:开放远程访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
FLUSH PRIVILEGES;
3.2 为cm创建数据库(cm-1)
创建cmf数据库
3.3 为cm安装数据库驱动(cm-1)
#cm默认在该目录找mysql驱动
[root@cm-1 ~]# mv mysql-connector-java-5.1.32.jar /usr/share/java
[root@cm-1 ~]# cd /usr/share/java#重命名mysql驱动,一定要重命名
[root@cm-1 java]# mv mysql-connector-java-5.1.32.jar mysql-connector-java.jar
3.4 安装cm服务端(cm-1)
[root@cm-1 x86_64]# cd /var/www/html/cm5/redhat/6/x86_64/cm/5.14.0/RPMS/x86_64
[root@cm-1 x86_64]# yum install -y cloudera-manager-daemons-5.14.0-1.cm5140.p0.25.el6.x86_64.rpm
[root@cm-1 x86_64]# yum install -y cloudera-manager-server-5.14.0-1.cm5140.p0.25.el6.x86_64.rpm
3.5 为设置cm数据库连接信息(cm-1)
[root@cm-1 ~]# cd /etc/cloudera-scm-server/
[root@cm-1 cloudera-scm-server]# ls
db.properties log4j.properties
[root@cm-1 cloudera-scm-server]# vi db.properties
从 5.9版本开始
db配置文件里面多了一项配置:
com.cloudera.cmf.db.setupType
EXTERNAL表示用自建的 必须得指定这个参数,或者干脆注释掉这个配置项
3.6 安装oracle jdk(每台主机)
注意了:
1:最好是oracle jdk,大家可以直接使用cm提供的配套的oracle jdk
2:每台服务器都要安装,可以先在cm-1安装,完了后copy到cm[2-4]
卸载openjdk(记得每台服务都卸载)
[root@cm-1 java]# rpm -qa|grep java
tzdata-java-2014g-1.el6.noarch
java-1.6.0-openjdk-1.6.0.0-11.1.13.4.el6.x86_64
java-1.7.0-openjdk-1.7.0.65-2.5.1.2.el6_5.x86_64
[root@cm-1 java]# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-11.1.13.4.el6.x86_64
[root@cm-1 java]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.65-2.5.1.2.el6_5.x86_64
安装Oracle jdk
[root@cm-1 x86_64]# cd /var/www/html/cm5/redhat/6/x86_64/cm/5.14.0/RPMS/x86_64
[root@cm-1 x86_64]# rpm -ivh oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm
warning: oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID e8f86acd: NOKEY
Preparing... ########################################### [100%]
1:oracle-j2sdk1.7 ########################################### [100%]
[root@cm-1 x86_64]#
#装完后,很多人不知道装哪里去了,告诉你在/usr/java下#后续的安装默认就会到该目录找jdk
[root@cm-1 x86_64]# cd /usr/java
[root@cm-1 java]# ll
总用量 4
drwxr-xr-x 8 root root 4096 2月 7 12:04 jdk1.7.0_67-cloudera
[root@cm-1 java]#
配置JAVA环境变量
[root@cm-1 etc]# vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
export PATH=$PATH:$JAVA_HOME/bin
[root@cm-1 etc]# source /etc/profile
分发到cm[2-4]
$PWD引用当前目录
[root@cm-1 java]# cd /usr/java
[root@cm-1 java]# scp -r /usr/java/ root@cm-2:$PWD
[root@cm-1 java]# scp -r /usr/java/ root@cm-3:$PWD
[root@cm-1 java]# scp -r /usr/java/ root@cm-4:$PWD
[root@cm-1 java]# scp /etc/profile root@cm-2:/etc/profile
[root@cm-1 java]# scp /etc/profile root@cm-3:/etc/profile
[root@cm-1 java]# scp /etc/profile root@cm-4:/etc/profile
3.7 启动cm服务(cm-1)
启动时间会有点长,请耐心等待,估计要1分钟左右
[root@cm-1 cloudera-scm-server]# service cloudera-scm-server start#看启动日志,可以排忧解难
[root@cm-1 cloudera-scm-server]# cd /var/log/cloudera-scm-server
[root@cm-1 cloudera-scm-server]# cat cloudera-scm-server.log
3.8 测试(cm-1)
访问:http://192.168.25.130:7180/cmf/login,出现登录界面表示安装成功
登录用户名和密码都是admin
四:安装CM客户端
只要CM的服务器端安装成功,那么恭喜大家,后续的所有安装,大家都可以直接在管理页面上自动化完成,CM的客户端安装也不例外
4.1 同意license协议
admin/admin登录到CM
同意license协议,点击继续
4.2 选择免费版
4.3 选择CM客户端主机
4.4 指定cdh的parcel库和cm的rpm地址
这里可能会出现无法保存的问题,日志中出现了空指针异常(不知道啥原因),在更改原因中填写一段话即可,例如“11”,反正得有。
4.5 安装cm客户端
这一步开始前,麻烦再做两件事情
第一件:每台主机都安装如下组件
yum install -y python-psycopg2 mod_ssl MySQL-python openssl-devel fuse-libs portmap /lib/lsb/init-functions fuse libxslt cyrus-sasl-gssapi
第二件:每台主机都注释掉不相关的repo文件
必须注释,要不然cm客户端的安装会变得很慢,甚至超时
这里如果出现找不到agent包,需要将注释掉的yum源放开。在下载agent包的时候可能会出现错误,错误很明显,就是找不到包,我们前面配置了yum源的,这个时候使用Centos自带的源就可以了(下载速度也蛮快的)。
4.6 安装CDH
4.7 安装大数据组件
一旦cdh安装完毕,恭喜你,接下来安装hdfs、yarn、hive、sqoop都是很简单的事情了
安装推荐:如果你要安装hdfs、yarn、hive、kudu、impala,而且impala和hive要整合,impala和kudu要整合,那么你的安装顺序是
(hdfs,yarn)=>hive==>kudu====>impala
4.8 修改配置
所有主机:
sysctl vm.swappiness=10
echo 'vm.swappiness=10'>> /etc/sysctl.conf
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