CDH集群离线部署
Posted 爱是与世界平行
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CDH集群离线部署相关的知识,希望对你有一定的参考价值。
- CDH集群离线部署(CM6.3.1 + CDH6.3.2 + CentOS7)_小宇0926的博客-CSDN博客_cdh集群
- 大数据之CDH(web页面部署Hadoop)_leon.yan1994的博客
- CDH集群部署最佳实践 - 知乎 (zhihu.com)
- CDH6.3.1集群离线部署 - 掘金 (juejin.cn)
- 基于阿里云的CDH集群安装_Frank__Geek的博客-CSDN博客
- CDH简介及CDH部署、原理和使用介绍( 版本6.3.1 )_王亭_666的博客-CSDN博客_cdh
- 【手册】CDH6.3.2及hadoop生态圈工具安装部署手册(附带安装包)_槐序i的博客-CSDN博客_cdh升级hadoop
- CDH6.3.2离线安装(附百度网盘CDH安装包) - 知乎 (zhihu.com)
- CDH6.2.0集群搭建详细教程(包含开启Kerberos与Sentry)_Yunis尤尼斯的博客-CSDN博客_cdh集群搭建
- 大数据之CDH(web页面部署Hadoop)_leon.yan1994的博客
- CDH大数据平台搭建之集群规划_码上_成功的博客
- CDH安装Phoenix(cdh6.2以上版本、镜像包和安装文档)_qq_43016289的博客-CSDN博客_cdh安装phoenix
1 原生Hadoop的问题
- 版本管理过于混乱
- 部署过程较为繁琐,升级难度较大
- 兼容性差
- 安全性低
2 CDH和CM(Cloudera Manager)
- CDH(Cloudera’s Distribution Including Apache Hadoop),是Hadoop众多分中的一种,由Cloudera公司维护,基于稳定版本的Apache Hadoop构建,并集成了很多补丁,可以直接用于生产环境。就是Hadoop等大数据安装包的第三方版本的集合,提供了Hadoop等大数据服务的安装包。
- CM(Cloudera Manager)提供了一个管理和监控Hadoop等大数据服务的web界面,能让我们方便安装大数据生态圈的大部分服务。
3 Hadoop自动化部署和管理平台
主流的有Apache Ambari和Cloudera Manager,相对应的Hadoop的发行版为HDP和CDH。
这种自动化部署平台的功能一般如下:
- 提供Hadoop大数据集群
- 管理Hadoop大数据集群
- 监控Hadoop大数据集群
PS:HDP的公司(hortonworks)已经被CDH公司(Cloudera)收购了
4 Cloudera Manager架构
-
Server:负责软件安装、配置,启动和停止服务,管理服务运行的群集。核心
-
Agent:安装在每台主机上。负责**启动和停止进程,**配置,监控主机。
-
Management Service:由一组执行各种监控,警报和报告功能角色的服务。图表的生成和管理
-
Database:存储配置和监视信息。
-
Cloudera Repository:软件由Cloudera 管理分布存储库。(有点类似Maven的中心仓库);在线安装(从中心仓库拉取)和离线安装(离线库)
-
Clients:是用于与服务器进行交互的接口(API和Admin Console)
5 CDH下载
官方下载地址:https://archive.cloudera.com
5.1 CM下载
https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPMS/x86_64/
5.2 CDH下载
https://archive.cloudera.com/cdh6/6.3.2/parcels/
注意:CDH的版本一定要和CM的版本对应
6 环境准备
使用VMware模拟多台主机,由于主机条件有限,只演示三台机器,配置如下:
主机名 | 系统 | IP | 内存 | 磁盘 |
---|---|---|---|---|
cdh-1 | Centos7 | 192.168.100.10 | 4G | 60G |
cdh-2 | Centos7 | 192.168.100.20 | 2G | 60G |
cdh-3 | Centos7 | 192.168.100.30 | 2G | 60G |
6.1 修改主机名(所有节点)
hostnamectl set-hostname cdh-1
hostnamectl set-hostname cdh-2
hostnamectl set-hostname cdh-3
6.2 关闭防火墙(所有节点)
systemctl stop firewalld
systemctl disable firewalld
6.3 关闭SELinux(所有节点)
setenforce 0 #临时关闭
#永久关闭 将SELINUX= enforcing 修改为SELINUX=disabled
vi /etc/selinux/config
SELINUX=disabled
PS: 可以使用
sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
6.4 配置IP到主机的映射(所有节点)
vi /etc/hosts
192.168.100.10 cdh-1
192.168.100.20 cdh-2
192.168.100.30 cdh-3
6.5 配置免密码登录(cdh-1)
# 生成公钥和私钥 三次回车
ssh-keygen
# 复制公钥和私钥
ssh-copy-id cdh-1
ssh-copy-id cdh-2
ssh-copy-id cdh-3
6.6 设置用户最大可打开文件数,进程数,内存占用(所有节点)
vi /etc/security/limits.conf
soft nofile 32728
hard nofile 1024999
soft nproc 65535
hard noroc unlimited
soft memlock unlimited
hard memlock unlimited
sysctl -p
6.7 设置swap空间(所有节点)
echo "vm.swappiness = 0" >> /etc/sysctl.conf
Cloudera建议将交换空间设置为0,过多的交换空间会引起GC耗时的激增。
6.8 关闭大页面压缩(所有节点)
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
7 安装
将下载好的CDH包和CM的包使用sftp上传到cdh-1
7.1 配置本地yum
CDH的安装包都是rpm包如果使用rpm安装方式安装起来是比较复杂的,会有很多依赖问题需要解决,就需要使用yum帮助我们解决依赖问题。
7.1.1 配置centos源(cdh-1)
#挂载centos7镜像
mount /dev/cdrom /mnt/
#删除系统自带的源
rm -rf /etc/yum.repos.d/*
#新建一个本地yum源
cat >> /etc/yum.repos.d/local.repo << EOF
[centos]
name=centos
baseurl=file:///mnt
gpgcheck=0
EOF
#验证
yum repolist
7.1.2 安装httpd服务(cdh-1)
# 安装
yum install -y httpd
# 启动
systemctl start httpd
#开机自启
systemctl enable httpd
http服务可以帮助我们传输文件,默认静态资源的目录为/var/www/html
7.1.2 centos源配置为http方式获取(cdh-1)
#在http服务的静态资源目录创建centos目录
mkdir /var/www/html/centos
#将centos的镜像文件复制到centos目录
cp -rvf /mnt/* /var/www/html/centos/
#可以通过http访问了
http://192.168.100.10/centos/
#修改cdh-1的本地centos源的配置
vi /etc/yum.repos.d/local.repo
baseurl=http://cdh-1/centos
#取消挂载
umount /dev/cdrom /mnt
其他节点配置(cdh-1,cdh-2)
cat >> /etc/yum.repos.d/local.repo << EOF
[centos]
name=centos
baseurl=http://cdh-1/centos
gpgcheck=0
EOF
#验证
yum repolist
7.1.3 配置CM源
- 移动文件安装包文件到http服务器静态文件目录(cdh-1)
#在/var/www/html创建存放cm包的文件夹和cdh安装包的文件夹
mkdir /var/www/html/cm,cdh
#将cdh的安装包和cm的包移动到创建的目录
#移动cm安装包
mv cloudera-manager-* /var/www/html/cm/
mv enterprise-debuginfo-6.3.1-1466458.el7.x86_64.rpm oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm /var/www/html/cm
#移动cdh安装包和元数据文件
mv CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel manifest.json /var/www/html/cdh/
- 制作CM源生成repodata文件,需要用到createrepo这个包(cdh-1)
#安装
yum install -y createrepo
#进入到cm的rpm包存放目录
cd /var/www/html/cm
# 生成repodata文件夹
createrepo .
- 配置yum源(所有节点)
cat >> /etc/yum.repos.d/cm.repo << EOF
[CM]
name=cm
baseurl=http://cdh-1/cm/
gpgcheck=0
EOF
7.2 安装
7.2.1 安装依赖(所有节点)
yum install -y bind-utils libxslt cyrus-sasl-plain cyrus-sasl-gssapi portmap fuse-libs /lib/lsb/init-functions httpd mod_ssl openssl-devel python-psycopg2 mysql-python fuse
7.2.2 安装Cloudera Manager和Cloudera Agent(cdh-1)
#安装JDK
yum install -y oracle-j2sdk1.8.x86_64
#安装cloudera-manager
yum install -y cloudera-manager-agent cloudera-manager-daemons cloudera-manager-server cloudera-manager-server-db-2 postgresq-server
7.2.3 安装Mariadb
#安装
yum install -y mariadb-server
#启动和开机自启
systemctl start mariadb && systemctl enable mariadb
#配置Mariadb数据库
mysql_secure_installation
7.2.4 初始化管理节点(cdh-1)
- 复制mysql的jdbc驱动包到/usr/share/java目录
需要使用sftp上传jar包到cdh-1节点上
#创建/usr/share/java目录
mkdir -p /usr/share/java
#复制jar包到/usr/share/java下
cp mysql-connector-java-5.1.48.jar /usr/share/java/
#注意:需要改名为mysql-connector-java.jar
mv /usr/share/java/mysql-connector-java-5.1.48.jar /usr/share/java/mysql-connector-java.jar
- 初始化数据库
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h localhost -uroot -proot --scm-host localhost scm root root
7.2.5 安装agent节点
只需要在chd-2和cdh-3节点上安装
#安装jdk
yum install -y oracle-j2sdk1.8.x86_64
#安装agent
yum install cloudera-manager-daemons cloudera-manager-agent -y
7.2.6 修改配置文件(所有节点)
修改Cloudera Agent配置文件/etc/cloudera-scm-agent/config.ini,配置server_host为主节点cdh-1
#通过vi命令修改
vi /etc/cloudera-scm-agent/config.ini
server_host=cdh-1
#也可以通过sed命令修改
sed -i "s/server_host=localhost/server_host=cdh-1/g" /etc/cloudera-scm-agent/config.ini
注意:只用使用一种命令修改就行了,推荐使用sed
7.2.7 配置JAVA_HOME(所有节点)
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera/
export PATH=$PATH:$JAVA_HOME/bin
7.3 启动
7.3.1 启动Cloudera Manager(cdh-1)
在主节点启动Cloudera Manager
#启动
systemctl start cloudera-scm-server
#设置开机自启
systemctl enable cloudera-scm-server
7.3.2 启动Cloudera Agent(所有节点)
#启动
systemctl start cloudera-scm-agent
#开机自启
systemctl enable cloudera-scm-agent
可以访问http://192.168.100.10:7180 用户名密码都是admin
8 使用
8.1 配置集群
- 设置集群的名称
- 选择集群主机
- 配置CDH安装包
- 配置CDH parcel的位置
- 选择我们配置好的
- 等待下载包
- 检查主机性能
8.2 安装Zookeeper
- 安装选项
- 选择服务安装主机
- 数据库配置
- 需要创建数据库(cdh-1)
#建库
create database activity;
create database reports;
create database audit;
create database metadata;
#授权
grant all on activity.* to cdh@localhost identified by 'cdh';
grant all on activity.* to cdh@'%' identified by 'cdh';
grant all on reports.* to cdh@localhost identified by 'cdh';
grant all on reports.* to cdh@'%' identified by 'cdh';
grant all on audit.* to cdh@localhost identified by 'cdh';
grant all on audit.* to cdh@'%' identified by 'cdh';
grant all on metadata.* to cdh@localhost identified by 'cdh';
grant all on metadata.* to cdh@'%' identified by 'cdh';
- 测试连接
- 可以配置邮件报警
- 安装
- 安装完成
以上是关于CDH集群离线部署的主要内容,如果未能解决你的问题,请参考以下文章
离线部署 Cloudera Manager 5 和 CDH 5.12.1 及使用 CDH 部署 Hadoop 集群服务