大数据系列 | CDH6.2大数据平台安装部署、原理和使用介绍
1. CDH介绍
2. CDN集群规划
CDH是Cloudera的100%开源平台发行版,包括Apache Hadoop,专为满足企业需求而构建。CDH提供开箱即用的企业使用所需的一切。通过将Hadoop与十几个其他关键的开源项目集成,Cloudera创建了一个功能先进的系统。
Cloudera Manager的功能:
● 管理:对集群进行管理,例如添加、删除节点等操作
● 监控:监控集群的健康情况,对设置的各种指标和系统的具体运行情况进行全面的监控
● 诊断:对集群出现的各种问题进行诊断,并且给出建议和解决方案
● 集成:多组件可以进行版本兼容间的整合
服务器信息:
服务器IP地址 | 主机名 | 硬件配置 | 操作系统版本 | 角色 |
---|---|---|---|---|
172.26.3.111 | cdh01 | 8C16G/200G | CentOS 7.9.2009 | cm server |
172.26.3.113 | cdh02 | 8C16G/200G | CentOS 7.9.2009 | |
172.26.3.114 | cdh03 | 8C16G/200G | CentOS 7.9.2009 |
cm-server用于部署server端(当然也可以将agent端部署在server主机上共用)
配置检查:
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@localhost ~]# free -g
total used free shared buff/cache available
Mem: 15 3 0 0 11 12
Swap: 0 0 0
[root@localhost ~]# lscpu | head -4 | tail -1
CPU(s): 8
安装包准备:
安装包都放在cm-server那台服务器上
[root@localhost ~]# ll /root
total 3282072
-rw-r--r-- 1 root root 2093332003 Dec 6 21:55 CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel
drwxr-xr-x 2 root root 4096 Dec 6 21:52 cloudera-repos
-rw-r--r-- 1 root root 95840 Dec 6 21:52 createrepo-0.9.9-28.el7.noarch.rpm
-rwxr-xr-x 1 root root 42538 Jun 2 2021 kec-ipv6-setup-utils
-rw-r--r-- 1 root root 541163520 Dec 6 21:54 mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar
-rw-r--r-- 1 7155 31415 26463604 Jun 3 2020 mysql-community-client-5.7.31-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 318768 Jun 3 2020 mysql-community-common-5.7.31-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 3921992 Jun 3 2020 mysql-community-devel-5.7.31-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 47438588 Jun 3 2020 mysql-community-embedded-5.7.31-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 23260840 Jun 3 2020 mysql-community-embedded-compat-5.7.31-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 130786492 Jun 3 2020 mysql-community-embedded-devel-5.7.31-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 2461644 Jun 3 2020 mysql-community-libs-5.7.31-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 1263812 Jun 3 2020 mysql-community-libs-compat-5.7.31-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 181613808 Jun 3 2020 mysql-community-server-5.7.31-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 123621160 Jun 3 2020 mysql-community-test-5.7.31-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 184988341 Dec 6 21:55 oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
-rw-r--r-- 1 root root 32084 Dec 6 21:55 python-deltarpm-3.6-3.el7.x86_64.rpm
3. 部署CDH集群
3.1. 基础组件安装
修改主机名:
根据各节点ip地址规划更改对应的主机名,分别在各服务器上执行:
[root@vm10-1-248-248 ~]# hostnamectl set-hostname cdh01
[root@vm10-1-248-45 ~]# hostnamectl set-hostname cdh02
[root@vm10-1-248-46 ~]# hostnamectl set-hostname cdh03
绑定集群内所有机器的主机名和ip的映射关系:
cat /etc/hosts
127.0.0.1 localhost
127.0.0.1 vm10-1-248-248.cloud.local
10.1.248.248 cdh01
10.1.248.45 cdh02
10.1.248.46 cdh03
关闭防火墙和SELinux:
各服务器节点均执行
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/^SELINUX=.*$/SELINUX=disabled/g' /etc/selinux/config
配置集群内所有节点之间的互相免密码登录:
[root@cdh01 ~]# ssh-keygen -t rsa
[root@cdh01 ~]# ssh-copy-id 10.1.248.248
[root@cdh01 ~]# ssh-copy-id 10.1.248.45
[root@cdh01 ~]# ssh-copy-id 10.1.248.46
在cdh02、cdh03中也都需要做同样的免密钥配置,都配置完成后手动全部ssh登陆一次
在集群内搭建ntp时间服务器:
# yum install -y chrony
# 将下面四行的内容注释掉
#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.aliyun.com
# 最终效果如下
# grep -v ^# /etc/chrony.conf | grep -v ^$
server ntp.aliyun.com
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
logdir /var/log/chrony
# systemctl restart chronyd && systemctl enable chronyd
[root@cdh01 ~]# for i in cdh01 cdh02 cdh03;do echo $i && ssh $i "chronyc sources";done
cdh01
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 203.107.6.88 2 6 17 16 -76us[+1922us] +/- 27ms
cdh02
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? 203.107.6.88 2 6 3 29 +5869us[+5869us] +/- 29ms
cdh03
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? 203.107.6.88 2 6 3 12 +2944us[+2944us] +/- 21ms
// 看好输出不能是^? ,结果是^*才是正确的
调优系统swappiness参数:
vm.swappiness
参数可以调整机器使用内存、交互分区的比例。vm.swappiness
的取值范围在 0-100 之间,当 vm.swappiness
为 0 时,表示最大限度地使用物理内存,而后使用swap
空间;当swappiness
为 100 时,表示最大限度地使用swap
空间,把内存中的数据及时搬运到swap
空间中去。
各服务器节点均执行:
# vim /etc/sysctl.conf
vm.swappiness = 0
# sysctl -p
vm.swappiness = 0
# sysctl vm.swappiness=0 // 临时修改
vm.swappiness = 0
# cat /proc/sys/vm/swappiness
0
在集群内的所有节点上安装jdk:
建议使用CDH提供的JDK软件包:
rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
vim /etc/profile
# 添加
export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile
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)
其他两台主机也需要安装JDK。
在cdh01节点上安装MySQL:
[root@cdh01 ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
[root@cdh01 ~]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
[root@cdh01 ~]# yum install libaio
[root@cdh01 ~]# rpm -ivh mysql-community-common-5.7.31-1.el7.x86_64.rpm
[root@cdh01 ~]# rpm -ivh mysql-community-libs-5.7.31-1.el7.x86_64.rpm
[root@cdh01 ~]# rpm -ivh mysql-community-client-5.7.31-1.el7.x86_64.rpm
[root@cdh01 ~]# rpm -ivh mysql-community-libs-compat-5.7.31-1.el7.x86_64.rpm
[root@cdh01 ~]# rpm -ivh mysql-community-server-5.7.31-1.el7.x86_64.rpm
[root@cdh01 ~]# systemctl start mysqld && systemctl enable mysqld
[root@cdh01 ~]# cat /var/log/mysqld.log | grep password
2024-12-13T14:22:02.427245Z 1 [Note] A temporary password is generated for root@localhost: ?uW(qO3hJ<xj
[root@cdh01 ~]# mysql -u root -p'8*&h#14zZ;Ly'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.31
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> set password=password("Bigdata@2025");
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> select user, host from mysql.user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+---------------+-----------+
3 rows in set (0.00 sec)
mysql> use mysql
mysql> update user set host="%" where user="root";
mysql> flush privileges;
[root@cdh01 ~]# mysql -u root -pBigdata@2025
mysql> create database cmserver default charset utf8 collate utf8_general_ci;
mysql> grant all on cmserver.* to 'root'@'%' identified by 'Bigdata@2025';
mysql> create database metastore default charset utf8 collate utf8_general_ci;
mysql> grant all on metastore.* to 'root'@'%' identified by 'Bigdata@2025';
mysql> create database rman default charset utf8 collate utf8_general_ci;
mysql> grant all on rman.* to 'root'@'%' identified by 'Bigdata@2025';
mysql> create database oozie default charset utf8 collate utf8_general_ci;
mysql> grant all on oozie.* to 'root'@'%' identified by 'Bigdata@2025';
mysql> create database hue default charset utf8 collate utf8_general_ci;
mysql> grant all on hue.* to 'root'@'%' identified by 'Bigdata@2025';
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| cmserver |
| hue |
| metastore |
| mysql |
| oozie |
| performance_schema |
| rman |
| sys |
+--------------------+
9 rows in set (0.00 sec)
mysql> flush privileges;
拷贝JDBC驱动包到指定目录:
[root@cdh01 ~]# mkdir -p /usr/share/java
[root@cdh01 ~]# cp -pdr /root/mysql-connector-java-5.1.47.jar /usr/share/java/mysql-connector-java.jar
[root@cdh01 ~]# ll /usr/share/java/
total 984
-rw-r--r-- 1 root root 1007502 Dec 6 21:54 mysql-connector-java.jar
在cdh01节点上安装httpd服务:
[root@cdh01 ~]# yum install httpd
[root@cdh01 ~]# systemctl start httpd
[root@cdh01 ~]# systemctl status httpd
[root@cdh01 ~]# mkdir -p /var/www/html/cloudera-repos/cm6
[root@cdh01 ~]# cp -pdr /root/cloudera-repos/* /var/www/html/cloudera-repos/cm6
[root@cdh01 ~]# ll /var/www/html/cloudera-repos/cm6/
total 1181632
-rw-r--r-- 1 root root 14041 Dec 6 21:46 allkeys.asc
-rw-r--r-- 1 root root 10215608 Dec 6 21:46 cloudera-manager-agent-6.2.1-1426065.el7.x86_64.rpm
-rw-r--r-- 1 root root 1199718256 Dec 6 21:52 cloudera-manager-daemons-6.2.1-1426065.el7.x86_64.rpm
-rw-r--r-- 1 root root 9988 Dec 6 21:52 cloudera-manager-server-6.2.1-1426065.el7.x86_64.rpm
-rw-r--r-- 1 root root 10996 Dec 6 21:52 cloudera-manager-server-db-2-6.2.1-1426065.el7.x86_64.rpm
-rw-r--r-- 1 root root 1718 Dec 6 21:52 RPM-GPG-KEY-cloudera
[root@cdh01 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@cdh01 ~]# sed -i 's/$releasever/7/g' /etc/yum.repos.d/CentOS-Base.repo
[root@cdh01 ~]# yum install -y python-deltarpm-3.6-3.el7.x86_64.rpm
[root@cdh01 ~]# yum install -y createrepo-0.9.9-28.el7.noarch.rpm
[root@cdh01 ~]# createrepo --help
[root@cdh01 ~]# createrepo /var/www/html/cloudera-repos/cm6/
[root@cdh01 ~]# ll /var/www/html/cloudera-repos/cm6/
total 1181632
-rw-r--r-- 1 root root 14041 Dec 6 21:46 allkeys.asc
-rw-r--r-- 1 root root 10215608 Dec 6 21:46 cloudera-manager-agent-6.2.1-1426065.el7.x86_64.rpm
-rw-r--r-- 1 root root 1199718256 Dec 6 21:52 cloudera-manager-daemons-6.2.1-1426065.el7.x86_64.rpm
-rw-r--r-- 1 root root 9988 Dec 6 21:52 cloudera-manager-server-6.2.1-1426065.el7.x86_64.rpm
-rw-r--r-- 1 root root 10996 Dec 6 21:52 cloudera-manager-server-db-2-6.2.1-1426065.el7.x86_64.rpm
drwxr-xr-x 2 root root 4096 Dec 7 21:28 repodata # 多一个该文件
-rw-r--r-- 1 root root 1718 Dec 6 21:52 RPM-GPG-KEY-cloudera
[root@cdh01 ~]# vim /etc/yum.repos.d/cloudera-manager.repo
[cloudera-manager]
name = Cloudera Manager,Version
baseurl = http://cdh01/cloudera-repos/cm6
gpgcheck = 0
[root@cdh01 ~]# yum clean all
[root@cdh01 ~]# yum makecache
在cdh02、cdh03上配置yum源:
[root@cdh02 ~]# cat /etc/yum.repos.d/cloudera-manager.repo
[cloudera-manager]
name = Cloudera Manager,Version
baseurl = http://cdh01/cloudera-repos/cm6
gpgcheck = 0
3.2. 安装 Cloudera Manager相关服务
3.2.1. 安装 Clouder Manager Server(cm-server)
[root@cdh01 ~]# rpm --import http://cdh01/cloudera-repos/cm6/RPM-GPG-KEY-cloudera
[root@cdh01 ~]# yum -y install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
3.2.2. 安装Clouder Manager Agent(agent)
在cdh01、cdh02、cdh03上都需要安装agent:
[root@cdh02 ~]# rpm --import http://cdh01/cloudera-repos/cm6/RPM-GPG-KEY-cloudera
[root@cdh02 ~]# yum -y install cloudera-manager-daemons cloudera-manager-agent
[root@cdh03 ~]# rpm --import http://cdh01/cloudera-repos/cm6/RPM-GPG-KEY-cloudera
[root@cdh03 ~]# yum -y install cloudera-manager-daemons cloudera-manager-agent
安装完cm之后,在/opt/目录下会出现cloudera目录,上传cdh安装包到集群所有节点上
将cdh的安装包CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel
上传到/opt/cloudera/parcel-repo目录中。
[root@cdh01 ~]# cp /root/CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel /opt/cloudera/parcel-repo/
[root@cdh01 ~]# cd /opt/cloudera/parcel-repo/
[root@cdh01 ~]# sha1sum CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel | awk '{print $1}' > CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha
[root@cdh02 ~]# mkdir -p /opt/cloudera/parcel-repo
[root@cdh03 ~]# mkdir -p /opt/cloudera/parcel-repo
[root@cdh01 ~]# scp -pdr /opt/cloudera/parcel-repo/CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel cdh02:/opt/cloudera/parcel-repo/
[root@cdh01 ~]# scp -pdr /opt/cloudera/parcel-repo/CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha cdh02:/opt/cloudera/parcel-repo/
[root@cdh01 ~]# scp -pdr /opt/cloudera/parcel-repo/CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel cdh03:/opt/cloudera/parcel-repo/
[root@cdh01 ~]# scp -pdr /opt/cloudera/parcel-repo/CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha cdh03:/opt/cloudera/parcel-repo/
文件放置在/opt/cloudera/parcel-repo/
目录下以后,在后续的界面安装各个服务时,在目录中找到版本文件,可以自动匹配到安装文件,无需连外网下载
3.2.3. 初始化 Clouder Manager 数据库表
[root@cdh01 ~]# /opt/cloudera/cm/schema/scm_prepare_database.sh mysql cmserver root Bigdata@2025
JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
Verifying that we can write to /etc/cloudera-scm-server
Creating SCM configuration file in /etc/cloudera-scm-server
Executing: /usr/java/jdk1.8.0_181-cloudera/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/java/postgresql-connector-java.jar:/opt/cloudera/cm/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
Sat Dec 14 20:56:29 CST 2024 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
2024-12-14 20:56:29,618 [main] INFO com.cloudera.enterprise.dbutil.DbCommandExecutor - Successfully connected to database.
All done, your SCM database is configured correctly!
3.2.4. 启动 Clouder Manager Server
[root@cdh01 ~]# systemctl start cloudera-scm-server && systemctl enable cloudera-scm-server
4. 通过Cloudera Manager管理界面进行集群安装
http://172.26.3.111:7180/
,用户名和密码为:admin / admin
登陆后有欢迎页面,无需操作点击继续即可。Accept License
一些条款协议,点击同意继续即可
选择CM版本:
选择版本后,再次有欢迎页面,无需操作,点击继续即可
设置集群名称,自定义完集群名称,点击继续
勾选管理节点(安装agent的服务器并配置正确后才会显示):
当前受管:假如在安装的时候出现问题,如网络连接中断,机器死机,继续安装的时候可能会出现查询不到机器,并且根据ip搜索机器的时候,出现“当前受管”的状态为“是”,安装失败的机器不能再选择了。
CDH parcel 版本,一般这里默认会选择好当前安装版本:
选择版本后,Clouder Manager Server
会将parcel解压,分发,安装到每一台选择Clouder Manager Agent
的服务器;需要耐心等待进度完成后才可点击下一步。
检查服务器部署环境:
# echo never > /sys/kernel/mm/transparent_hugepage/defrag
# echo never > /sys/kernel/mm/transparent_hugepage/enabled
防止重新开机后失效,加到rc.local
# vim /etc/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
修改完毕以后,点击重新运行。
选择部署组件:
选择需要安装的大数据组件,也可以勾选自定义服务中的清单,可以少选一些服务,后续是可以新增服务的
集群各节点角色分配:
默认即可,需要优化性能或者最佳合理分配可自行更改
集群数据库配置
如果发现需要的数据库、用户名、密码不存在,可以参照执行的sql文件格式,新增库和用户名等
集群数据存储目录设置:
没有特殊需求,集群数据存储目录设置根据需要设置各组件数据存储目录,这里保持默认即可
集群组件安装部署:
等待各组件安装完成
完成安装:
登陆Clouder Manager管理界面:
点击完成后,即可跳转至管理界面了,后续使用以及维护全部围绕管理界面来完成,以及检查监控集群各组件运行情况
这里面其实还有一个黄色的警告信息,这个是针对hdfs的纠删码机制的警告。
首先解决这个问题:
Erasure Coding Policy Verification Test
这个是hadoop3.0中的新特性(hdfs的存储策略),纠删码机制,可以节省HDFS的存储空间,不过至少需要有9个datanode才可以,目前我们这个集群只有2个datanode,所以不能使用这种策略。
然后,去掉针对纠删码的检测
接着继续来解决这个安全隐患,点击这个红色感叹号
这里提示的是hdfs中block块的副本数不足,其实是因为现在hdfs中的数据默认需要存储3份,但是我们这个集群之后2个datanode,如果再多一个datanode节点就不会有这个问题,不过也不影响使用,如果大家在搭建的时候集群内的机器足够多的话是不会出现这个安全隐患的提示的。
进入hdfs的配置界面
将副本因子改为2,点击保存更改按钮
改完配置之后,想要生效需要重新启动,此时页面也提示了,需要重启
可以选择只重启某一个组件(点击组件后面的按钮,在弹出框中选择重启),
或者全部重启(点击cluster1 右边的按钮,在弹出框中选择重启)。
在这里我们选择全部重启,因为大部分组件都提示需要重启读取最新的配置。
重启成功之后发现,这里还有一些提示,需要我们重新部署客户端配置
先点击HDFS后面的按钮:
点击右下角的 部署客户端配置按钮
部署成功之后点击完成按钮即可,然后可以跳转到首页,此时会发现就不显示那个蓝色的按钮了。
如果感觉这个红色的感叹号比较别扭,可以选择忽略这个问题,因为我们知道是什么原因造成的。
点击红色感叹号,然后点击suppress
在弹出的界面中点击确认即可
此时再回到首页,刷新几次页面,这个红色的感叹号就会消失了。
目前首页还显示的有一些黄色的警告信息,都是一些关于jvm内存配置的警告信息,根据提示去修改即可。
5. 使用cdh集群中的hdfs
不管是使用apache官方的hadoop安装的hdfs,还是使用cdh集群安装的hdfs,操作都是一样的。
此时我们进入到cdh01节点中,操作一下hdfs
[root@cdh01 ~]# hdfs dfs -ls /
Found 2 items
drwxrwxrwt - hdfs supergroup 0 2024-12-14 22:34 /tmp
drwxr-xr-x - hdfs supergroup 0 2024-12-14 22:34 /user
创建文件夹:
[root@cdh01 ~]# hdfs dfs -mkdir /bigdata_test
mkdir: Permission denied: user=root, access=WRITE, inode="/":hdfs:supergroup:drwxr-xr-x
提示权限问题,创建失败。
CDH环境下Hadoop平台最高权限用户是hdfs,属于supergroup组。
默认HDFS会开启权限认证,所以操作时,需要将root用户切换到hdfs用户,否则会报错。
这样操作就可以了
[root@cdh01 ~]# sudo -uhdfs hdfs dfs -mkdir /bigdata_test
[root@cdh01 ~]# hdfs dfs -ls /
Found 3 items
drwxr-xr-x - hdfs supergroup 0 2024-12-16 11:31 /bigdata_test
drwxrwxrwt - hdfs supergroup 0 2024-12-14 22:34 /tmp
drwxr-xr-x - hdfs supergroup 0 2024-12-14 22:34 /user
这样每次操作都需要切换不太方便,如yarn在调度时,通常会生成一些临时文件,执行完毕会删除,如果权限不够会导致出错。Hive和HBase读写hdfs,也很容易因为权限问题导致出错。但是关闭权限检查,任何用户都可以操作HDFS数据,数据安全性又没有保障,所以使用将用户添加到supergroup组的方式。
通常会把 root 或者需要的用户添加到 supergroup组,但Linux下默认是没有supergroup组。所以,先在Linux添加supergroup组,把root用户添加到supergroup里,再同步权限到HDFS。
6. CDH集群启停
6.1. 停止cm和cdh集群
停止整个集群分为两步
1:先停止cdh集群
2:再停止cm
6.2. 启动cm和cdh集群
想要启动整个集群的话,可以分为两步
1:先启动cm
2:再启动cdh集群
7. CDH集群新增agent节点安装部署
新增agent节点agent03:
[root@localhost ~]# hostnamectl set-hostname agent03
将cm-server密钥分发至新agent03:
[root@cm-server ~]# ssh-copy-id 172.26.3.106
修改hosts解析新增节点并分发:
[root@cm-server ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.26.3.111 cm-server
172.26.3.113 agent01
172.26.3.114 agent02
172.26.3.106 agent03
[root@cm-server ~]# for i in agent01 agent02 agent03;do scp -P 65522 /etc/hosts $i:/etc/hosts;done // 几个节点全需要同步
新节点关闭防火墙和SElinux:
[root@agent03 ~]# systemctl disable firewalld
[root@agent03 ~]# systemctl stop firewalld
[root@agent03 ~]# setenforce 0
新节点配置时间同步服务:
[root@agent03 ~]# yum install -y chrony
[root@cm-server ~]# scp -P65522 /etc/chrony.conf agent03:/etc/chrony.conf
[root@agent03 ~]# systemctl restart chronyd && systemctl enable chronyd
[root@agent03 ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* cm-server 11 6 37 5 -1034ns[ -128us] +/- 1437us
新节点调优系统swappiness参数:
[root@agent03 ~]# vim /etc/sysctl.conf
vm.swappiness = 0
[root@agent03 ~]# sysctl -p
vm.swappiness = 0
新节点关闭透明大页面:
[root@agent03 ~]# echo never > /sys/kernel/mm/transparent_hugepage/defrag
[root@agent03 ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
确认节点上已安装python:
[root@agent03 ~]# python -V
Python 2.7.5
新节点Java安装:
[root@cm-server ~]# scp -P 65522 -r /usr/java/default agent03:/usr/java/
[root@agent03 ~]# mkdir -p /usr/java
# JAVA_HOME
export JAVA_HOME=/usr/java/default
export CLASSPATH=./:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
[root@agent03 ~]# source /etc/profile
拷贝JDBC 驱动包:
[root@agent03 ~]# mkdir /usr/share/java
[root@cm-server ~]# scp -P 65522 /cdh-software/mysql-connector-java-8.0.20.jar agent03:/usr/share/java/mysql-connector-java.jar
安装Clouder Manager Agent:
将安装包从cm-server分发过去
[root@cm-server ~]# scp -P 65522 /cdh-software/cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm agent03:~/
[root@cm-server ~]# scp -P 65522 /cdh-software/cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm agent03:~/
在agent03上执行安装:
[root@agent03 ~]# yum install -y cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
[root@agent03 ~]# yum install -y cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
修改agent服务的配置文件指向server:
[root@agent03 ~]# vim /etc/cloudera-scm-agent/config.ini
server_host=cm-server
启动新agent服务:
[root@agent03 ~]# systemctl start cloudera-scm-agent
[root@agent03 ~]# systemctl enable cloudera-scm-agent
页面进行后续添加:
找到Add Hosts
选择添加到哪个集群并继续:
选择当前管理的主机,会将还未加入到集群的新节点罗列出来
选择主机模板,如果长期使用的集群一般都会有模板的,主要是节点的角色,创建好直接有哪些服务的node等等;没有则可以直接选择无,代表加入集群后,手动添加服务实例。
等待部署客户端基本配置和环境点击完成:
将服务实例部署至新agent:
在添加时根据自己需求即可,例如DataNode:
添加agent03的角色,所以建议长期使用创建要给模板最佳,相对方便:
至此,添加一个新集群节点,并设置新服务实例全部完成:
问题处理:
存在隐患 : 9 DataNodes are required for the erasure coding policies: RS-6-3-1024k. The number of DataNodes is only 3.
目前基本上没有太大的问题了。
8. Cloudera Manager管理界面使用介绍
首页查看整体运行状态:
点击标识,可以看到详细的内容:
添加服务:
例如新增flume服务,勾选flume,然后选择角色分配部署节点,点击继续
最后部署汇总,点击完成
启动新增的服务
等待启动步骤完成:
服务添加完成:
用户管理页面操作记录:
导出服务配置文件:
各节点角色:
添加页面管理用户&用户权限管理:
切换至普通用户登陆查看,用户大多对于集群的操作均已被隐藏
备份快照:
快照备份可以是hdfs等不同的存储介质进行备份
集群监控查看:
在主机页,所有主机 点击对应主机可以跳转至对应主机服务器的各指标监控页
各监控项查看:
打开各组件的UI界面操作:
举例HUE-UI: