CDH5.16.2搭建
1.Cloudera Manager
1.1 CM简介
1.1.1 CM简介
Cloudera Manager是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具,使得安装集群从几天的时间缩短在几个小时内,运维人员从数十人降低到几人以内,极大的提高集群管理的效率。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sPl5upU7-1626345381400)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210714160814398.png)]
1.1.2 CM架构
1.2 CM部署准备配置
1.2.1 修改hosts文件
[root@node01 ~]# vim /etc/hosts
127.0.0.1 localhost localhost
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.15.20.144 hadoop144
10.15.20.145 hadoop145
10.15.20.146 hadoop146
注意:这里每个人不一样,ip填写的是私有ip,做完后ping一下。
1.2.2 SSH免密登录
配置node01对node01、node02、node03三台服务器免密登录。CDH服务开启与关闭是通过server和agent来完成的,所以这里不需要配置SSH免密登录,但是为了我们分发文件方便,在这里我们也配置SSH。
1)生成公钥和私钥:
[root@hadoop145 .ssh]$ ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
2)将公钥拷贝到要免密登录的目标机器上
[root@hadoop145 .ssh]$ ssh-copy-id hadoop144
[root@hadoop145 .ssh]$ ssh-copy-id hadoop145
[root@hadoop145 .ssh]$ ssh-copy-id hadoop146
3)重复1和2的操作,配置node02对node01、node02、node03三台服务器免密登录。
1.2.3 集群同步脚本
1)在/root目录下创建bin目录,并在bin目录下创建文件xsync,文件内容如下:
[root@hadoop145 ~]$ mkdir bin
[root@hadoop145 ~]$ cd bin/
[root@hadoop145 bin]$ vi xsync
在该文件中编写如下代码
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi
#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 获取当前用户名称
user=`whoami`
#5 循环
for((host=01; host<04; host++)); do
echo ------------------- hadoop14$host --------------
rsync -av $pdir/$fname $user@hadoop14$host:$pdir
done
2)修改脚本 xsync 具有执行权限
[root@node01 bin]$ chmod 777 xsync
可以在每台机器都增加该脚本,方便后面的操作。
1.2.4 集群整体操作脚本
1)在/root/bin目录下创建脚本xcall.sh
[root@hadoop145 bin]$ vim xcall.sh
2)在脚本中编写如下内容
#! /bin/bash
for i in hadoop144 hadoop145 hadoop146
do
echo --------- $i ----------
ssh $i "source /etc/profile ; $*"
done
3)修改脚本执行权限
[root@hadoop145 bin]$ chmod +x xcall.sh
4)测试
[root@hadoop145 bin]# xcall.sh jps
该脚本也可以在集群每台的机器上面增加
1.2.5 关闭防火墙
阿里云的防火墙默认是关闭的,但是他有web防火墙,我们需要将7180,3306,8888,8889,9870等端口开放。本地服务器的话需要执行
firewalld 服务管理
1、安装firewalld
yum -y install firewall
2、开机启动/禁用服务
systemctl enable/disable firewalld
3、启动/关闭服务
systemctl start/stop firewalld
4、查看服务状态
systemctl status firewalld
1.2.6 关闭SELINUX
安全增强型Linux(Security-Enhanced Linux)简称SELinux,它是一个 Linux 内核模块,也是Linux的一个安全子系统。为了避免安装过程出现各种错误,建议关闭,有如下两种关闭方法:
1)临时关闭(不建议使用)
[root@hadoop145 ~]# setenforce 0
但是这种方式只对当次启动有效,重启机器后会失效。
2)永久关闭(建议使用)
修改配置文件/etc/selinux/config
[root@hadoop145 ~]# vim /etc/selinux/config
将SELINUX=enforcing 改为SELINUX=disabled
SELINUX=disabled
3)同步/etc/selinux/config配置文件
[root@hadoop145 ~]# xsync /etc/selinux/config
4)重启node01、node02、node03主机
[root@hadoop145 ~]# reboot
[root@hadoop145 ~]# reboot
[root@hadoop145 ~]# reboot
1.2.7 配置NTP时钟同步
1.确认是否需要安装
1) 我们的操作系统是 Centos7 , 使用 rpm 管理。首先,查看下我们是否已经安装了该服务,
执行以下命令。
rpm -qa | grep ntp
在我们的主机,执行效果如下:
[root@hadoop145 sbin]# rpm -qa | grep ntp
ntp-4.2.6p5-28.el7.centos.x86_64
fontpackages-filesystem-1.44-8.el7.noarch
ntpdate-4.2.6p5-28.el7.centos.x86_64
python-ntplib-0.3.2-1.el7.noarch
You have new mail in /var/spool/mail/rootxxxxxxxxxx [root@cdh-manager sbin]# rpm -qa | grep ntpntp-4.2.6p5-28.el7.centos.x86_64fontpackages-filesystem-1.44-8.el7.noarchntpdate-4.2.6p5-28.el7.centos.x86_64python-ntplib-0.3.2-1.el7.noarchYou have new mail in /var/spool/mail/root123456
若只有ntpdate而未见ntp,则需删除原有ntpdate。如:
ntpdate-4.2.6p5-22.el7_0.x86_64
fontpackages-filesystem-1.44-8.el7.noarch
python-ntplib-0.3.2-1.el7.noarch
2)删除已安装ntp
【命令】yum -y remove ntpdate-4.2.6p5-22.el7.x86_64
3)重新安装ntp
【命令】yum -y install ntp
2.安装服务
1)Install NTP(每一台)
yum install ntp
2)启动ntpd并设置为开机自启(每个节点hadoop144,hadoop145,hadoop146)
[root@hadoop145 ~]#sudo systemctl enable ntpd
[root@hadoop145 ~]# systemctl start ntpd1
查看服务状态
systemctl status ntpd
检测时间同步情况
ntpq -p
3)使用群发date命令查看结果
xcall date
4.修改时区
1、查看系统当前的时区
[root@node01 etc]# timedatectl
Local time: Fri 2021-07-14 08:31:38 UTC
Universal time: Fri 2021-07-14 08:31:38 UTC
RTC time: Fri 2021-07-14 08:31:38
Time zone: UTC (UTC, +0000)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a
2、修改系统使用的时区
修改为中国时区
timedatectl set-timezone Asia/Shanghai
修改为世界时区
timedatectl set-timezone UTC
3、时间不准确时校准时间
yum install -y ntpdate
ntpdate us.pool.ntp.org
4.将硬件时钟调整为与本地时钟一致, 0 为设置为 UTC 时间((立即生效))
timedatectl set-local-rtc 1
5.查看硬件时间
hwclock --show
1.3 CM安装准备软件
1.3.1 安装JDK(三台)
1)在node01创建**/usr/java**目录
[root@hadoop145 opt]# mkdir /usr/java
2)用SecureCRT或xshell将jdk-8u144-linux-x64.tar.gz上传至node01,并解压到/usr/java目录下。
[root@hadoop145 ~]# tar -zxvf jdk-8u144-linux-x64.tar.gz -C /usr/java/
3)配置JAVA_HOME环境变量
(1)打开/etc/profile文件
[root@hadoop145 software]$ vim /etc/profile
在profile文件末尾添加JDK路径
#JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.8.0_202
export PATH=$PATH:$JAVA_HOME/bin
(2)让修改后的文件生效
[root@hadoop145 jdk1.8.0_202]$ source /etc/profile
4)测试JDK是否安装成功
[root@hadoop145 jdk1.8.0_202]# java -version
java version "1.8.0_202"
5)将node01中的JDK和环境变量分发到hadoop144、hadoop146两台主机
[root@hadoop145 opt]# xsync /usr/java/
[root@hadoop145 opt]# xsync /etc/profile
也分别在hadoop144、hadoop146上source一下
[root@hadoop144 ~]$ source /etc/profile
[root@hadoop144 ~]$ source /etc/profile
1.3.2 安装MySQL
注意:一定要用root用户操作如下步骤;先卸载MySQL再安装
1)安装包准备
(1)查看MySQL是否安装
[root@hadoop145 ~]# rpm -qa|grep -i mysql(忽略查询的时候的大小写)
mysql-libs-5.1.73-7.el6.x86_64
(2)如果安装了MySQL,就先卸载
[root@hadoop145 ~]rpm -e --nodeps mysql-libs-5.1.73-7.el6.x86_64
2)安装MySQL服务器
(1)安装
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
sudo yum install mysql-server
检查是否安装好:
启动服务:sudo systemctl start mysqld
执行 :
mysql
看是否能空密码连接上。
修改密码
SET PASSWORD=PASSWORD('123456');
退出
exit
最后不要忘记, 将mysql 加到 开机启动中**
sudo systemctl enable mysqld
3)MySQL中user表中主机配置
配置root用户的远程登录,只要是root用户+密码,在任何主机上都能登录MySQL数据库。
(1)进入MySQL
[root@hadoop145 mysql-libs]# mysql -uroot -p123456
(2)显示数据库
mysql>show databases;
(3)使用MySQL数据库
mysql>use mysql;
(4)展示MySQL数据库中的所有表
mysql>show tables;
(5)展示user表的结构
mysql>desc user;
(6)查询user表
mysql>select User, Host, Password from user;
(7)修改user表,把Host表内容修改为%
mysql>update user set host='%' where host='localhost';
(8)删除root用户的其他host
mysql>
delete from user where Host='hadoop145';
delete from user where Host='127.0.0.1';
delete from user where Host='::1';
(9)刷新
mysql>flush privileges;
(10)退出
mysql>quit;
1.3.3 为CM安装mysql驱动
(1)下载mysql-connector到node01的/opt/software目录,并解压文件到当前目录
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
tar -zxvf mysql-connector-java-5.1.46.tar.gz -C /opt/module/
(2)创建文件夹并将用到的jar包复制到文件夹下
sudo mkdir -p /usr/share/java/
cd mysql-connector-java-5.1.46
sudo cp mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar
注意:jar包名称要修改为mysql-connector-java.jar
(3)分发驱动
xsync /usr/share/java
1.3.4 创建CM用的数据库
在MySQL中依次创建监控数据库、Hive数据库、Oozie数据库、Hue数据库
1)启动数据库
[root@node01 ~]# mysql -uroot -p123456
2)集群监控数据库
mysql> create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
3)Hive数据库
mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;xxxxxxxxxx mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;1
4)Oozie数据库
mysql> create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
5)Hue数据库
mysql> create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;xxxxxxxxxx mysql> create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;1
6)sentry数据库
mysql> create database sentry DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
7)下面数据库都可以创建一下
create database scm DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database rman DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database navDEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database navmsDEFAULT CHARSET utf8 COLLATE utf8_general_ci;
8)关闭数据库
mysql> quit;
1.4 CM安装部署
1.4.1 CM安装
Cloudera Manager默认采用yum安装,对于能够联网的用户,可直接在线安装,十分快捷方便。对于网络不畅的用户,则可搭建本地yum源,进行安装。
集群规划
节点 | hadoop144 | hadoop145 | hadoop146 |
---|---|---|---|
服务 | cloudera-scm-agent | cloudera-scm-server cloudera-scm-agent | cloudera-scm-agent |
新建yum源配置文件
vim /etc/yum.repos.d/cloudera-manager.repo
文件内容如下
[cloudera-manager]
name=cloudera-manager
baseurl=http://ro-bucharest-repo.bigstepcloud.com/cloudera-repos/cm5/redhat/7/x86_64/cm/5.16.2/
enabled=1
gpgcheck=0
(5)分发该配置文件
xsync /etc/yum.repos.d/cloudera-manager.repo
1.4.2安装CM server及agent
[root@hadoop145 ~]# yum -y install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
[root@hadoop144 ~]# yum -y install cloudera-manager-agent cloudera-manager-daemons
[root@hadoop146 ~]# yum -y install cloudera-manager-agent cloudera-manager-daemons
1.4.3 修改CM配置文件(三台,不要用xsync同步)
vim /etc/cloudera-scm-agent/config.ini
分别修改每台集群的server_host=hadoop145
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-valwsTeu-1626345381404)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210714162000157.png)]
6)为CM配置数据库(自带脚本)
/usr/share/cmf/schema/scm_prepare_database.sh mysql scm root 123456
1.4.4 启动CM服务
1)启动服务节点:hadoop145
[root@hadoop145 ~]# systemctl start cloudera-scm-server
2)启动工作节点:hadoop144、hadoop145、hadoop146
[root@hadoop145 ~]# systemctl start cloudera-scm-agent
[root@hadoop145 ~]# systemctl start cloudera-scm-agent
[root@hadoop145 ~]# systemctl start cloudera-scm-agent
3)查看Server启动日志
[root@hadoop145 cm]# tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
出现Started Jetty server字样及表明启动成功。
4)访问http://10.15.20.145:7180(初始用户名、密码均为admin)
1.4.5关闭CM服务(不需要关 只是说明下命令)
1)关闭工作节点:hadoop145、hadoop145、hadoop145
[root@hadoop144 ~]# systemctl stop cloudera-scm-agent
[root@hadoop145 ~]# systemctl stop cloudera-scm-agent
[root@hadoop146 ~]# systemctl stop cloudera-scm-agent
2)关闭服务节点:hadoop145
[root@hadoop145 ~]# systemctl stop cloudera-scm-server
2 数仓之CDH
Cloudera Manager提供了十分方便的安装向导,大大简化了CDH的安装和部署。
1.5 CM的集群部署
1.5.1欢迎页面
1.5.2 接受条款和协议
1.5.3 选择免费
1.5.4部署CDH集群
1)欢迎页面
2)集群命名
3)选定集群物理节点
4)添加本地parcel库
http://ro-bucharest-repo.bigstepcloud.com/cloudera-repos/cdh5/parcels/5.16.2/
http://ro-bucharest-repo.bigstepcloud.com/cloudera-repos/cdh5/parcels/5.16.2/
5)等待parcel的下载、分配、解压和激活
6)检查集群网络环境
7)选择要安装的CDH组件,选择自定义安装
8)选择需要安装的组件,如下
9)CDH各组件角色分布
10)数据库连接测试
11)各组件基本设置,使用默认即可
12)等待安装部署和启动
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JrsdGbxN-1626345381407)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210714160814398.png)]
1.5.5修改HDFS的权限检查配置
关闭HDFS中的权限检查:dfs.permissions。
1.5.6开启高可用
1)进入HDFS页面点击启用High Availability
2)命名
3)分配角色
4)审核更改
/dfs/jn
5)等待启动服务
1.5.7配置Hue支持Impala
1.6 集群安装问题记录
1.6.1集群安装后报警时钟偏差
1)报警现象如下
2)报警原因:集群安装时时间为世界事件,安装后本地集群时间改为上海时间,但是CDH集群的时间还是时间时间导致的,开启NPT服务后,CDH的时间仍然未同步。暂时将本地集群时间还原为世界事件
1.6.2 hdfs Coding Verification Test
2)报警原因:纠删码默认需要5个节点以上才能开启,集群共3个节点,因此关闭纠删码策略,改用副本集策略
)]](https://i-blog.csdnimg.cn/blog_migrate/5fb513d5e19ac2208a3823f4c8e2821a.png)
2)报警原因:集群安装时时间为世界事件,安装后本地集群时间改为上海时间,但是CDH集群的时间还是时间时间导致的,开启NPT服务后,CDH的时间仍然未同步。暂时将本地集群时间还原为世界事件
1.6.2 hdfs Coding Verification Test
2)报警原因:纠删码默认需要5个节点以上才能开启,集群共3个节点,因此关闭纠删码策略,改用副本集策略