 
            CentOS7.6部署CDH6.3.2
本文最后更新于 2024-05-31,文章内容可能已经过时。
一、CM安装
1.1 CM部署准备
1.1.1 修改hosts文件(所有节点)
[root@hadoop001 ~]# vi /etc/hosts
127.0.0.1 localhost  localhost
::1     localhost       localhost.localdomain   localhost6      localhost6.localdomain6
172.17.138.24 hadoop102
172.17.138.25 hadoop103
172.17.138.23 hadoop104
注意:这里每个人不一样,ip填写的是私有ip,做完后ping一下。
1.1.2 修改hostname文件(所有节点)
[root@hadoop102 ~]# vi /etc/hostname
hadoop102
依次修改三台机器的hostname文件为hadoop102-104
1.1.3 关闭防火墙(阿里云环境可跳过)(所有节点)
阿里云的防火墙默认是关闭的,但是他有web防火墙,我们需要将7180,3306,8888,8889,9870等端口开放,或者开放全部安全组。
# 1)查看防火墙: 
systemctl status firewalld.service 
# 2)执行关闭命令: 
systemctl stop firewalld.service 
# 3)执行开机禁用防火墙命令: 
systemctl disable firewalld.service
1.1.4 关闭SELINUX(阿里云环境可跳过)(所有节点)
安全增强型Linux(Security-Enhanced Linux)简称SELinux,它是一个 Linux 内核模块,也是Linux的一个安全子系统。为了避免安装过程出现各种错误,建议关闭,有如下两种关闭方法:
1)临时关闭(不建议使用)
[root@hadoop102 ~]# setenforce 0
但是这种方式只对当次启动有效,重启机器后会失效。
2)永久关闭(建议使用)
修改配置文件/etc/selinux/config
[root@hadoop102 ~]# vim /etc/selinux/config
将SELINUX=enforcing 改为SELINUX=disabled
SELINUX=disabled
3)重启hadoop102、hadoop103、hadoop104主机
[root@hadoop102 ~]# reboot
1.1.5 SSH免密登录(所有节点)
配置hadoop102对hadoop102、hadoop103、hadoop104三台服务器免密登录。
1)生成公钥和私钥:
[root@hadoop102 ~]cd ~/.ssh
[root@hadoop102 .ssh]$ ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
2)将公钥拷贝到要免密登录的目标机器上
[root@hadoop102 .ssh]$ ssh-copy-id hadoop102
[root@hadoop102 .ssh]$ ssh-copy-id hadoop103
[root@hadoop102 .ssh]$ ssh-copy-id hadoop104
重复1和2的操作,配置hadoop103对hadoop102、hadoop103、hadoop104三台服务器免密登录。
注意:每个节点都要做,做完后相互登录几次试一试
1.1.6 配置NTP时钟同步(阿里云环境可跳过)
1)NTP服务器配置(主节点)
[root@hadoop102 ~]# vi /etc/ntp.conf
注释掉所有的restrict开头的配置
修改#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
为restrict 192.168.1.102 mask 255.255.255.0 nomodify notrap
将所有server配置进行注释
添加下面两行内容
server 127.127.1.0
fudge 127.127.1.0 stratum 10
2)启动NTP服务 service ntpd start
[root@hadoop102 ~]# service ntpd start
3)NTP客户端配置(在agent主机上进行配置hadoop103,hadoop104)
[root@hadoop103 ~]# vi /etc/ntp.conf
注释所有restrict和server配置
添加server 192.168.1.102
4)手动测试
[root@hadoop103~]# ntpdate 192.168.1.102
显示如下内容为成功:
17 Jun 15:34:38 ntpdate[9247]: step time server 192.168.1.102 offset 77556618.173854 sec
如果显示如下内容需要先关闭ntpd:
17 Jun 15:25:42 ntpdate[8885]: the NTP socket is in use, exiting
5)启动ntpd并设置为开机自启(每个节点hadoop102,hadoop103,hadoop104)
[root@hadoop103 ~]#  chkconfig ntpd on
[root@hadoop103 ~]#  service ntpd start
1.1.7禁用透明大页面压缩(所有节点)
打开编辑 /etc/rc.local 文件:
vi /etc/rc.local 
# 添加以下内容: 
echo never > /sys/kernel/mm/transparent_hugepage/defrag 
echo never > /sys/kernel/mm/transparent_hugepage/enabled 
1.1.8修改文件打开限制(所有节点)
echo "* soft nofile 65536" >> /etc/security/limits.conf 
echo "* hard nofile 65536" >> /etc/security/limits.conf
echo "* soft memlock unlimited" >> /etc/security/limits.conf 
echo "* hard memlock unlimited" >> /etc/security/limits.conf 
1.1.9设置swap空间(所有节点)
echo "vm.swappiness = 0" >> /etc/sysctl.conf 
1.2 CM安装部署
1.2.1 安装JDK(所有节点)
1)在hadoop102创建/usr/java目录
[root@hadoop102 ~]# mkdir /usr/java
[root@hadoop102 ~]# cd /usr/java
2)将oracle‐j2sdk1.8‐1.8.0+update181‐1.x86_64.rpm上传至hadoop102:/usr/java目录下。
[root@hadoop102 java]# rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
3)配置JAVA_HOME环境变量
(1)打开/etc/profile文件
[root@hadoop102 java]$ vi /etc/profile
在profile文件末尾添加JDK路径
#JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
export PATH=$PATH:$JAVA_HOME/bin
(2)让修改后的文件生效
[root@hadoop102 jdk1.8.0_181-cloudera]$ source /etc/profile
4)测试JDK是否安装成功
[root@hadoop102 jdk1.8.0_144]# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
1.2.2 安装MySQL及其驱动(主节点)
1.2.2.1 安装包准备
1)将安装包和JDBC驱动上传到hadoop102,共计6个
01_mysql-community-common-5.7.16-1.el7.x86_64.rpm
02_mysql-community-libs-5.7.16-1.el7.x86_64.rpm
03_mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm
04_mysql-community-client-5.7.16-1.el7.x86_64.rpm
05_mysql-community-server-5.7.16-1.el7.x86_64.rpm
mysql-connector-java-5.1.27-bin.jar
2)如果是虚拟机按照如下步骤执行
(1)卸载自带的Mysql-libs(如果之前安装过MySQL,要全都卸载掉)
[root@hadoop102 tmp]$ rpm -qa | grep -i -E mysql\|mariadb | xargs -n1 sudo rpm -e --nodeps
3)如果是阿里云服务器按照如下步骤执行
说明:由于阿里云服务器安装的是Linux最小系统版,没有如下工具,所以需要安装。
(1)卸载MySQL依赖,虽然机器上没有装MySQL,但是这一步不可少
[root@hadoop102 tmp]# yum remove mysql-libs
(2)下载依赖并安装
[root@hadoop102 tmp]# yum install libaio
[root@hadoop102 tmp]# yum -y install autoconf
1.2.2.2 安装MySQL
1)安装MySQL依赖
[root@hadoop102 tmp]$ rpm -ivh 01_mysql-community-common-5.7.16-1.el7.x86_64.rpm
[root@hadoop102 tmp]$ rpm -ivh 02_mysql-community-libs-5.7.16-1.el7.x86_64.rpm
[root@hadoop102 tmp]$ rpm -ivh 03_mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm
2)安装mysql-client
[root@hadoop102 tmp]$ rpm -ivh 04_mysql-community-client-5.7.16-1.el7.x86_64.rpm
3)安装mysql-server
[root@hadoop102 tmp]$ rpm -ivh 05_mysql-community-server-5.7.16-1.el7.x86_64.rpm
注意:如果报如下错误,这是由于yum安装了旧版本的GPG keys所造成,从rpm版本4.1后,在安装或升级软件包时会自动检查软件包的签名。
warning: 05_mysql-community-server-5.7.16-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
libaio.so.1()(64bit) is needed by mysql-community-server-5.7.16-1.el7.x86_64
解决办法
[root@hadoop102 tmp]$ rpm -ivh 05_mysql-community-server-5.7.16-1.el7.x86_64.rpm --force --nodeps
4)启动MySQL
[root@hadoop102 tmp]$ systemctl start mysqld
5)查看MySQL密码
[root@hadoop102 tmp]$ cat /var/log/mysqld.log | grep password
1.2.2.3 配置MySQL
配置只要是root用户 + 密码,在任何主机上都能登录MySQL数据库。
1)用刚刚查到的密码进入MySQL(如果报错,给密码加单引号)
[root@hadoop102 tmp]$ mysql -uroot -p'password'
2)设置复杂密码(由于MySQL密码策略,此密码必须足够复杂)
mysql> set password=password("Qs23=zs32");
3)更改MySQL密码策略
mysql> set global validate_password_length=4;
mysql> set global validate_password_policy=0;
4)设置简单好记的密码
mysql> set password=password("root@guoyun");
5)进入MySQL库
mysql> use mysql
6)查询user表
mysql> select user, host from user;
7)修改user表,把Host表内容修改为%
mysql> update user set host="%" where user="root";
8)刷新
mysql> flush privileges;
9)退出
mysql> quit;
10)安装mysql驱动(所有节点)
将mysql-connector-java-5.1.27-bin.jar拷贝到/usr/share/java路径下,并重命名
[root@hadoop102 tmp] mkdir ‐p /usr/share/java/
[root@hadoop102 tmp] mv mysql-connector-java-5.1.27-bin.jar mysql-connector-java.jar
[root@hadoop102 tmp] cp mysql-connector-java.jar /usr/share/java/
注意:一定要将mysql-connector-java-5.1.46-bin.jar改名为mysql-connector-java.jar,不然初 始化cm的时候无法识别。
11)创建数据库(主节点数据库)
mysql> CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
1.2.3 yum源安装(主节点)
1.2.3.1启动httpd服务
1)首先需要查看linux是否安装httpd,所以在root权限下输入:
rpm ‐qa | grep httpd 
2)如果没有显示则表示没有安装httpd,输入:
yum ‐y install httpd 
3)开启httpd服务:
systemctl start httpd.service 
systemctl enable httpd.service 
4)查看httpd服务
systemctl status httpd.service

1.2.3.2制作yum源
1)进入httpd根目录
cd /var/www/html/ 
2)创建文件夹cloudera-repos
mkdir cloudera-repos 
cd /var/www/html/cloudera-repos/ 
3)生成RPM元数据:
createrepo . 
提示:createrpo 点 后面有个点 
createrepo没有的话就安装
yum -y install createrepo 
出来一个repodata文件夹就对了

然后访问https://192.168.254.66/cloudera-repos/

1.3 CM安装
1.3.1 集群规划
| 节点 | hadoop102 | hadoop103 | hadoop104 | 
|---|---|---|---|
| 服务 | cloudera-scm-server cloudera-scm-agent | cloudera-scm-agent | cloudera-scm-agent | 
1.3.2 替换yum源(所有节点) 
先备份yum源,
cd /etc/yum.repos.d/ 
mkdir repo_bak
mv *.repo repo_bak/ 
新建并修改文件cloudera-manager.repo
vim cloudera-manager.repo 
# 内容如下 
[cloudera-manager] 
name=Cloudera_Manager_6.2.0 
baseurl=http://192.168.3.67/cloudera-repos/
gpgcheck=0 
enabled=1
其中地址指向主节点的httpd 
保存,退出,然后执行命令
yum clean all && yum makecache 
1.3.3 安装CM server及agent
[root@hadoop102 ~]# yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
[root@hadoop103 ~]# yum install cloudera-manager-agent cloudera-manager-daemons
[root@hadoop104 ~]# yum install cloudera-manager-agent cloudera-manager-daemons
1.3.4 修改CM配置文件(所有主机)
vim /etc/cloudera-scm-agent/config.ini

1.3.5 CDH Parcel文件(主节点)
Cloudera Manager Server安装完成后,进入到本地Parcel存储库目录: 
1)上传CDH的parcel文件和manifest.json
cd /opt/cloudera/parcel-repo 
2)执行下面的命令修改文件所有者:
chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/* 
最终/opt/cloudera/parcel-repo目录内容如下:

1.3.6 设置Cloudera Manager 数据库(主节点)
Cloudera Manager Server包含一个配置数据库的脚本。 
mysql数据库与CM Server是同一台主机时命令为
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm root root@guoyun
/opt/cloudera/cm/schema/scm_prepare_database.sh脚本第一个参数为数据源类型,第二个为库名,第三个为账号,第四个为密码

1.3.7 启动CM服务
1)启动服务节点:hadoop102
[root@hadoop102 ~]# systemctl start cloudera-scm-server
2)启动工作节点:hadoop102、hadoop103、hadoop104
[root@hadoop102 ~]# systemctl start cloudera-scm-agent
[root@hadoop103 ~]# systemctl start cloudera-scm-agent
[root@hadoop104 ~]# systemctl start cloudera-scm-agent
3)查看Server启动日志
[root@hadoop102 ~]# tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

出现Started Jetty server字样及表明启动成功。
4)访问http://hadoop102:7180(初始用户名、密码均为admin)

二、CDH安装
2.1 选择商业版本
1)欢迎页面

2)用户协议

3)选择免费版

2.2 部署CDH集群
1)欢迎页面

2)集群命名

3)选定集群物理节点

4)添加本地parcel库



5)等待parcel的下载、分配、解压和激活

6)检查集群网络环境

7)选择要安装的CDH组件,选择自定义安装

8)选择需要安装的组件,如下

9)CDH各组件角色分布



10)数据库连接测试

11)各组件基本设置,使用默认即可

12)等待安装部署和启动



13)启动成功

- 感谢你赐予我前进的力量
                                
                                
                                    
 
            
         
                
