CentOS 7下Cloudera Manager及CDH 6.1.0安装过程详解

一、概念介绍

1、CDH 概览

CDH是Apache Hadoop和相关项目的最完整、最受测试和最流行的发行版。CDH提供Hadoop的核心元素-可伸缩存储和分布式计算-以及基于web的用户界面和重要的企业功能。CDH是Apache许可的开放源码,是唯一提供统一批处理、交互式SQL和交互式搜索以及基于角色的访问控制的Hadoop解决方案。

CDH 提供以下特性:

  • 灵活性:存储任何类型的数据并使用各种不同的计算框架进行操作,包括批处理、交互式SQL、免费文本搜索、机器学习和统计计算。
  • 集成:在一个完整的Hadoop平台上快速启动和运行,该平台与广泛的硬件和软件解决方案一起工作。
  • 安全:处理和控制敏感数据。
  • 可伸缩性:启用广泛的应用程序和规模,并扩展它们以满足您的需求。
  • 高可用性:满怀信心地执行任务关键的业务任务。
  • 兼容性:利用您现有的IT基础设施和投资。

CDH 组件如下图:

2、Cloudera Manager 概览

Cloudera Manager 是用于管理cdh集群的端到端应用程序。Cloudera Manager通过向CDH集群的每个部分提供细粒度的可见性并对其进行控制来设置企业部署标准-授权运营商提高性能、提高服务质量、提高遵从性和降低管理成本。使用Cloudera Manager,您可以轻松地部署和集中操作完整的CDH堆栈和其他托管服务。应用程序自动化安装过程,将部署时间从数周减少到分钟;为您提供在集群范围内运行主机和服务的实时视图;提供一个单一的中央控制台来执行整个集群的配置更改;并集成各种报告和诊断工具,以帮助您进行操作。

Cloudera Manager 的架构如上图所示(cs结构),主要由如下几部分组成:

  • 服务端/Server:
    Cloudera Manager 的核心。主要用于管理 web server 和应用逻辑。它用于安装软件,配置,开始和停止服务,以及管理服务运行的集群。
  • 代理/agent:
    安装在每台主机上。它负责启动和停止的进程,部署配置,触发安装和监控主机。
  • 数据库/Database:
    存储配置和监控信息。通常可以在一个或多个数据库服务器上运行的多个逻辑数据库。例如,所述的 Cloudera 管理器服务和监视,后台程序使用不同的逻辑数据库。
  • Cloudera Repository:由cloudera manager 提供的软件分发库。
  • 客户端/Clients:
    提供了一个与 Server 交互的接口。

Cloudera Manager包括server端和agent;server端主要作用是监控集群分发配置集群等,agent端主管集群各节点。
CDH是CM的安装包,本地或者云端,其中包括hadoop的生态系统需要的所有组件,通过Cloudera Manager统一管理和安装。
CDH除了可以通过cm安装也可以通过yum,tar,rpm安装。

二、环境准备

1、软件版本选择

类目 版本 下载地址
操作系统 CentOS Linux release 7.5.1804 (Core) 阿里云或者其他
数据库 MySQL 5.7.25 官网下载
JDK jdk-8u202-linux-x64.rpm Oracle 官网下载
Cloudera Manager Cloudera Manager 6.1.0 官方地址
CDH CDH 6.1.0 使用parcels安装

2、节点准备(四个节点)

名称 IP CM管理软件
namenode1 192.168.0.23 Cloudera Manager Server&Agent ,MySQL
datanode1 192.168.0.70 Cloudera Manager Agent
datanode2 192.168.0.74 Cloudera Manager Agent
datanode3 192.168.0.155 Cloudera Manager Agent

3、配置主机名和hosts解析(所有节点)

编辑/etc/hostname,在每个节点上修改主机名(主机名不能出现下划线):

1
namenode1
1
datanode1
1
datanode2
1
datanode3

在对应的节点上使用命令使其立刻生效:

1
hostnamectl set-hostname namenode1
1
hostnamectl set-hostname datanode1
1
hostnamectl set-hostname datanode2
1
hostnamectl set-hostname datanode3

编辑文件/etc/hosts,增加如下内容(所有节点)。

1
2
3
4
192.168.0.23  namenode1
192.168.0.70 datanode1
192.168.0.74 datanode2
192.168.0.155 datanode3

编辑 /etc/sysconfig/network(所有节点):

1
2
NETWORKING=yes
HOSTNAME=xxxnodexx

使用命令使其立刻生效

1
source /etc/sysconfig/network

4、关闭防火墙(所有节点)

1
2
systemctl stop firewalld.service
systemctl disable firewalld.service
1
firewall-cmd --state

5、关闭SELinux(所有节点)

1
2
sed -i 's\#SELINUX=enforcing\#SELINUX=disabled\#g' /etc/selinux/config
setenforce 0
1
/usr/sbin/sestatus -v

6、添加定时任务(所有节点)

1
echo "$((RANDOM%60)) $((RANDOM%24)) \* \* \* /usr/sbin/ntpdate time1.aliyun.com" >> /var/spool/cron/root

7、禁用透明大页面压缩(所有节点)

CDH配置需要

1
2
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled

并将上面的两条命令写入开机自启动/etc/rc.local

8、优化交换分区(所有节点)

1
2
echo "vm.swappiness = 10" \>\> /etc/sysctl.conf
sysctl -p

9、配置 JDK (所有节点)

卸载自带的OpenJdk:

1
2
rpm -qa | grep java  #查询java相关的包
rpm -e java*** --nodeps #根据查找到的软件包信息卸载

在Oracle官网下载JDK的RPM包

1
rpm -ivh jdk-8u202-linux-x64.rpm

10、安装数据库(namenode1)

我们这里安装 MYSQL5.7.25,版本是支持的。

10.1 卸载自带mariadb

centos 7 默认安装的是mariadb,如果不卸载直接安装的话会报错。

1
2
rpm -qa | grep mariadb #查看安装信息
rpm -e mariadb-libs* --nodeps #根据查找到的软件包信息卸载

10.2 下载安装文件

下载地址如下:

1
2
3
4
https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-common-5.7.25-1.el7.x86_64.rpm
https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-libs-5.7.25-1.el7.x86_64.rpm
https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-client-5.7.25-1.el7.x86_64.rpm
https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-server-5.7.25-1.el7.x86_64.rpm

10.3 安装MySQL

按以下顺序安装

1
2
3
4
rpm -ivh mysql-community-common-5.7.21-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.21-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.21-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.21-1.el7.x86_64.rpm

如果出现以下缺少libnuma错误,请先安装libnuma

1
yum install libnuma*

10.4 设置数据库(namenode1)

启动服务

1
service mysqld start

查看初始密码

1
vim /var/log/mysqld.log 

修改密码
mysql -uroot -p #使用mysqld.log中的临时密码登录

1
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root123!!!';

授权用户root使用密码passwd从任意主机连接到mysql服务器

1
2
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Root123!!!' WITH GRANT OPTION;
flush privileges;

11、安装 MySQL JDBC 驱动(所有节点)

用于各节点连接数据库。

1
2
3
4
5
6
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.47.tar.gz
tar xf mysql-connector-java-5.1.46.tar.gz

mkdir -p /usr/share/java/
cd mysql-connector-java-5.1.47
cp mysql-connector-java-5.1.47-bin.jar /usr/share/java/mysql-connector-java.jar

三、安装 CM 和 CDH

1、配置 Cloudera Manager 仓库(namenode1)

1.1. 下载rpm包

CM主要下面的三个软件包:

1
2
3
4
5
cloudera-manager-agent-6.1.0-769885.el7.x86_64.rpm
cloudera-manager-daemons-6.1.0-769885.el7.x86_64.rpm
cloudera-manager-server-6.1.0-769885.el7.x86_64.rpm
cloudera-manager-server-db-2-6.1.0-769885.el7.x86_64.rpm
allkeys.asc

地址如下,下载完成放在cm6.1.0目录:

1
2
3
4
5
https://archive.cloudera.com/cm6/6.1.0/redhat7/yum/RPMS/x86_64/cloudera-manager-agent-6.1.0-769885.el7.x86_64.rpm
https://archive.cloudera.com/cm6/6.1.0/redhat7/yum/RPMS/x86_64/cloudera-manager-daemons-6.1.0-769885.el7.x86_64.rpm
https://archive.cloudera.com/cm6/6.1.0/redhat7/yum/RPMS/x86_64/cloudera-manager-server-6.1.0-769885.el7.x86_64.rpm
https://archive.cloudera.com/cm6/6.1.0/redhat7/yum/RPMS/x86_64/cloudera-manager-server-db-2-6.1.0-769885.el7.x86_64.rpm
https://archive.cloudera.com/cm6/6.1.0/allkeys.asc

CDH主要有如下几个文件:

1
2
3
CDH-6.1.0-1.cdh6.1.0.p0.770702-el7.parcel
CDH-6.1.0-1.cdh6.1.0.p0.770702-el7.parcel.sha256
manifest.json

地址如下,下载完成放在cdh6.1.0目录:

1
2
3
https://archive.cloudera.com/cdh6/6.1.0/parcels/CDH-6.1.0-1.cdh6.1.0.p0.770702-el7.parcel
https://archive.cloudera.com/cdh6/6.1.0/parcels/CDH-6.1.0-1.cdh6.1.0.p0.770702-el7.parcel.sha256
https://archive.cloudera.com/cdh6/6.1.0/parcels/manifest.json

cloudera-manager-daemonsserveragent 必须安装的。

1.2 安装http服务

1
2
sudo yum -y install httpd 
sudo service httpd start

在浏览器输入服务器地址,检查是否启动成功。

1.3 制作本地repo

在cm6.1.0 cdh6.1.0 同级目录输入如下命令:

1
2
createrepo cm6.1.0
createrepo cdh6.1.0

将cm6.1.0 与cdh6.1.0移到/var/www/html目录下:

1
mv cm6.1.0 cdh6.1.0 /var/www/html

在浏览器中查看目录:
http://ip/cm6.1.0
http://ip/cdh6.1.0

1.3 制作本地repo源

sudo vi /etc/yum.repos.d/cm.repo

1
2
3
4
5
[cmrepo]
name = cm_repo
baseurl =http://ip/cm6.1.0/
enable = true
gpgcheck = false

sudo vi /etc/yum.repos.d/cm.repo

1
2
3
4
5
[cdhrepo]
name = cdh_repo
baseurl =http://ip/cdh6.1.0/
enable = true
gpgcheck = false

1.4 把repo源文件传输到其他节点

1
2
scp /etc/yum.repos.d/cm.repo root@datanodeX:/etc/yum.repos.d/
scp /etc/yum.repos.d/cdh.repo root@datanodeX:/etc/yum.repos.d/

2、安装 CM Server 和 Agent(所有节点)

  • namenode1:
1
yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
  • datanode0[1-3]:
1
yum install cloudera-manager-daemons cloudera-manager-agent

3、为 Cloudera 各软件创建数据库(namenode1)

使用root登陆数据库,创建以下数据库和账号。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'YZHdata2019!!!';
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'YZHdata2019!!!';
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'YZHdata2019!!!';
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'YZHdata2019!!!';
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY 'YZHdata2019!!!';
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'YZHdata2019!!!';
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'YZHdata2019!!!';
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'YZHdata2019!!!';
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'YZHdata2019!!!';

4、设置 Cloudera Manager 数据库(namenode1)

1
2
3
4
5
6
7
8
9
[root@namenode1 ~]# /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm

Enter SCM password: YZHdata2019!!!
JAVA_HOME=/usr/java/jdk1.8.0_162
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_162/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.
[ main] DbCommandExecutor INFO Successfully connected to database.
All done, your SCM database is configured correctly!

5、安装 CDH

5.1 配置CDH的软件包 parcels(namenode1)

把下载的CDH相关文件copy到/opt/cloudera/parcel-repo/目录

1
2
3
cp /var/www/html/cm6.1.0/CDH-6.1.0-1.cdh6.1.0.p0.770702-el7.parcel /opt/cloudera/parcel-repo/
cp /var/www/html/cm6.1.0/CDH-6.1.0-1.cdh6.1.0.p0.770702-el7.parcel.sha256 /opt/cloudera/parcel-repo/
cp /var/www/html/cm6.1.0/manifest.json /opt/cloudera/parcel-repo/

修改属主属组

1
chown cloudera-scm.cloudera-scm /opt/cloudera/parcel-repo/*

5.2 启动 Cloudera Manager Server

1
systemctl start cloudera-scm-server

如果启动中有什么问题,可以查看日志。

1
tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

在最后显示的日志中,有显示启动监听的端口。

1
2
Started ServerConnector@da518cb{SSL,[ssl, http/1.1]}{0.0.0.0:7183}
Started ServerConnector@a77165b{HTTP/1.1,[http/1.1]}{0.0.0.0:7180}

四、初始化 Cloudera Manager

浏览器打开http://192.168.0.23:7180,用户名和密码默认都是admin


接收许可。


这里我们选择免费版,收费版请自行选择。

五、集群安装


指定要添加的节点。


选择存储库,之前我们已经在 CM Server 节点配置好了。


不进行勾选,选择我们自己安装的 JDK。


提供 SSH 登录凭据。


安装 agents,因为之前我们已经安装了,所以这里速度会很快。


安装选定的Parcel,之前我们已经下载好,并配置好放在的 CM Server 节点的/opt/cloudera/parcel-repo


检查主机正确性。

六、集群设置

选择要安装的服务,可以根据自己的需求进行软件安装。


自定义角色分配。


数据库设置。


审核更改,如果有特定目录的设定或者参数的设定,可以在这里进行更正。


首次运行。


安装完成。

七、管理集群

首页Dashboard。


HDFS。


HBase。

  • Copyrights © 2018-2024 李一
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信