CDH5集群搭建流程步骤详解

2023-06-01 00:00:00 集群 搭建 详解

Cloudera简介

为了构建一个以数据为驱动的业务场景,我们需要一个强大的管理工具去统一并安全地管理我们的业务数据,所以Cloudera做为一个强大的数据中心管理工具为此孕育而生。Cloudera不光提供了自己衍化重新封装的市场领先并100%开源的商业化Apache Hadoop发行版本(CDH, Cloudera’s Distribution including Apache Hadoop)和相关的组件,其中包括了各类安全高效的企业级数据管理工具,如Hive, HBase,Oozie, Zookeeper等。 Hadoop是Apache(开源web服务器软件基金会)下的大数据开源项目,许多商业公司会在Apache Hadoop的基础上重新开发成商业版本,Cloudera公司就是其中之一,最近在维护的两个Hadoop版本分别是CDH4和CDH5。Hadoop使用分布式的思想存储,计算和分析数据,它允许多个数据分析计算任务同时作用在同一个数据块上并在集群上进行分布式计算,以此来进行超大规模数据的处理。Hadoop是大数据处理框架的鼻祖之一,同时Cloudera公司的Hadoop版本CDH也是目前使用最广泛的Hadoop商业版本。从广泛意义来说,CDH是Cloudera发布的一个自己封装的商业版软件发行包,里面不仅包含了Cloudera的商业版Hadoop,同时CDH中也包含了各类常用的开源数据处理存储框架,如Spark,Hive,HBase等。

Cloudera作为一个强大的商业版数据中心管理工具,提供了各种能够快速稳定运行的数据计算框架,如Apache Spark;使用Apache Impala做为对HDFS,HBase的高性能SQL查询引擎;也带了Hive数据仓库工具帮助用户分析数据; 用户也能用Cloudera管理安装HBase分布式列式NoSQL数据库;Cloudera还包含了原生的Hadoop搜索引擎以及Cloudera Navigator Optimizer去对Hadoop上的计算任务进行一个可视化的协调优化,提高运行效率;同时Cloudera中提供的各种组件能让用户在一个可视化的UI界面中方便地管理,配置和监控Hadoop以及其它所有相关组件,并有一定的容错容灾处理;Cloudera作为一个广泛使用的商业版数据中心管理工具更是对数据的安全决不妥协!

Cloudera Manager产品则是着重于帮助大家管理自己的CDH集群,通过Cloudera Manager统一的UI界面来快速地自动配置和部署CDH和其相关组件,同时Cloudera Manager还提供了各种丰富的可自定义化的监视诊断和报告功能,集群上统一的日志管理功能,统一的集群配置管理和实时配置变更功能,多租户功能,高可用容灾部署功能和自动恢复功能等, 方便企业统一管理和维护自己的数据中心。Cloudera Manager产品也是我们主要的安装内容和介绍对象。它细分为免费的Express版本和功能完全并提供众多增值服务的收费版本Enterprise。

Cloudera Manager架构:

1.png


由上面的结构图可知,Cloudera Manager的核心是Cloudera Manager Server。CM Server集成了Admin Console Web Server,提供了统一的UI和API方便用户和集群上的CDH以及其它服务进行交互,并实施监控和诊断等;

CM Server还负责安装配置CDH和其相关的服务软件,启动停止服务,维护集群中各个节点服务器以及上面运行的进程。

CM Server主要由下面几个组件组成: 

Cloudera Manager Agent,安装在集群的所有节点上,负责启动和杀死各个CM管理的服务进程,解压和安装CM管理的服务,自动配置,通过心跳机制监视集群服务器状态(默认每15秒Agent发送心跳给CM Server)等;
Management Service,主要是负责集群中各种服务的监视,通知,报告等功能; 
Database,内置数据库或者使用用户自定义的外部数据库保存CM的配置信息和监控信息;
Cloudera Repository;
Clients,web-based的UI界面方便用户和CM Server进行交互,同时还提供了API供用户自定义Cloudera Manager程序;
Agent,就是大数据集群的集群,由CM统一管理。


环境交代

运行系统:Centos7.3

CDH版本:5.12.1

数据库:MySQL 版本:5.6.37

三台主机:cdh1,cdh2,cdh3,其中cdh1作为Server端,cdh1,cdh2和cdh3这3台机器作为Agent.

相关的下载地址: 

JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
JDBC驱动:http://dev.mysql.com/downloads/connector/j/
Cloudera Manager地址:http://archive.cloudera.com/cm5/cm/5/
CDH安装包地址(parcelparcel.sha和manifest):http://archive.cloudera.com/cdh5/parcels/latest/

安装前环境准备

网络配置 , 修改主机名hostname,修改/etc/hosts文件里面ip和主机名的对应关系

设置SSH免密码登录 , 每台机器之间都要设置免秘钥登陆

cdh1执行:

    ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
    生成无密码密钥对
    cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    然后将公钥添加到其他节点的authorized_keys上:
    $ scp ~/.ssh/id_dsa.pub [email protected]:/tmp
    $ scp ~/.ssh/id_dsa.pub [email protected]:/tmp
    #然后分别登录这两台机器,将公钥追加到公钥中
    $ cat /tmp/id_dsa.pub >> ~/.ssh/authorized_keys

cdh2和cdh3也要做相对于另外所有机器的免秘钥登陆.


安装JDK

本文采用 RPM 包安装…….执行:rpm -ivh jdk-7u67-linux-x64.rpm

每台机器都要安装JDK,测试集群中安装的版本是:1.7.0_67


安装配置MySQL

#如果有mariadb的文件冲突的话,强制卸载它

rpm -e --nodeps mariadb-libs-5.5.37-1.el7_0.x86_64

#安装mysql依赖

yum install vim libaio net-tools
CentOS7的yum源中默认好像是没有mysql的。为了解决这个问题,我们要先下载mysql的repo源。
1. 下载mysql的repo源
$ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
2. 安装mysql-community-release-el7-5.noarch.rpm包
$ sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
安装这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。
3. 安装mysql,建议安装5.6版本,如果是5.7版本会对密码校验有比较高的要求,CM连接数据库的时候会出现很多权限的问题有待解决.
$ sudo yum install mysql-server
根据步骤安装就可以了,不过安装完成后,没有密码,需要重置密码。
service mysqld start
4. 安装mysql服务,service mysqld start启动mysql服务,并设置开机启动.
设置root授权访问所有的数据库: 连接mysql后:use mysql   show tables;  select host, user from user;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION;
delete from user where host != ‘%’;
flush privileges;
mysql -u root -p

每台机器关闭防火墙和SelLinux

所有节点配置NTP服务 

每台机器都查看一下Linux系统有没有安装perl,没有安装的话,yum install perl,然后perl –v查看版本.


开始安装   

解压安装 (所有节点)

cloudera manager的目录默认位置在/opt下,将包导入/tmp/cm目录并解压:

tar zxvf cloudera-manager-centos7-cm5.12.1_x86_64.tar.gz -C /opt

创建cloudera-scm用户(所有节点)

useradd --system --home=/opt/cm-5.12.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

为Cloudera Manager 5建立数据库 并初始化(主节点):

先将JDBC驱动 mysql-connector-java-5.1.43-bin.jar,放到/opt/cm-5.12.1/share/cmf/lib/目录中,将mysql-connector-java-5.1.43-bin.jar 改名为mysql-connector-java.jar 放到/usr/share/java/中。

初始化数据库权限(Server节点)

进入mysql执行:
grant all on *.* to 'temp'@'%' identified by 'temp' with grant option;
grant all on *.* to 'scm'@'%' identified by 'scm' with grant option;(rds执行)
flush privileges;退出mysql.

执行添加CM用户操作:

/opt/cm-5.12.1/share/cmf/schema/scm_prepare_database.sh 
mysql cm -hlocalhost -uroot -p123 --scm-host localhost scm scm scm

/opt/cm-5.12.1/share/cmf/schema/scm_prepare_database.sh mysql -h10.0.1.151 -uroot -plqprN31PU scm scm scm(rds执行)
格式:数据库类型、数据库、数据库服务器、用户名、密码、cm server服务器


修改agent配置文件(所有节点)

修改/opt/cm-5.12.1/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名。

准备Parcels,用以安装CDH5(Server节点)

将CHD5相关的Parcel包放到Server点的/opt/cloudera/parcel-repo/目录中。

相关的文件如下:

CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel
CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1 
manifest.json

然后需将

CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1重命名为CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha

启动脚本

通过/opt/cm-5.12.1/etc/init.d/cloudera-scm-server start在server端启动Cloudera Manager服务。

通过/opt/cm-5.12.1/etc/init.d/cloudera-scm-agent start在Agent端启动Agent服务。

当server端和agent端的启动命名执行后都成功提示OK后,

在目录/opt/cm-5.12.1/log/cloudera-scm-server下查看日志文件cloudera-scm-server.log,

如果日志文件有打印`Started Jetty Server`,则说明Cloudera Manager Server真正启动成功了.

停止服务是stop,重启服务是restart。


Cloudera Manager Server和Agent都启动以后,就可以进行大数据集群安装配置了。

这时可以通过浏览器访问主节点的7180端口测试一下(由于CM Server的启动需要花点时间,这里可能要等待一会才能访问),默认的用户名和密码均为admin。

遇到的问题:

如果你的centos7是最小安装的话 ,hue是连接不上的,会报下面的错误

Unexpected error. Unable to verify database connection.

缺个py解析库, 需要安装它

yum install -y python-lxml

感兴趣的可以去官网了解:https://docs.cloudera.com/documentation/

相关文章