CDH6.3.1集群离线部署

3,561 阅读7分钟

前言

一、官网介绍

CDH是Cloudera的100%开源平台发行版,包括Apache Hadoop,专为满足企业需求而构建。CDH提供开箱即用的企业使用所需的一切。通过将Hadoop与十几个其他关键的开源项目集成,Cloudera创建了一个功能先进的系统,可帮助您执行端到端的大数据工作流程。

二、原生Hadoop与CDH比较

  • Apache Hadoop 不足之处

    • 版本管理混乱
    • 部署过程繁琐、升级过程复杂
    • 兼容性差
    • 安全性低
  • CDH的优点:

    • 版本划分清晰
    • 版本更新速度快
    • 支持Kerberos安全认证
    • 文档清晰
    • 支持多种安装方式(Cloudera Manager、YUM、RPM、Tarball)
  • CDH提供以下特性:

    • 灵活性:能够存储各种类型的数据,并使用各种不同的计算框架进行操作,包括批处理、交互式sql、文本搜索、机器学习和统计计算。
    • 集成性:能够快速集成和运行一个完整的Hadoop平台,适用于各种不同的硬件和软件。
    • 安全性:处理和控制敏感数据。
    • 扩展性:能够部署多种应用,并扩展和扩充它们以满足你的需求。
    • 高可用性:可以放心地用于关键的商业任务。
    • 兼容性:可以利用你现有的IT基础设施和资源。
  • 为什么选择CDH:

    • CDH基于稳定版Apache Hadoop,并应用最新Bug修复或者Feature的Patch
    • Cloudera官网上安装、升级文档十分详细
    • CDH支持Yum包、tar包、RPM包,Cloudera Manager四种安装方式。推荐使用Yum、Apt方式安装

三、什么是CM

CM(cloudera Manager)是一种管理CDH集群的端到端的应用。CM通过对CDH集群的各部分提供精细的可视化和控制,建立了企业级部署的标准,增强了操作人员的能力以提升性能、提升服务质量、提高合规性、降低管理成本。

通过CM,技术人员可以很容易地部署和集中化操作CDH技术栈和其他可托管的服务。它使安装过程自动化,使部署时间从几个星期减少到几分钟;提供了一个集群范围、实时的主机和服务运行情况的视图;提供了一个单一的中央控制台,以对集群配置进行变更;并采用全方位的报告和诊断工具来帮助你优化性能和利用率。

  • Cloudera Manager Server由以下几个部分组成:

    • Agent:安装在每台主机上。该代理负责启动和停止的过程,拆包配置,触发装置和监控主机。

    • Management Service:由一组执行各种监控,警报和报告功能角色的服务。

    • Database:存储配置和监视信息。通常情况下,多个逻辑数据库在一个或多个数据库服务器上运行。例如,Cloudera的管理服务器和监控角色使用不同的逻辑数据库。

    • Cloudera Repository:软件由Cloudera 管理分布存储库。

    • Clients:是用于与服务器进行交互的接口:

    • Admin Console :基于Web的用户界面与管理员管理集群和Cloudera管理。

    • API :与开发人员创建自定义的Cloudera Manager应用程序的API。

环境准备

一、所需的软件包

  • mysql-connector-java-5.1.47.jar
  • mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz
  • jdk-8u181-linux-x64.tar.gz
  • cm6.3.1-redhat7.tar.gz
  • CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel
  • CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha1
  • manifest.json

二、主机规划

Centos7.x -(Linux localhost 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux)

HostnameIPAddress角色硬件配置Parcel⽂件离线源Mysql组件CM服务进程
CDH1.xinxing172.18.12.252Master2H 8GActivity Monitor
CDH2.xinxing172.18.13.3Slave2H 8GAlert Publisher、Event Server
CDH3.xinxing172.18.13.5Slave2H 8GHost Monitor、Service Monitor

集群部署

一、集群节点初始化

1、设置所有节点的hosts⽂件:

vim /etc/hosts

后面如果遇到问题就:

注释如下:

#127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

添加如下:

172.18.12.252 CDH1.xinxing 	
172.18.13.3 CDH2.xinxing 
172.18.13.5 CDH3.xinxing 	

2、关闭防火墙规则关闭Selinux:

[root@localhost /]# systemctl stop firewalld            #关闭防火墙
[root@localhost /]# systemctl disable firewalld         #关闭防火墙开机自启动
[root@localhost /]# iptables -F                         #清空规则
[root@localhost /]# vi /etc/selinux/config              #将SELINUX=enforcing改为SELINUX=disabled,重启后生效

所有机器配置完后重启:

[root@localhost tmp]# reboot

3、安装NTP服务同步时区以及时钟

安装NTP服务同步时区以及时钟

[root@localhost tmp]# yum -y install ntp

服务端:

[root@localhost tmp]# vim /etc/ntp.conf

注释四行:
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

添加一行:
server 127.127.1.0 iburst

启动ntp服务:
[root@localhost tmp]# systemctl start ntpd

查看是否同步:
[root@localhost tmp]# ntpq -p

设置开机启动

[root@localhost tmp]# systemctl enable ntpd

客户端

[root@localhost tmp]# vim /etc/ntp.conf

注释四行:
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

配置本地ntpd Server:
server 172.18.13.153

允许ntpdserver主动修改本机时间:
restrict 172.18.13.153 nomodify notrap noquery

与ntpd Server同步一次:
[root@localhost tmp]# ntpdate 172.18.13.153

客户端启动ntp服务:
[root@localhost tmp]# systemctl start ntpd

设置开机启动:
[root@localhost tmp]# systemctl enable ntpd

查看状态:
[root@localhost tmp]# ntpq -p

4、所有节点部署JDK

参考我的另一片文章> java环境变量配置

5、主节点离线部署mysql5.7

参考我的另一片文章> 两种方式离线部署Mysql5.7.x

6、创建CDH的元数据库和⽤户、amon服务的数据库及⽤户

create database cmf DEFAULT CHARACTER SET utf8;
create database amon DEFAULT CHARACTER SET utf8;
grant all on cmf.* TO 'cmf'@'%' IDENTIFIED BY '123456';
grant all on amon.* TO 'amon'@'%' IDENTIFIED BY '123456';
flush privileges;

7、在主节点上把jdbc驱动放到指定的目录并去掉名称上的版本号

[root@localhost mysql]# mkdir -p /usr/share/java/       #cm会自动去这个默认的位置寻找jdbc驱动
[root@localhost mysql]# cd /tmp/
[root@localhost tmp]# cp mysql-connector-java-5.1.47.jar /usr/share/java/mysql-connector-java.jar

二、CDH正式部署

1、离线部署cm server及agent

所有节点:

[root@localhost /]# mkdir /opt/cloudera-manager
[root@localhost /]# cd /tmp
[root@localhost tmp]# tar -xzvf cm6.3.1-redhat7.tar.gz -C /opt/cloudera-manager/
[root@localhost tmp]# cd /opt/cloudera-manager/cm6.3.1/RPMS/x86_64

安装前先新建用户 useradd cloudera-scm

否则你将会以ROOT的身份安装CDH

主节点:

[root@localhost x86_64]# rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
[root@localhost x86_64]# rpm -ivh cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
[root@localhost x86_64]# rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm --nodeps --force

从节点:

[root@localhost x86_64]# rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
[root@localhost x86_64]# rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm --nodeps --force

2、修改配置文件

所有agent节点配置:

[root@CDH1 /]# vim /etc/cloudera-scm-agent/config.ini
server_host=localhost改为:server_host=cdh1.xinxing

主节点修改serverDB的配置:

[root@localhost x86_64]# vim /etc/cloudera-scm-server/db.properties 

配置如下:

# Copyright (c) 2012 Cloudera, Inc. All rights reserved.
#
# This file describes the database connection.
#

# The database type
# Currently 'mysql', 'postgresql' and 'oracle' are valid databases.
com.cloudera.cmf.db.type=mysql

# The database host
# If a non standard port is needed, use 'hostname:port'
com.cloudera.cmf.db.host=cdh1.xinxing

# The database name
com.cloudera.cmf.db.name=cmf

# The database user
com.cloudera.cmf.db.user=cmf

#The database user's password
com.cloudera.cmf.db.password=123456

# The db setup type
# After fresh install it is set to INIT
# and will be changed post config.
# If scm-server uses Embedded DB then it is set to EMBEDDED
# If scm-server uses External DB then it is set to EXTERNAL
com.cloudera.cmf.db.setupType=EXTERNAL

3、主节点部署离线parcel源

安装httpd服务

[root@localhost x86_64]# yum install -y httpd

部署离线parcel源并启动httpd服务

[root@localhost /]# cd tmp/
[root@localhost tmp]#  mkdir -p /var/www/html/cdh6_parcel
[root@localhost tmp]# mv CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel /var/www/html/cdh6_parcel/
[root@localhost tmp]# mv CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha1 /var/www/html/cdh6_parcel/CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha
[root@localhost tmp]# mv manifest.json /var/www/html/cdh6_parcel/
[root@localhost tmp]# cd /var/www/html/cdh6_parcel/
[root@localhost cdh6_parcel]# systemctl start httpd

浏览器访问http://172.18.12.252/cdh6_parcel/查看是否可以访问到

4、主节点启动Server服务

[root@localhost cdh6_parcel]# systemctl start cloudera-scm-server
[root@localhost cloudera-scm-server]# tail -F /var/log/cloudera-scm-server/cloudera-scm-server.log  查看日志
#拋错就解决,没拋错就等一会儿出现INFO WebServerImpl:org.eclipse.jetty.server.AbstractConnector: Started ServerConnector@4b1e88bc{HTTP/1.1,[http/1.1]}{0.0.0.0:7180}

浏览器访问http://172.18.12.252:7180/查看是否可以访问到

拋错就解决!不过要给自己后面留坑

5、所有节点启动Agent服务

[root@CDH1 /]# systemctl start cloudera-scm-agent

6、登录web界面配置(admin/admin)

所有机器修改如下:

[root@CDH3 ~]# sysctl vm.swappiness=10
vm.swappiness = 10
[root@CDH3 ~]# echo 'vm.swappiness=10'>> /etc/sysctl.conf                   #处理虚拟大小问题
[root@CDH3 ~]# echo never > /sys/kernel/mm/transparent_hugepage/defrag      #处理大页面问题,不处理会影响大性能
[root@CDH3 ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled

请根据自己的实际问题去解决问题,不要盲目复制

总结

到这里差不多就该结束了,由于过年的原因,部署教程就先到这里了,后续有新的内容会持续更新,大家新年快乐~