大数据系列 | CDH6.3.2(Cloudera Distribution Hadoop)部署、原理和使用介绍

https://www.xjx100.cn/news/672407.html?action=onClick

https://zhuanlan.zhihu.com/p/335663852

1. 大数据技术生态中Hadoop、Hive、Spark的关系介绍

   大数据属于数据管理系统的范畴,数据管理系统无非就两个问题:数据怎么存、数据怎么算
   现在的信息爆炸时代,一台服务器数据存不下,可以找10台服务器存储,10台存储不下,可以再找100台服务器存储。但是这100台存储怎么管理呢?就好比一个公司有100名员工,老板如何管理这100名员工呢,所以就需要招个经理去管理这100名员工。
   在Hadoop中HDFS去扮演经理这样的角色,HDFS去统一管理这100台服务器上的存储空间,然后提供一个接口,让外部感觉到这100台服务器的存储空间就像一个大存储池一样。
   数据存储下来,接下来就需要去计算。要么存储数据有什么用呢,接下来就需要写一个程序来利用这100台服务器的CPU和内存资源,同时也需要考虑任务如何均匀的分配到这100台服务器中去运行,而且还要需要考虑服务器出现故障后任务的再分配问题,为了解决这些复杂的问题,所以HDFS里面引入了一个模块叫MapReduce。MapReduce提供了一个并行计算的框架,通过它的API可以让上层应用程序将任务分成两个阶段:Map阶段和Reduce阶段。Map阶段就是你有很大的任务,需要找1000个帮手去帮你完成,每人做一份,这就是Map阶段。Reduce阶段就是1000个帮手把任务完成,然后再把结果汇总到你这,然后你再出一个最终结果,这就是Reduce阶段
   现在HDFS处理存储,MapReduce处理计算,看起来很美好,但是以前工程师都是用SQL来处理数据的,但是到大数据时代呢,工程师不能写SQL了,要开始写MapReduce程序了,而且还是分布式处理的程序,这个就给程序员增加了很大的难度。所以对这批工程师的诉求就是能不能也在Hadoop上写SQL,于是Hive就出现了。Hive是一个在Hadoop上进行结构化数据处理(用户能够使用写SQL处理结构化数据)的解决方案。
   Hive里面的一个核心模块就是metastore,它是用来存储这些结构化的信息的,简单来说就是一些表信息、有多少列、每一列是什么样的数据结构等等。Hive里面的执行引擎会把SQL语句进行语法分析,生成语法树。也就是Hive引擎会把这个SQL语句翻译成MapReduce的任务去执行,然后再把执行的结果进行加工,返给用户。这就是一个在Hive里面用SQL去处理数据的过程。Hive的出现使得大数据处理任务的开发效率提高了,但是在数据处理的表达力和灵活性上肯定是不如直接写MapReduce程序的,因此这两个技术也不是相互替代的关系,需要根据实际的场景去选择。
   Spark经常和Hadoop做对比,其实精确的说应该是和Hadoop的MapReduce做对比,Spark也是一个计算框架,它和MapReduce主要的不同就是Spark是一个基于内存的,MapReduce是一个基于磁盘计算的,所以Spark的卖点就是快。Spark和MapReduce都提供了API,可以让开发者去写一些数据处理的程序进行对接。在Spark中也有Spark SQL模块可以让程序员写SQL语句来进行数据处理,当然Spark还提供了其他很多模块可以使用。

在这里插入图片描述

2. CDN(Cloudera Distribution Hadoop)集群部署

   CDH是Cloudera的100%开源平台发行版,包括Apache Hadoop,专为满足企业需求而构建。CDH提供开箱即用的企业使用所需的一切。通过将Hadoop与十几个其他关键的开源项目集成,Cloudera创建了一个功能先进的系统。
   Cloudera Manager的功能:
   ● 管理:对集群进行管理,例如添加、删除节点等操作
   ● 监控:监控集群的健康情况,对设置的各种指标和系统的具体运行情况进行全面的监控
   ● 诊断:对集群出现的各种问题进行诊断,并且给出建议和解决方案
   ● 集成:多组件可以进行版本兼容间的整合

2.1. 集群服务器节点安装部署

2.1.1. 环境准备

   服务器信息:

服务器IP地址主机名硬件配置操作系统版本
172.26.3.111cm-server12C32GCentOS 7.9.2009
172.26.3.113agent0112C32GCentOS 7.9.2009
172.26.3.114agent0212C32GCentOS 7.9.2009

   cm-server用于部署server端(当然也可以将agent端部署在server主机上共用)
   agent01、agent02用于部署集群节点( 实验环境2台也可以 )

   配置检查:

[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:             30           0          30           0           0          30
Swap:            15           0          15

[root@localhost ~]# lscpu | head -4 | tail -1
CPU(s):       12

   安装包准备:
   安装包都放在cm-server那台服务器上

[root@localhost ~]# ll 
总用量 3412048
-rw-r--r-- 1 root root      14041 11 00:05 allkeys.asc
-rw-r--r-- 1 root root 2082186246 11 02:10 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel
-rw-r--r-- 1 root root         40 11 00:05 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha
-rw-r--r-- 1 root root   10483568 11 00:08 cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
-rw-r--r-- 1 root root 1203832464 11 00:36 cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
-rw-r--r-- 1 root root      11488 11 00:08 cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
-rw-r--r-- 1 root root  194990602 11 01:02 jdk-8u211-linux-x64.tar.gz
drwxr-xr-x 2 root root       4096 11 10:13 mysql
-rw-r--r-- 1 root root    2385601 11 00:08 mysql-connector-java-8.0.20.jar

   修改主机名:
   根据各节点ip地址规划更改对应的主机名,分别在各服务器上执行:

[root@localhost ~]# hostnamectl set-hostname cm-server
[root@localhost ~]# hostnamectl set-hostname agent01
[root@localhost ~]# hostnamectl set-hostname agent02

   .配置免密登录:

[root@cm-server ~]# ssh-keygen -t rsa

[root@cm-server ~]# ssh-copy-id -p65522 172.26.3.111
[root@cm-server ~]# ssh-copy-id -p65522 172.26.3.113
[root@cm-server ~]# ssh-copy-id -p65522 172.26.3.114

   建议第一次免密设置完成后手动全部ssh登陆一次:

[root@cm-server ~]# ssh -p65522 172.26.3.113

   配置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

   把cm-server端编辑好的hosts文件分发各个agent:

[root@cm-server ~]# scp -P 65522 /etc/hosts agent01:/etc/hosts
[root@cm-server ~]# scp -P 65522 /etc/hosts agent02:/etc/hosts

   关闭防火墙和SELinux:
   各服务器节点均执行

[root@cm-server ~]# systemctl disable firewalld
[root@cm-server ~]# systemctl stop firewalld
[root@cm-server ~]# setenforce 0
setenforce: SELinux is disabled
[root@cm-server ~]# vi /etc/selinux/config 
SELINUX=disabled

   配置时间同步服务:

[root@cm-server ~]#  yum install -y chrony

[root@cm-server ~]# grep -v ^# /etc/chrony.conf | grep -v ^$
server cm-server iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
allow 172.26.3.0/24
local stratum 10
logdir /var/log/chrony
[root@cm-server ~]# systemctl restart chronyd && systemctl enable chronyd
[root@cm-server ~]# systemctl status chronyd 

   分发chrony配置:

[root@agent01 ~]# yum install -y chrony
[root@agent02 ~]# yum install -y chrony

[root@cm-server ~]# scp -P 65522 /etc/chrony.conf agent01:/etc/chrony.conf   
[root@cm-server ~]# scp -P 65522 /etc/chrony.conf agent02:/etc/chrony.conf

[root@agent01 ~]# systemctl restart chronyd && systemctl enable chronyd
[root@agent02 ~]# systemctl restart chronyd && systemctl enable chronyd
[root@cm-server ~]# for i in cm-server agent01 agent02;do echo $i && ssh -p65522 $i "chronyc sources";done
cm-server
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* cm-server                    10   6   377   102    +85ns[-1668ns] +/- 8503ns
agent01
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* cm-server                    11   6    37    15    -10ns[  -22us] +/- 9492us
agent02
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* cm-server                    11   6    17    28   +437ns[  +36us] +/- 8138us

// 看好输出不能是^? ,结果是^*才是正确的

   调优系统swappiness参数:

   vm.swappiness 参数可以调整机器使用内存、交互分区的比例。vm.swappiness 的取值范围在 0-100 之间,当 vm.swappiness 为 0 时,表示最大限度地使用物理内存,而后使用swap空间;当swappiness为 100 时,表示最大限度地使用swap空间,把内存中的数据及时搬运到swap空间中去。

   各服务器节点均执行:

[root@cm-server ~]# vim /etc/sysctl.conf
vm.swappiness = 0
[root@agent02 ~]# sysctl -p
vm.swappiness = 0
[root@agent02 ~]# sysctl vm.swappiness=0		// 临时修改
vm.swappiness = 0
[root@agent02 ~]# cat /proc/sys/vm/swappiness 
0

   关闭透明大页面:
   大多数 Linux 平台都包含一个称为透明大页面的功能,该功能与 Hadoop 工作节点的交互很差,并且会严重降低性能

[root@cm-server ~]# echo never > /sys/kernel/mm/transparent_hugepage/defrag
[root@cm-server ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled

   安装python2.7:

[root@cm-server ~]# python -V
Python 2.7.5

   Centos7 默认已经安装了Python 2.7.5 版本,如果系统没有安装则使用以下命令安装:

yum install -y python275

   安装jdk1.8:

[root@cm-server ~]# cd /cdh-software/
[root@cm-server cdh-software]# tar -xf jdk-8u211-linux-x64.tar.gz 
[root@cm-server cdh-software]# mkdir -p /usr/java
[root@cm-server cdh-software]# mv jdk1.8.0_211/ /usr/java/default
[root@cm-server cdh-software]# ll /usr/java/default/
总用量 26000
drwxr-xr-x 2 10 143     4096 42 2019 bin
-r--r--r-- 1 10 143     3244 42 2019 COPYRIGHT
drwxr-xr-x 3 10 143     4096 42 2019 include
-rw-r--r-- 1 10 143  5213268 314 2019 javafx-src.zip
drwxr-xr-x 5 10 143     4096 42 2019 jre
drwxr-xr-x 5 10 143     4096 42 2019 lib
-r--r--r-- 1 10 143       44 42 2019 LICENSE
drwxr-xr-x 4 10 143     4096 42 2019 man
-r--r--r-- 1 10 143      159 42 2019 README.html
-rw-r--r-- 1 10 143      424 42 2019 release
-rw-r--r-- 1 10 143 21105019 42 2019 src.zip
-rw-r--r-- 1 10 143   112748 314 2019 THIRDPARTYLICENSEREADME-JAVAFX.txt
-r--r--r-- 1 10 143   149725 42 2019 THIRDPARTYLICENSEREADME.txt

[root@cm-server ~]# vim /etc/profile
# JAVA_HOME
export JAVA_HOME=/usr/java/default
export CLASSPATH=./:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH

[root@cm-server ~]# source /etc/profile
[root@cm-server ~]# java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
[root@agent01 ~]# mkdir -p /usr/java			// 其它各agent节点创建java文件目录
[root@agent02 ~]# mkdir -p /usr/java

[root@cm-server ~]# scp -P 65522 -r /usr/java/default/ agent01:/usr/java/
[root@cm-server ~]# scp -P 65522 -r /usr/java/default/ agent02:/usr/java/		// 在各agent节点上增加环境变量

[root@agent01 ~]# vim /etc/profile
# JAVA_HOME
export JAVA_HOME=/usr/java/default
export CLASSPATH=./:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
[root@agent01 ~]# source /etc/profile
[root@agent01 ~]# java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

   安装MySQL5.7:

[root@cm-server mysql]# yum remove mysql-libs
[root@cm-server mysql]#  yum install -y libaio autoconf
[root@cm-server mysql]# rpm -ivh 01_mysql-community-common-5.7.29-1.el7.x86_64.rpm
[root@cm-server mysql]# rpm -ivh 02_mysql-community-libs-5.7.29-1.el7.x86_64.rpm 
[root@cm-server mysql]# rpm -ivh 03_mysql-community-libs-compat-5.7.29-1.el7.x86_64.rpm 
[root@cm-server mysql]# rpm -ivh 04_mysql-community-client-5.7.29-1.el7.x86_64.rpm 
[root@cm-server mysql]# rpm -ivh 05_mysql-community-server-5.7.29-1.el7.x86_64.rpm 

[root@cm-server mysql]# systemctl start mysqld && systemctl enable mysqld
[root@cm-server mysql]# cat /var/log/mysqld.log | grep password
2024-01-01T02:45:47.112878Z 1 [Note] A temporary password is generated for root@localhost: V/jI;X!7E&!H

[root@cm-server mysql]# mysql -uroot -p'V/jI;X!7E&!H'
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 2
Server version: 5.7.29

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("Hadoop@2023");
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select user, host from user;
+---------------+-----------+
| user          | host      |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys     | localhost |
| root          | localhost |
+---------------+-----------+
3 rows in set (0.00 sec)

mysql> update user set host="%" where user="root";
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> quit;
Bye
[root@cm-server mysql]# mysql -u root -pHadoop@2023
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.29 MySQL Community Server (GPL)

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> source cdh_db.sql
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| amon               |
| hive               |
| hue                |
| metastore          |
| mysql              |
| nav                |
| navms              |
| oozie              |
| performance_schema |
| rman               |
| scm                |
| sentry             |
| sys                |
+--------------------+
14 rows in set (0.00 sec)

mysql> select user, host from user;
+---------------+-----------+
| user          | host      |
+---------------+-----------+
| amon          | %         |
| hive          | %         |
| hue           | %         |
| metastore     | %         |
| nav           | %         |
| navms         | %         |
| oozie         | %         |
| rman          | %         |
| root          | %         |
| scm           | %         |
| sentry        | %         |
| mysql.session | localhost |
| mysql.sys     | localhost |
+---------------+-----------+
13 rows in set (0.00 sec)

mysql> ALTER USER 'scm'@'%' IDENTIFIED BY 'Hadoop@2023';
mysql> ALTER USER 'amon'@'%' IDENTIFIED BY 'Hadoop@2023';
mysql> ALTER USER 'hive'@'%' IDENTIFIED BY 'Hadoop@2023';
mysql> ALTER USER 'hue'@'%' IDENTIFIED BY 'Hadoop@2023';
mysql> ALTER USER 'metastore'@'%' IDENTIFIED BY 'Hadoop@2023';
mysql> ALTER USER 'nav'@'%' IDENTIFIED BY 'Hadoop@2023';
mysql> ALTER USER 'navms'@'%' IDENTIFIED BY 'Hadoop@2023';
mysql> ALTER USER 'oozie'@'%' IDENTIFIED BY 'Hadoop@2023';
mysql> ALTER USER 'rman'@'%' IDENTIFIED BY 'Hadoop@2023';
mysql> ALTER USER 'sentry'@'%' IDENTIFIED BY 'Hadoop@2023';
mysql> flush privileges;

   拷贝JDBC驱动包到指定目录:

[root@cm-server ]# mkdir -p /usr/share/java
[root@cm-server ~]# cp /cdh-software/mysql-connector-java-8.0.20.jar /usr/share/java/mysql-connector-java.jar

[root@agent01 ~]# mkdir -p /usr/share/java
[root@agent02 ~]# mkdir -p /usr/share/java

[root@cm-server ~]# scp -P 65522 /cdh-software/mysql-connector-java-8.0.20.jar agent01:/usr/share/java/mysql-connector-java.jar 
[root@cm-server ~]# scp -P 65522 /cdh-software/mysql-connector-java-8.0.20.jar agent02:/usr/share/java/mysql-connector-java.jar 

2.1.2. 安装 Clouder Manager Server(cm-server)

   在cm-server上安装:

[root@cm-server cdh-software]# yum install -y cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
[root@cm-server cdh-software]# yum install -y cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm

2.1.3. 安装Clouder Manager Agent(agent)

   server上分发agent安装包:

[root@cm-server cdh-software]# scp -P 65522 cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm agent01:~/
[root@cm-server cdh-software]# scp -P 65522 cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm agent02:~/

[root@cm-server cdh-software]# scp -P 65522 cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm agent01:~/ 
[root@cm-server cdh-software]# scp -P 65522 cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm agent02:~/

   所有agent节点均需要安装:

[root@agent01 ~]# yum install -y cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
[root@agent01 ~]# yum install -y cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm 

   所有agent节点上修改配置文件:

[root@agent01 ~]# vim /etc/cloudera-scm-agent/config.ini 
server_host=cm-server		// 主机名是自己环境的server的host主机名

2.1.4. 初始化 Clouder Manager 数据库表

[root@cm-server ~]# ll /opt/cloudera/cm/schema/scm_prepare_database.sh
-rwxr-xr-x 1 root root 12450 925 2019 /opt/cloudera/cm/schema/scm_prepare_database.sh

[root@cm-server ~]# /opt/cloudera/cm/schema/scm_prepare_database.sh -h 172.26.3.111 mysql scm scm Hadoop@2023
JAVA_HOME=/usr/java/default
Verifying that we can write to /etc/cloudera-scm-server
Creating SCM configuration file in /etc/cloudera-scm-server
Executing:  /usr/java/default/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.
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
[                          main] DbCommandExecutor              INFO  Successfully connected to database.
All done, your SCM database is configured correctly!

   或者使用root账号也可以:

[root@cm-server ~]# /opt/cloudera/cm/schema/scm_prepare_database.sh -h 172.26.3.111 mysql scm root  Hadoop@2023

2.1.5. 启动 Clouder Manager Server

[root@cm-server ]# systemctl start cloudera-scm-server
[root@cm-server ]# systemctl enable cloudera-scm-server

2.1.6. 启动 Clouder Manager Agent

[root@agent01 ~]# systemctl start cloudera-scm-agent
[root@agent01 ~]# systemctl enable cloudera-scm-agent

2.1.7. 拷贝Parcel文件到指定目录

[root@cm-server ]# cp /cdh-software/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel /opt/cloudera/parcel-repo/
[root@cm-server ]# cp /cdh-software/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha /opt/cloudera/parcel-repo/

   文件放置在/opt/cloudera/parcel-repo/目录下以后,在后续的界面安装各个服务时,在目录中找到版本文件,可以自动匹配到安装文件,无需连外网下载

2.2. 通过Cloudera Manager管理界面进行集群安装

   http://172.26.3.111:7180/ ,用户名和密码为:admin / admin

在这里插入图片描述
 
   登陆后有欢迎页面,无需操作点击继续即可。Accept License一些条款协议,点击同意继续即可
 
   选择CM版本:
在这里插入图片描述
   选择版本后,再次有欢迎页面,无需操作,点击继续即可
 
   设置集群名称,自定义完集群名称,点击继续
在这里插入图片描述
 
   勾选管理节点(安装agent的服务器并配置正确后才会显示):
在这里插入图片描述
 
   CDH parcel 版本,一般这里默认会选择好当前安装版本:
在这里插入图片描述
 
   选择版本后,Clouder Manager Server 会将parcel解压,分发,安装到每一台选择Clouder Manager Agent的服务器;需要耐心等待进度完成后才可点击下一步。
在这里插入图片描述
 
   检查服务器部署环境:
在这里插入图片描述
 
   选择部署组件:
  选择需要安装的大数据组件,也可以勾选自定义服务中的清单,可以少选一些服务,后续是可以新增服务的
在这里插入图片描述
 
   集群各节点角色分配:
   默认即可,需要优化性能或者最佳合理分配可自行更改
在这里插入图片描述
 
   集群数据库配置
   如果发现需要的数据库、用户名、密码不存在,可以参照执行的sql文件格式,新增库和用户名等
在这里插入图片描述
 

   集群数据存储目录设置:
   没有特殊需求,集群数据存储目录设置根据需要设置各组件数据存储目录,这里保持默认即可
在这里插入图片描述
 
   集群组件安装部署:
   等待各组件安装完成
在这里插入图片描述
 
   完成安装:
在这里插入图片描述
 
   登陆Clouder Manager管理界面:
   点击完成后,即可跳转至管理界面了,后续使用以及维护全部围绕管理界面来完成,以及检查监控集群各组件运行情况
在这里插入图片描述
 

在这里插入图片描述
   如果集群中有二个datanode,而HDFS配置有3个副本的话,就会出现这样的问题,可以再添加一个节点来解决,也可以通过如下的办法处理:
 
在这里插入图片描述
   或者通过命令修改已有的副本数:

# sudo -u hdfs hadoop fs -setrep -R 2 /  

2.3. 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.
在这里插入图片描述
 
在这里插入图片描述
 
在这里插入图片描述
  目前基本上没有太大的问题了。

2.4. Cloudera Manager管理界面使用介绍

   首页查看整体运行状态:
   点击标识,可以看到详细的内容:
在这里插入图片描述
 
   添加服务:
在这里插入图片描述
 
   例如新增flume服务,勾选flume,然后选择角色分配部署节点,点击继续
在这里插入图片描述
 
在这里插入图片描述
 
在这里插入图片描述
 
   最后部署汇总,点击完成
在这里插入图片描述
 
   启动新增的服务
在这里插入图片描述
 
   等待启动步骤完成:
在这里插入图片描述
 
   服务添加完成:
在这里插入图片描述
 
   用户管理页面操作记录:
在这里插入图片描述
 
   导出服务配置文件:
在这里插入图片描述
 
   各节点角色:
在这里插入图片描述
 
   添加页面管理用户&用户权限管理:
在这里插入图片描述
 
在这里插入图片描述
 
   切换至普通用户登陆查看,用户大多对于集群的操作均已被隐藏
在这里插入图片描述
 
   备份快照:
   快照备份可以是hdfs等不同的存储介质进行备份
在这里插入图片描述
 
   集群监控查看:
   在主机页,所有主机 点击对应主机可以跳转至对应主机服务器的各指标监控页
在这里插入图片描述
 
   各监控项查看:
在这里插入图片描述
 
   打开各组件的UI界面操作:
在这里插入图片描述
 
在这里插入图片描述

   举例HUE-UI:
在这里插入图片描述
 
在这里插入图片描述
 
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Kubernetes上部署CDH 6.3.2Cloudera Distribution for Hadoop)需要一些步骤和配置。以下是一个大致的指南: 1. 创建Kubernetes集群:首先,你需要在Kubernetes平台上创建一个可用的集群,可以使用工具如kubeadm、kops、Minikube或Kubernetes云服务提供商(如GKE、AKS、EKS等)来创建。 2. 安装Helm:Helm是一个Kubernetes的包管理工具,可以帮助你管理和部署应用程序。安装Helm并将其配置为与你的Kubernetes集群配合使用。 3. 添加Helm Chart仓库:将Cloudera的Helm Chart仓库添加到Helm配置中,以获取CDH 6.3.2的Chart。 4. 配置CDH Helm Chart:创建一个Helm values文件,用于配置CDH部署。在该文件中,你可以指定CDH组件、节点数量、存储配置、网络设置等。 5. 安装CDH使用Helm命令来安装CDH Chart。例如: ```shell helm install cdh cloudera/cdh --values your_values.yaml ``` 将"your_values.yaml"替换为你创建的Helm values文件路径。 6. 监视和验证部署使用Kubernetes的工具和命令来监视和验证CDH部署。你可以使用kubectl命令来查看Pod、Service和其他资源的状态。 请注意,这只是一个概述,并且具体的部署过程可能会因你的环境和需求而有所不同。你可能还需要配置网络和存储设置,以及根据你的要求定制其他CDH组件。 建议在部署CDH之前,详细阅读Cloudera的官方文档,并根据指南进行操作。这些文档提供了更详细和具体的部署说明,以及解决常见问题的方法。 请记住,在部署CDH之前,确保你的Kubernetes集群满足CDH的要求,并且你对Kubernetes和CDH的配置和管理有一定的了解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

降世神童

学都学了,看也看了,感谢打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值