CDH集群离线部署

Posted 爱是与世界平行

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CDH集群离线部署相关的知识,希望对你有一定的参考价值。

1 原生Hadoop的问题

  1. 版本管理过于混乱
  2. 部署过程较为繁琐,升级难度较大
  3. 兼容性差
  4. 安全性低

2 CDH和CM(Cloudera Manager)

  1. CDH(Cloudera’s Distribution Including Apache Hadoop),是Hadoop众多分中的一种,由Cloudera公司维护,基于稳定版本的Apache Hadoop构建,并集成了很多补丁,可以直接用于生产环境。就是Hadoop等大数据安装包的第三方版本的集合,提供了Hadoop等大数据服务的安装包。
  2. CM(Cloudera Manager)提供了一个管理和监控Hadoop等大数据服务的web界面,能让我们方便安装大数据生态圈的大部分服务。

3 Hadoop自动化部署和管理平台

主流的有Apache Ambari和Cloudera Manager,相对应的Hadoop的发行版为HDP和CDH。

这种自动化部署平台的功能一般如下:

  1. 提供Hadoop大数据集群
  2. 管理Hadoop大数据集群
  3. 监控Hadoop大数据集群

PS:HDP的公司(hortonworks)已经被CDH公司(Cloudera)收购了

4 Cloudera Manager架构

  1. Server:负责软件安装、配置,启动和停止服务,管理服务运行的群集。核心

  2. Agent:安装在每台主机上。负责**启动和停止进程,**配置,监控主机。

  3. Management Service:由一组执行各种监控,警报和报告功能角色的服务。图表的生成和管理

  4. Database:存储配置和监视信息。

  5. Cloudera Repository:软件由Cloudera 管理分布存储库。(有点类似Maven的中心仓库);在线安装(从中心仓库拉取)和离线安装(离线库)

  6. 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-1Centos7192.168.100.104G60G
cdh-2Centos7192.168.100.202G60G
cdh-3Centos7192.168.100.302G60G

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源

  1. 移动文件安装包文件到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/
  1. 制作CM源生成repodata文件,需要用到createrepo这个包(cdh-1)
#安装
yum install -y createrepo
#进入到cm的rpm包存放目录
cd /var/www/html/cm
# 生成repodata文件夹
createrepo .
  1. 配置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)

  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
  1. 初始化数据库
/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 集群服务

CDH5.7Hadoop集群搭建(离线版)

CentOS7 Cloudera Manager6 完全离线安装 CDH6 集群

超详细版企业离线部署CDH6.10集群与配置使用

超详细版企业离线部署CDH6.10集群与配置使用

超详细版企业离线部署CDH6.10集群与配置使用