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)启动成功
- 感谢你赐予我前进的力量