<返回更多

大数据之cdh 大数据集群搭建

2021-04-12  今日头条  Ditto110
加入收藏
大数据之cdh 大数据集群搭建(详细教程)

cdh 架构

 
 
 

环境准备

根据官方文档选定linux系统版本所支持的CDH 版本 cloudera-manager-6.0.1

查看当前机器的信息

查看linux版本,例如:

cat /etc/redhat-release

centos Linux release 7.5.1804

查看机器型号

dmesg | grep -i virtual,例如查询到是kvm 虚拟机

大数据之cdh 大数据集群搭建(详细教程)
 
 
 

查看cpu和内存使用情况Top

大数据之cdh 大数据集群搭建(详细教程)
 
 
 

磁盘使用率 df -h

大数据之cdh 大数据集群搭建(详细教程)
 
 
 

机器分配

根据机器配置情况,支持安装CDH6.0 集群

创建yum源

下载yum源

wget https://archive.cloudera.com/cm6/6.0.0/redhat7/yum/cloudera-manager.repo -P /etc/yum.repos.d/

如下图,可以选择指定版本的yum源

大数据之cdh 大数据集群搭建(详细教程)
 
 
 

导入GPG key

rpm --import https://archive.cloudera.com/cm6/6.0.0/redhat7/yum/RPM-GPG-KEY-cloudera

修改yum 缓存配置

vim /etc/yum.conf

设置keepcache=1,表示rpm 包在本地长期保存,这样的好处是一个节点下载好了后,其他节点可以从此节点上拷贝,不用重复下载。

大数据之cdh 大数据集群搭建(详细教程)
 
 
 

修改hosts

修改每台机器的hostname

cat /etc/hostname查看hostname

hostname master临时修改hostname

vim /etc/hostname永久修改hostname

大数据之cdh 大数据集群搭建(详细教程)
 
 
 

修改所有机器的host(所有机器执行)

所有机器的hostname中都需要设置到每台机器的host中

如果一台机器的ip 有多个host ,host 需放到一行,否则后面搭建集群前的环境校验会异常。如

192.168.52.52master name1 name2 name3

大数据之cdh 大数据集群搭建(详细教程)
 
 
 

关闭防火墙

systemctl status firewalld查看防火墙状态

systemctl stop firewalld关闭防火墙(所有机器执行)

systemctl disable firewalld禁止开机启动防火墙(所有机器执行)

配置ssh 免密登录

a. 生成秘钥:ssh-keygen -t rsa

b. 复制公钥到远程机:ssh-keygen -t rsa

注意:

某些集群组件中的主节点需要远程维护数据节点的状态,因此需要远程免密登录。比如,启动 Hadoop 集群的start-all.sh ,过程中会ssh 到datanode 启动相应的服务。由于有的机器上可能不只是安装数据(计算)角色,可能也会存在master 服务调用角色,因此为避免麻烦集群机器之间都设置成免密登录(对于主机少的情况可以这样做,至于主机多的情况需要根据需求进行免密配置)。

在所有主机上以此执行a—>b 步骤

安装NTP时间同步器(所有机器执行)

yum install -y ntp

修改配置文件

vim /etc/ntp.conf

大数据之cdh 大数据集群搭建(详细教程)
 
 
 

将此处的server 设置主节点的地址

例如:

server master iburst

注意:

实际操作时,设置成server master iburst 后CM minitor service monitor 一直提示NTP无法连接远程服务器,好吧索性不改了,就使用默认的0.centos.pool.ntp.org

安装nfs网络文件系统

Nfs文件系统相当于机器之间的共享目录,避免机器之间通过scp 转移文件繁琐。

比如,后续会用到的MySQL-connector-JAVA.jar 共享文件就可以放在这里。

服务端:(任意一台机器)

安装nfs

yum -y install nfs-utils rpcbind

创建共享目录,并且授权:

mkdir /opt/share

chmod -R 666 /opt/share

修改配置:

/opt/share *(rw,no_root_squash,no_all_squash,sync)

exportfs -r 使配置生效

启动服务:

systemctl start nfs

systemctl start rpcbind

客户端

安装nfs:

yum -y install nfs-utils rpcbind

创建挂载点:

mkdir /opt/share

挂载:

showmount -e master//查看nfs文件系统服务端的挂路径

mount -t nfs master:/opt/share /opt/share -o proto=tcp -o nolock(挂载)

安装jdk(所有机器执行)

 

大数据之cdh 大数据集群搭建(详细教程)
 
 
 

CDH 安装过程中检测系统环境时默认会读取/usr/java下的jdk路径,也可以通过CDM 在主机下配置

大数据之cdh 大数据集群搭建(详细教程)
 
 
 

mkdir -p /usr/java

jdk-8u141-linux-x64.rpm上传

rpm -ivh jdk-8u141-linux-x64.rpm安装

vim /etc/profile设置环境变量

source /etc/profile

修改swapiness 和huge page(所有机器执行)

huge page

Hadoop是个高密集型内存运算系统,Cloudera官方关闭THP

参考文档:

echo never > /sys/kernel/mm/transparent_hugepage/enabled

echo never > /sys/kernel/mm/transparent_hugepage/defrag

swAppiness

swappiness的值的大小对如何使用swap分区是有着很大的联系的。swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。两个极端,对于ubuntu的默认设置,这个值等于60,建议修改为10

cat /proc/sys/vm/swappiness查看swapiness

sysctl vm.swappiness=10临时设置

vim /etc/sysctl.conf永久修改,重启后生效

vm.swappiness=10

安装mysql(一般主节点或非集群节点上安装)

安装mysql

Cloudera-Manager安装cdh时,通默认使用内嵌的PostgreSQL数据库,更多应用场景下使用的是mysql

rpm -qa|grep mysql

yum install mysql

systemctl start mysql启动

systemctl enable mysql设为开机启动

创建scm、hive、hue、oozie、monitor数据库(集群搭建前期只要创建cloudera manager基础数据库scm就行,也可后期根据需要安装的插件再创建对应的元数据库)

CREATE DATABASE `scm` /*!40100 DEFAULT CHARACTER SET utf8 */

CREATE DATABASE `hue` /*!40100 DEFAULT CHARACTER SET utf8 */

CREATE DATABASE `oozie` /*!40100 DEFAULT CHARACTER SET utf8 */

CREATE DATABASE `monitor` /*!40100 DEFAULT CHARACTER SET utf8 */

CREATE DATABASE `hive` /*!40100 DEFAULT CHARACTER SET utf8 */

下载mysql-connector-java.jar并拷贝到/usr/share/java 目录(所有机器上执行)

创建用户

create user scm@"%" identified by "scm"创建scm用户

grant all on *.* to scm@"scm" identified by "scm"授权

flush privileges刷新权限

systemctl restart mysql重启

安装CM

主节点

yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server

大数据之cdh 大数据集群搭建(详细教程)
 
 
 

(当前机器上已经安装,所以显示的是installed)

===================== 等待安装 ====================

其他节点

安装完成后将
/var/cache/yum/x86_64/7/cloudera-manager/packages 下的缓存的daemons 和agent rpm 包拷贝到其他节点 /var/cache/yum/x86_64/7/cloudera-manager/packages

执行安装(除主节点外所有机器)

yum install cloudera-manager-daemons cloudera-manager-agent

配置CM Server(除主节点外所有机器)

vim /etc/cloudera-scm-agent/config.ini

修改此处的server_host为CMmaster 地址

大数据之cdh 大数据集群搭建(详细教程)
 
 
 

初始化CM配置

数据库和CM在一台机器上

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm scm

数据库和CM不在一台机器上

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h dbhost --scm-host master scm scm scm

(后面scm分别是数据库名 用户名 密码)

初始化成功后如下图(借网上截图)

大数据之cdh 大数据集群搭建(详细教程)
 
 
 

启动CM server和CM agent

cloudera-scm-server

systemctl start cloudera-scm-server

查看启动日志

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

CM 服务使用的是jetty 部署,看到日志正常jetty server 启动成功表示server服务启动ok

cloudera-scm-agent(注意主节点上也安装了agent 所以也需要启动)

systemctl start cloudera-scm-agent

服务启动OK后可以登录管理后台账户/密码:admin/admin

大数据之cdh 大数据集群搭建(详细教程)
 
 
 

安装CDH

安装 进入CM 后台后开始安装集群

大数据之cdh 大数据集群搭建(详细教程)
 
 
 

这里会检测到每个agent 机器

大数据之cdh 大数据集群搭建(详细教程)
 
 
 

此处CM server 会下载CDH parcel 包,并且分发到其他agent 节点并解压安装(借别人图示例,实际上搭建的是3个节点)

注意:

将离线的parcels包、sha和torrent文件拷贝到parcel-repo 路径下,重启server

大数据之cdh 大数据集群搭建(详细教程)
 
 
 

搭建集群

选择安装的服务,这里选择自定义

大数据之cdh 大数据集群搭建(详细教程)
 
 
 

分配角色

大数据之cdh 大数据集群搭建(详细教程)
 
 
 

给组件分配对应的元数据库

大数据之cdh 大数据集群搭建(详细教程)
 
 
 

确认服务配置

大数据之cdh 大数据集群搭建(详细教程)
 
 
 

启动

大数据之cdh 大数据集群搭建(详细教程)
 
 
 

大数据之cdh 大数据集群搭建(详细教程)
 
 
 

角色分布概览

大数据之cdh 大数据集群搭建(详细教程)
 
 
 

问题

由于后台进程是由supervisor 管理,当手动kill掉进程后,supervisor 会将其重启。

例如,CDH 集群和CM 都停止服务后,9000 端口仍然会被占用,是因为supervisor 管理的进程没有被kill,systemctl status supervisord

环境搭建结束

至此,CDH 集群搭建完成。集群中不只是hadoop 集群,还包含其他组件集群,例如hbase集群、spark 集群和其他客户端组件,包括hive/impala/hue 等。

通过CM 管理的集群,CM service让我们可以更加直观的了解到个各个主机的运行状况,以及各个组件的健康状态,管理起来更加方便。

整个CDH 集群涉及到的内容知识很多且复杂,环境搭建好了接下来就是慢慢求索,不断整个业务,不断学习知识体系,不断进步吧。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>