使用虚拟机搭建ClouderaManager平台,并自动部署一个hadoop集群(CDH)

本文将从最基础的环境配置开始,介绍如何在Linux虚拟机中搭建一个CM集群,并使用CDH自动部署一个Hadoop集群。所有步骤都是我一步一步做过的,如果使用的环境(centos7.6),CM及CDH版本和我的一样,那么应该是不会出什么问题的。教程有点长,但是一步一步跟着做应该不会花太多时间就能将集群搭建好,我将下面过程中使用到的所有软件包放到了百度网盘上,链接:https://pan.baidu.com/s/1SXraeAGuahQC-voRquiTzQ 提取码:s94p

如需转载请标明出处,同时私信告知我一下。

一.CM及CDH介绍

CM

Cloudera Manager(简称CM)是Cloudera公司开发的一款大数据集群安装部署及管理监控的平台,它可以自动部署一个hadoop集群,免去了很多复杂的配置过程。CM具有大数据集群自动化安装、中心化管理、集群监控、报警等功能,使得安装集群从几天的时间缩短在几小时以内,运维人员从数十人降低到几人以内,极大的提高集群管理的效率。

Cloudera Manager架构及组件

在这里插入图片描述
Agent:
安装在每台主机上。该代理负责启动和停止的过程,拆包配置,触发装置和监控主机。
Management Service:
由一组执行各种监控,警报和报告功能角色的服务。
Database:
存储配置和监视信息。通常情况下,多个逻辑数据库在一个或多个数据库服务器上运行。例如,Cloudera的管理服务器和监控角色使用不同的逻辑数据库。
Cloudera Repository:
软件由Cloudera 管理分布存储库。
Clients:
是用于与服务器进行交互的接口:
Admin Console :
基于Web的用户界面与管理员管理集群和Cloudera管理。
API :
与开发人员创建自定义的Cloudera Manager应用程序的API。

CDH

CDH全称Cloudera’s Distribution, including Apache Hadoop,是Hadoop三大发行版本之一,这三大发行版本分别是:Apache、Cloudera、Hortonworks。Apache版本是最原始(最基础)的版本。Cloudera在大型互联网企业中用的较多。Hortonworks文档较好。CDH由Cloudera公司维护,基于稳定版本的Apache Hadoop构建。CDH提供了Hadoop的核心可扩展存储(HDFS)和分布式计算(MR),还提供了WEB页面进行管理、监控。

由于使用Cloudera Manager部署CDH非常的方便,可以让使用者在很短的时间内搭建好一个可用的并且有精美的web管理界面的hadoop大数据集群。所以CM目前使用的相当广泛,具有很高的市场占有率。CM除了可以快速部署大数据集群并对其进行管理外,还可以非常方便的进行升级和为现有的集群增加组件。虽然CM有着很多的优点,解决了很多企业的痛点,但是,CM也有一些不足之处,由于Cloudera开发的CDH使用的hadoop都是一些比较稳定的版本,所以一些喜欢尝试新技术的公司还是得使用原生的Apache Hadoop。目前,Apache Hadoop,Cloudera和Hortonworks三种主要的Hadoop分支的市场占有率大概分别为40%,40%和20%。

二.准备工作

2.1 硬件资源分配

master节点分配的内存非常多,这是因为CDH部署集群时好多组件的主节点默认会安装在CM的master上,所以master节点要多分一点内存。建议将虚拟机放在SSD上,否则安装过程会非常慢。我使用如下的资源分配,集群搭建好后有很多警告和报错,在本文最后有一张图可以看到,都是因为硬件资源不足,所以16G电脑使用虚拟机搭建的CDH集群应该是不能正常使用的,不过可以学习一下搭建过程。

节点 内存 硬盘 CPU
master 12G 80G 4
node1 4G 80G 4
node2 4G 80G 4

2.2 下载需要的各种安装包

下图是需要的全部安装包

在这里插入图片描述

1.基础工具JDK和MySQL

JDK是必须的,CDH在部署时需要用到数据库,有三种数据可选,我们使用最常用的MySQL。MySQL安装需要三个安装包,分别是MySQL-client、MySQL-server和MySQL-share。CM连接MySQL需要一个jar包,这个jar包需要我们自己下载,mysql-connector-java。

2.CM安装包

CM下载地址:http://archive.cloudera.com/cm5/cm/5/
下图是CM官方下载页,注意选择和自己操作系统匹配的版本,centos6用户要选名称中有el6的版本,centos7用户要选名称中有centos7的版本。

在这里插入图片描述

3.CDH离线库

CDH可以通过离线库安装,也可以通过在线库安装,在线库非常容易出问题,比如还没下载完发生了掉线,那么又得重新下,非常麻烦,所以提前下好离线库来安装是最好的。

离线库下载地址:http://archive.cloudera.com/cdh5/parcels

下图是CDH官方下载页,关于CDH,我们要下载三个文件。例如下载5.14.2版本CDH离线库,需要下载红线圈出的三个文件。

在这里插入图片描述

2.3 安装JDK

解压压缩包,然后修改vi /etc/profile文件,配置环境变量。

#set java environment
JAVA_HOME=你的JDK在系统中的路径(例:/usr/local/jdk1.7.0_71)
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH 

使用命令source /etc/profile使配置生效。

注意:CDH要求JDK的版本必须在1.8以上。

在这里插入图片描述

2.4 设置免密登录

使用命令ssh-keygen生成秘钥,中间会有三次可以更改设置,全部回车采用默认设置。
在这里插入图片描述
进入/root/.ssh文件夹,可以看到刚才生成的公钥和私钥。
在这里插入图片描述使用ssh-copy-id ip命令将公钥传给另外两台机器,三个节点都要做这个操作。
在这里插入图片描述

2.5 关闭SELINUX

临时关闭:

setenforce 0

永久关闭:
修改配置文件/etc/selinux/config
将SELINUX=enforcing 改为SELINUX=disabled
重启虚拟机后生效。

2.6 安装MySQL并创建CDH需要的数据库

安装MySQL

使用安装包安装MySQL,安装过程中出现冲突。
在这里插入图片描述
使用命令rpm -qa | grep mariadb查看已安装的软件。
使用命令rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64将上一步查到的软件卸载。

在这里插入图片描述重新执行安装命令,安装成功。

在这里插入图片描述

使用命令cat /root/.mysql_secret查看MySQL的原始密码

在这里插入图片描述
使用命令mysql_secure_installation进行MySQL权限设置,第一步需要输入原始密码,注意输入后不会显示输入了信息,第二步修改密码。

在这里插入图片描述第三步,回车默认;第四步,输入n,不禁用远程连接;第五步,删除测试库,回车默认;第六步,重载权限,选否的话就白改了,回车默认选是。
在这里插入图片描述

创建四个数据库

集群监控数据库

create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

hive数据库

create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

oozie数据库

create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

hue数据库

create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

修改用户连接设置

进入mysql数据库,使用命令use mysql更改当前操作对象。修改user表中的内容,修改前user表中内容如下:

在这里插入图片描述改成下图这样,这样所有主机都可以连接MySQL数据库。

在这里插入图片描述

2.7 安装第三方依赖库

执行下面yum命令,安装CM需要的第三方库。

yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb httpd mod_ssl

三.安装ClouderaManager

以下操作均使用root用户,先在master上配置然后将master上的CM拷贝到slave节点上。

3.1 将CM安装包上传并解压

将CM安装包解压到/opt/目录下

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

3.2 创建cloudera-scm用户

Cloudera Manager默认用户为cloudera-scm, 安装完成后,CM将自动使用此用户,所有节点都需要创建这个用户。
执行添加用户命令:

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

上述命令中几个参数得含义:

–system 创建一个系统账户
–home 指定用户登入时的主目录,替换系统默认值/home/<用户名>
–no-create-home 不要创建用户的主目录
–shell 用户的登录 shell 名
–comment 用户的描述信息

注意home目录需要根据自己的情况修改一下。

3.3 修改CM agent的配置

修改server_host的值,改为master节点
在这里插入图片描述

3.4 配置CM数据库

准备CM连接数据库需要使用的jar包

先配置CM连接MySQL需要的jar包,解压mysql-connector-java这个压缩包,进入解压后的文件夹。可以看到该文件夹下有如下图所示的几个文件。
在这里插入图片描述创建一个文件夹:

mkdir /usr/share/java/

将mysql-connector-java-5.1.48-bin.jar这个jar包复制到刚才创建的文件夹下。

cp mysql-connector-java-5.1.48-bin.jar /usr/share/java/

将这个jar更名为mysql-connector-java.jar,否则CM无法识别。

mv /usr/share/java/mysql-connector-java-5.1.48-bin.jar /usr/share/java/mysql-connector-java.jar

创建CM数据库

执行脚本,这个脚本需要一些参数,根据自己的情况修改一下。

/opt/cm-5.15.2/share/cmf/schema/scm_prepare_database.sh mysql cm -hcmmaster -uroot -p123456 --scm-host cmmaster scm scm scm

出现如下信息表示脚本执行成功。
在这里插入图片描述
进入mysql可以看到刚才的脚本执行后创建的数据库cm。

在这里插入图片描述

3.5 将CM分发给其他节点

scp -r /opt/ cmnode1:/
scp -r /opt/ cmnode2:/

3.6 创建CM本地仓库Parcel-repo

创建本地仓库后,CM将使用本地仓库中的CDH,如果没有创建本地仓库,则只能从远程仓库中下载CDH,会非常麻烦。
创建本地仓库文件夹:

mkdir -p /opt/cloudera/parcel-repo

将本地仓库文件夹的所有者改为之前创建的cloudera-scm用户:

chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo

将之前下载的三个CDH文件移动到CM本地仓库
CDH-5.15.2-1.cdh5.15.2.p0.3-el7.parcel
CDH-5.15.2-1.cdh5.15.2.p0.3-el7.parcel.sha1注意这个文件需要改名,改为CDH-5.15.2-1.cdh5.15.2.p0.3-el7.parcel.sha
manifest.json

mv CDH-5.15.2-1.cdh5.15.2.p0.3-el7.parcel CDH-5.15.2-1.cdh5.15.2.p0.3-el7.parcel.sha manifest.json /opt/cloudera/parcel-repo

在主节点上创建本地仓库后,可以直接将仓库分发给slave节点,也可以之后在CDH部署时通过UI界面操作,两种方式差不多,我这里就不手动分发了。

3.7 启动CM集群

先启动server,在启动各agent

首先在master节点上执行命令,启动server:

/opt/cm-5.15.2/etc/init.d/cloudera-scm-server start

接着在master和node节点上执行命令,启动agent:

/opt/cm-5.15.2/etc/init.d/cloudera-scm-agent start

出现如下信息表示启动成功,master节点:
在这里插入图片描述slave节点:

在这里插入图片描述启动成功后,还不能立即访问UI界面,需要等到CM完全启动起来,使用命令netstat -anp | grep 7180查看到端口占用后,在浏览器访问master节点的7180端口。
在这里插入图片描述

四.部署CDH

使用默认用户名密码,admin、admin登录。

选择免费版本。
在这里插入图片描述
一直下一步,指定主机时选择所有主机。

在这里插入图片描述

刚才我们配置了本地仓库,这里可以看到了,CM默认选择的就是我们刚才装的本地仓库中的CDH,CM也推荐使用本地仓库。

在这里插入图片描述点击继续,由于之前我们没有把CDH分发给各slave节点,所以这里CM开始自动给各slave节点分发CDH。

在这里插入图片描述分发成功

在这里插入图片描述
接着CM会进行检查,然后列出检查结果,有黄色叹号的可以先略过,之后在处理。
在这里插入图片描述

验证之后开始集群设置,首先会让选需要搭建一个什么样的集群,可以随便选一个测试一下。第一次创建的话可以选第一个,比较简单一点,组件少,需要配置的东西不多。

在这里插入图片描述
给集群中各台主机选定角色,使用默认的就可以。

在这里插入图片描述
CM需要向数据库中存储一些信息,之前我们在MySQL中创建的数据库在这里需要用到。输入数据库名称和用户及密码后,测试连接,hue这个数据库发生了问题,这是因为我们之前在安装MySQL时,删除了和MySQL有冲突的包,而删除这个包的同时也删除了Linux的一些lib文件,所以这里会出现问题。可以看这篇博客解决:CDH添加Hue服务时,验证数据库连接报错 Unexpected error. Unable to verify database connection.

在这里插入图片描述
群集设置这里采用默认的设置
在这里插入图片描述
CM开始创建集群了,需要一点时间,耐心等。

在这里插入图片描述
集群搭建成功

在这里插入图片描述

进入主页,可以看到有很多黄色和红色的警告,这是因为CM集群需要的硬件资源非常高,所以会出现错误和警告,解决办法就是提高虚拟机的内存和硬盘大小,然后重启。

在这里插入图片描述

发布了169 篇原创文章 · 获赞 150 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/eagleuniversityeye/article/details/104033108
今日推荐