大数据平台CentOS7+CDH5.12.1集群搭建
1.CM(Cloudera Manager)介绍
1.1 简介
Cloudera Manager是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具,使得安装集群从几天的时间缩短在几个小时内,运维人员从数十人降低到几人以内,极大的提高集群管理的效率。
对比Apache / CDH / HDP:
(1)Apache:运维麻烦,组件间兼容性需要自己调研。(一般大厂使用,技术实力雄厚,有专业的运维人员)
(2)CDH:国内使用最多的版本,但CM不开源,但其实对中、小公司使用来说没有影响(建议使用)
(3)HDP:开源,可以进行二次开发,但是没有CDH稳定,国内使用较少
1.2 CM架构

1)Cloudera Repository:软件由Cloudera管理分布存储库。(有点类似Maven的中心仓库)
2)Server:负责软件安装、配置,启动和停止服务,管理服务运行的群集。
3)Management Service:由一组执行各种监控,警报和报告功能角色的服务。
4)Database:存储配置和监视信息。
5)Agent:安装在每台主机上。负责启动和停止的过程,配置,监控主机。
6)Clients:是用于与服务器进行交互的接口(API和Admin Console)
2.环境准备
2.1 集群规划
项目中采用3台虚拟机作为测试集群进行部署:hadoop101、hadoop102、hadoop103(对应内存分别是:16G、4G、4G)
集群规划参考:https://blog.51cto.com/12445535/2366197?tdsourcetag=s_pcqq_aiomsg
2.2 虚拟机准备
操作系统:CentOS 7
2)安装JDK:1.8(所有节点)
CentOS自带OpenJdk,不过运行CDH5需要使用Oracle的JDK
3)克隆三台虚拟机,设置hostname、hosts、静态IP、关闭防火墙(所有节点)
设置hadoop101、hadoop102、hadoop103的主机对应内存分别是:16G、4G、4G
6)在hadoop101节点安装MySQL5.6(主节点)
8)设置swap空间(所有节点)
(Cloudera建议将交换空间设置为0,过多的交换空间会引起GC耗时的激增,所以还是关闭的为好)
echo "vm.swappiness = 0" >> /etc/sysctl.conf
9)关闭大页面压缩执行命令 (所有节点)
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
10)创建CM用的数据库(主节点)
在MySQL中依次创建监控数据库、Hive数据库、Oozie数据库、Hue数据库
[root@hadoop101 ~]# mysql -uroot -p000000 # 启动数据库,000000为设置的登陆密码
mysql> create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci; #集群监控数据库
mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci; #Hive数据库
mysql> create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci; #Oozie数据库
mysql> create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci; #Hue数据库
mysql> quit;
11)下载第三方依赖(所有节点)
依次在三台节点上执行下载第三方依赖(注意:需要联网)
[root@hadoop101 ~]# yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb [root@hadoop102 ~]# yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb [root@hadoop103 ~]# yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb
3.CM安装部署
3.1 CM下载地址
本文所采用为CentOS7的CDH5.12.1版本(版本一定不要错)
1)CM下载地址:http://archive.cloudera.com/cm5/cm/5/
CentOS6选择:cloudera-manager-el6-cm5.12.1_x86_64.tar.gz
CentOS7选择:cloudera-manager-centos7-cm5.12.1_x86_64.tar.gz
2)离线库下载地址:http://archive.cloudera.com/cdh5/parcels/5.12.1/
CentOS6:
CentOS7:
3.2 CM安装
注:以下所有操作均使用root用户
1)创建/opt/module/cm目录
[root@hadoop101 module]# mkdir –p /opt/module/cm
2)上传cloudera-manager-el6-cm5.12.1_x86_64.tar.gz到hadoop101的/opt/software目录,并解压到/opt/module/cm目录
[root@hadoop101 software]# tar -zxvf cloudera-manager-el6-cm5..1_x86_64.tar.gz -C /opt/module/cm
3)分别在hadoop101、hadoop102、hadoop103创建用户cloudera-scm
[root@hadoop101 module]#
useradd \
--system \
--home=/opt/module/cm/cm-5.12./run/cloudera-scm-server \
--no-create-home \
--shell=/bin/false \
--comment "Cloudera SCM User" cloudera-scm [root@hadoop102 module]#
useradd \
--system \
--home=/opt/module/cm/cm-5.12./run/cloudera-scm-server \
--no-create-home \
--shell=/bin/false \
--comment "Cloudera SCM User" cloudera-scm [root@hadoop103 module]#
useradd \
--system \
--home=/opt/module/cm/cm-5.12./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 用户的描述信息
注意:Cloudera Manager默认去找用户cloudera-scm,创建完该用户后,将自动使用此用户。
4)修改CM Agent配置
修改文件/opt/module/cm/cm-5.12.1/etc/cloudera-scm-agent/ config.ini的主机名称
[root@hadoop101 cloudera-scm-agent]# vim /opt/module/cm/cm-5.12./etc/cloudera-scm-agent/config.ini
修改主机名称
server_host=hadoop101
5)配置CM的数据库
拷贝mysql-connector-java-5.1.27-bin.jar文件到目录 /usr/share/java/
[root@hadoop101 cm]# mkdir –p /usr/share/java/
[root@hadoop101 cm]# cd /opt/software/mysql-libs/
[root@hadoop101 mysql-libs]# tar -zxvf mysql-connector-java-5.1..tar.gz
[root@hadoop101 mysql-libs]# cp /opt/software/mysql-libs/mysql-connector-java-5.1./mysql-connector-java-5.1.-bin.jar /usr/share/java/
[root@hadoop101 mysql-libs]# mv /usr/share/java/mysql-connector-java-5.1.-bin.jar /usr/share/java/mysql-connector-java.jar
注意:jar包名称要修改为mysql-connector-java.jar
6)使用CM自带的脚本,在MySQL中创建CM库(红字部分要按实际修改)
[root@hadoop101 cm-5.12.]# /opt/module/cm/cm-5.12./share/cmf/schema/scm_prepare_database.sh mysql cm -hhadoop101 -uroot -p --scm-host hadoop101 scm scm scm
参数说明
-h:Database host
-u:Database username
-p:Database Password
--scm-host:SCM server's hostname
在执行这一步可能会报错:参考:https://www.cnblogs.com/MWCloud/p/11352557.html
java.sql.SQLException: Access denied for user 'scm'@'hadoop101.com' (using password: YES)
7)分发cm(xsync同步分发脚本编写)
[root@hadoop102 module]# xsync /opt/module/cm
8)创建Parcel-repo
[root@hadoop101 module]# mkdir -p /opt/cloudera/parcel-repo
[root@hadoop101 module]# chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
9)拷贝下载文件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到hadoop101的/opt/cloudera/parcel-repo/目录下
[root@hadoop101 parcel-repo]# ll
total
-rw-r--r-- root root Aug : CDH-5.12.-.cdh5.12.1.p0.-el7.parcel
-rw-r--r-- root root Aug : CDH-5.12.-.cdh5.12.1.p0.-el7.parcel.sha1
-rw-r--r-- root root Aug : manifest.json
10)将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
[root@hadoop101 parcel-repo]# mv CDH-5.12.-.cdh5.12.1.p0.-el7.parcel.sha1 CDH-5.12.-.cdh5.12.1.p0.-el7.parcel.sha
11)在hadoop101上创建目录/opt/cloudera/parcels,并修改该目录的所属用户及用户组为cloudera-scm
[root@hadoop101 module]# mkdir -p /opt/cloudera/parcels
[root@hadoop101 module]# chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
12)分发/opt/cloudera/
[root@hadoop101 opt]# xsync /opt/cloudera/
3.3 启动CM服务
1)启动服务节点:hadoop101
[root@hadoop101 cm]# /opt/module/cm/cm-5.12./etc/init.d/cloudera-scm-server start
Starting cloudera-scm-server: [ OK ]
2)启动工作节点:hadoop101、hadoop102、hadoop103
[root@hadoop101 cm]# /opt/module/cm/cm-5.12./etc/init.d/cloudera-scm-agent start [root@hadoop102 cm]# /opt/module/cm/cm-5.12./etc/init.d/cloudera-scm-agent start [root@hadoop103 cm]# /opt/module/cm/cm-5.12./etc/init.d/cloudera-scm-agent start
注意:启动过程非常慢,Manager启动成功需要等待5分钟左右,过程中会在数据库中创建对应的表需要耗费一些时间。
cloudera-scm-agent start启动失败解决:
3)查看被占用则表示启动成功了!!!
[root@hadoop101 cm]# netstat -anp | grep
tcp 0.0.0.0: 0.0.0.0:* LISTEN /java
3.4 关闭CM服务(这里只是介绍操作,部署过程跳过此节)
1)关闭工作节点:hadoop101、hadoop102、hadoop103
[root@hadoop101 cm]# /opt/module/cm/cm-5.12./etc/init.d/cloudera-scm-agent stop
Stopping cloudera-scm-agent: [确定] [root@hadoop102 cm]# /opt/module/cm/cm-5.12./etc/init.d/cloudera-scm-agent stop
Stopping cloudera-scm-agent: [确定] [root@hadoop103 cm]# /opt/module/cm/cm-5.12./etc/init.d/cloudera-scm-agent stop
Stopping cloudera-scm-agent: [确定]
2)关闭服务节点:hadoop101
[root@hadoop101 cm]# /opt/module/cm/cm-5.12./etc/init.d/cloudera-scm-server stop
停止 cloudera-scm-server: [确定]
3.5 CM集群部署
1)访问http://hadoop101.com:7180,(用户名、密码:admin)建议在虚拟机的节点中访问CM进行安装




这里选择已经存在的三个节点:


等待下载安装Parcel,该过程大概10分钟


最后一步,检查集群安全性

3.6 组件安装(按需求安装)
1)选择自定义服务

2)选择HDFS、YARN、ZooKeeper

3)节点角色分配

4)集群设置默认

5)自动启动进程

6)安装完成!

大数据平台CentOS7+CDH5.12.1集群搭建的更多相关文章
- 大数据系列(5)——Hadoop集群MYSQL的安装
前言 有一段时间没写文章了,最近事情挺多的,现在咱们回归正题,经过前面四篇文章的介绍,已经通过VMware安装了Hadoop的集群环境,相关的两款软件VSFTP和SecureCRT也已经正常安装了. ...
- 大数据系列(4)——Hadoop集群VSFTP和SecureCRT安装配置
前言 经过前三篇文章的介绍,已经通过VMware安装了Hadoop的集群环境,当然,我相信安装的过程肯定遇到或多或少的问题,这些都需要自己解决,解决的过程就是学习的过程,本篇的来介绍几个Hadoop环 ...
- 大数据系列(3)——Hadoop集群完全分布式坏境搭建
前言 上一篇我们讲解了Hadoop单节点的安装,并且已经通过VMware安装了一台CentOS 6.8的Linux系统,咱们本篇的目标就是要配置一个真正的完全分布式的Hadoop集群,闲言少叙,进入本 ...
- 大数据系列(2)——Hadoop集群坏境CentOS安装
前言 前面我们主要分析了搭建Hadoop集群所需要准备的内容和一些提前规划好的项,本篇我们主要来分析如何安装CentOS操作系统,以及一些基础的设置,闲言少叙,我们进入本篇的正题. 技术准备 VMwa ...
- CentOS6安装各种大数据软件 第十章:Spark集群安装和部署
相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...
- 大数据系列(1)——Hadoop集群坏境搭建配置
前言 关于时下最热的技术潮流,无疑大数据是首当其中最热的一个技术点,关于大数据的概念和方法论铺天盖地的到处宣扬,但其实很多公司或者技术人员也不能详细的讲解其真正的含义或者就没找到能被落地实施的可行性方 ...
- 大数据学习(3)- redis集群
安装方法摘自 http://www.redis.cn/topics/cluster-tutorial.html 这个方法为简单版的方法,在原文的基础上,我加了一点参数,其他参数配置可以请教其他大神 搭 ...
- 初试 Centos7 上 Ceph 存储集群搭建
转载自:https://cloud.tencent.com/developer/article/1010539 1.Ceph 介绍 Ceph 是一个开源的分布式存储系统,包括对象存储.块设备.文件系统 ...
- 大数据学习之hadoop伪分布式集群安装(一)公众号undefined110
hadoop的基本概念: Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力进行高速运算和存储. Hadoo ...
随机推荐
- javaIO--数据流之IO流与字节流
0.IO流 0.1.IO(Input Output)流的概念 Java中将不同设备之间的数据传输抽象为“流”:Stream设备指的是:磁盘上的文件,网络连接,另一个主机等等 按流向分:输入流,输出流: ...
- 9. ClustrixDB主从复制
一.在线添加从库 主集群: 10.1.1.23:5306 从集群: 10.1.3.88:5306 主库开启binlog MySQL [(none)]> CREATE BINLOG 'clustr ...
- web下载文件夹
1.文件下载有两种方式:一种是超链接,一种是Servlet提供下载. 2.超链接下载时:当文件可以在网页直接打开时,会直接打开文件,而不是下载,当文件打开不了时,会提供下载窗口. 3.超链接下载原理 ...
- mysql 创建用户和授权
https://www.cnblogs.com/sos-blue/p/6852945.html
- nginx下的负载均衡
负载均衡应用场景: 普通web应用部署到多台应用服务器上,客户端通过访问应用服务器发送请求,最简单的就是n对1模式,n个客户端访问同一个应用服务器,这种情况当并发量大了,就无法应对,而且,如果只有一台 ...
- 关于MySQL 中 EXISTS 的用法
在MySQL中 EXISTS 和 IN 的用法有什么关系和区别呢? 假定数据库中有两个表 分别为 表 a 和表 b create table a ( a_id int, a_name varchar( ...
- springboot 基于@Scheduled注解 实现定时任务
前言 使用SpringBoot创建定时任务非常简单,目前主要有以下三种创建方式: 一.基于注解(@Scheduled) 二.基于接口(SchedulingConfigurer) 前者相信大家都很熟悉, ...
- mysql 5.7 安装配置及无法启动的问题解决
(用这篇配置就能正常配置成功) mysql 免安装版配置方法: https://www.jb51.net/article/134452.htm 参考:https://blog.csdn.net/qq_ ...
- spring boot + mybatis + layui + shiro后台权限管理系统
后台管理系统 版本更新 后续版本更新内容 链接入口: springboot + shiro之登录人数限制.登录判断重定向.session时间设置:https://blog.51cto.com/wyai ...
- a = a + b 与 a += b 的区别
1.对于同样类型的a,b来说 两个式子执行的结果确实没有什么区别.但是从编译的角度看吧(武让说的),a+=b;执行的时候效率高. 2.对于不同类型的a,b来说 2.1 不同类型的两个变量在进行运 ...