大数据系列 | 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.111 | cm-server | 12C32G | CentOS 7.9.2009 |
172.26.3.113 | agent01 | 12C32G | CentOS 7.9.2009 |
172.26.3.114 | agent02 | 12C32G | CentOS 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 1月 1 00:05 allkeys.asc
-rw-r--r-- 1 root root 2082186246 1月 1 02:10 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel
-rw-r--r-- 1 root root 40 1月 1 00:05 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha
-rw-r--r-- 1 root root 10483568 1月 1 00:08 cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
-rw-r--r-- 1 root root 1203832464 1月 1 00:36 cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
-rw-r--r-- 1 root root 11488 1月 1 00:08 cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
-rw-r--r-- 1 root root 194990602 1月 1 01:02 jdk-8u211-linux-x64.tar.gz
drwxr-xr-x 2 root root 4096 1月 1 10:13 mysql
-rw-r--r-- 1 root root 2385601 1月 1 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 4月 2 2019 bin
-r--r--r-- 1 10 143 3244 4月 2 2019 COPYRIGHT
drwxr-xr-x 3 10 143 4096 4月 2 2019 include
-rw-r--r-- 1 10 143 5213268 3月 14 2019 javafx-src.zip
drwxr-xr-x 5 10 143 4096 4月 2 2019 jre
drwxr-xr-x 5 10 143 4096 4月 2 2019 lib
-r--r--r-- 1 10 143 44 4月 2 2019 LICENSE
drwxr-xr-x 4 10 143 4096 4月 2 2019 man
-r--r--r-- 1 10 143 159 4月 2 2019 README.html
-rw-r--r-- 1 10 143 424 4月 2 2019 release
-rw-r--r-- 1 10 143 21105019 4月 2 2019 src.zip
-rw-r--r-- 1 10 143 112748 3月 14 2019 THIRDPARTYLICENSEREADME-JAVAFX.txt
-r--r--r-- 1 10 143 149725 4月 2 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 9月 25 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: