zoukankan      html  css  js  c++  java
  • 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

    1)VM Ware安装CentOS 7

    2)安装JDK:1.8(所有节点)

    CentOS自带OpenJdk,不过运行CDH5需要使用Oracle的JDK

    (使用集群同步脚本对配置文件同步分发)

    3)克隆三台虚拟机,设置hostname、hosts、静态IP、关闭防火墙(所有节点)

    设置hadoop101、hadoop102、hadoop103的主机对应内存分别是:16G、4G、4G

    4)配置三台虚拟机SSH免密登陆

    5)关闭所有节点的SELINUX

    6)在hadoop101节点安装MySQL5.6(主节点)

    7)搭建ntp服务器及客户端进行时间同步

    8)设置swap空间(所有节点)

    (Cloudera建议将交换空间设置为0,过多的交换空间会引起GC耗时的激增,所以还是关闭的为好)

    检查虚拟内存需求率
    cat /proc/sys/vm/swappiness
    显示如下:
    30
    临时降低虚拟内存需求率
    sysctl vm.swappiness=0
    永久降低虚拟内存需求率
    echo "vm.swappiness = 0" >> /etc/sysctl.conf
    生效
    sysctl -p

    9)关闭大页面压缩执行命令 (所有节点)

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

    配置开机自动生效
    echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.local
    echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.local
    chmod +x /etc/rc.d/etc/rc.local

    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下载地址

    本文所采用为CentOS7CDH5.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.12.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.1/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.1/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.1/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.1/etc/cloudera-scm-agent/config.ini

    修改主机名称

    server_host=hadoop101
    server_port=7182
    parcel_dir=/opt/cloudera/parcels

    指定运行单用户模式的用户名(仅用于单用户模式,不配置)
    vim /opt/module/cm/cm-5.12.1/etc/default/cloudera-scm-agent
    
    取消以下行的注释 USER="cloudera-scm"
    

      

    5)配置CM的数据库

    拷贝mysql-connector-java-5.1.27-bin.jar文件到目录 /usr/share/java/    

    [root@hadoop101 cm]#wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.39.tar.gz
    [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.39.tar.gz
    [root@hadoop101 mysql-libs]# cp /opt/software/mysql-libs/mysql-connector-java-5.1.39/mysql-connector-java-5.1.39-bin.jar /usr/share/java/
    [root@hadoop101 mysql-libs]# mv /usr/share/java/mysql-connector-java-5.1.39-bin.jar /usr/share/java/mysql-connector-java.jar

    注意:jar包名称要修改为mysql-connector-java.jar

    6)使用CM自带的脚本,在MySQL中创建CM库(红字部分要按实际修改)

    [root@hadoop101 cm-5.12.1]# /opt/module/cm/cm-5.12.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hhadoop101 -uroot -p000000 --scm-host hadoop101 scm scm scm

    参数说明

    -h:Database host

    -u:Database username

    -p:Database Password

    --scm-host:SCM server's hostname

    scm scm scm:database_name username password

    在执行这一步可能会报错:参考:https://www.cnblogs.com/MWCloud/p/11352557.html

    java.sql.SQLException: Access denied for user 'scm'@'hadoop101.com' (using password: YES)

    7)准备scm库

    数据库配置:
    
    mysql -uroot -p
    create database scm default character set utf8;
    grant all privileges on *.* to scm@'hd01.cmdschool.org' identified by 'scm';
    flush privileges;
    修改数据库连接参数:
    
    cp /opt/module/cm/cm-5.12.1/etc/cloudera-scm-server/db.properties /opt/module/cm/cm-5.12.1/etc/cloudera-scm-server/db.properties.default
    vim /etc/cloudera-scm-server/db.properties
    修改如下参数:
    
    com.cloudera.cmf.db.type=mysql
    com.cloudera.cmf.db.host=hadoop101
    com.cloudera.cmf.db.name=scm
    com.cloudera.cmf.db.user=scm
    com.cloudera.cmf.db.password=scm
    com.cloudera.cmf.db.setupType=EXTERNAL

    8)分发cm(xsync同步分发脚本编写

    [root@hadoop102 module]# xsync /opt/module/cm

    9)创建Parcel-repo

    [root@hadoop101 module]# mkdir -p /opt/cloudera/parcel-repo
    [root@hadoop101 module]# chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo

    10)拷贝下载文件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 1603040
    -rw-r--r-- 1 root root 1641431040 Aug 16 19:02 CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel
    -rw-r--r-- 1 root root         41 Aug 16 19:00 CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1
    -rw-r--r-- 1 root root      72312 Aug 16 19:00 manifest.json

    11)将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.1-1.cdh5.12.1.p0.3-el7.parcel.sha1 CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha

    12)在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

    13)分发/opt/cloudera/

    [root@hadoop101 opt]# xsync /opt/cloudera/

    3.3 启动CM服务

    1)启动服务节点:hadoop101

    [root@hadoop101 cm]# /opt/module/cm/cm-5.12.1/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.1/etc/init.d/cloudera-scm-agent start
     
    [root@hadoop102 cm]# /opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-agent start
    
    [root@hadoop103 cm]# /opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-agent start

    注意:启动过程非常慢,Manager启动成功需要等待5分钟左右,过程中会在数据库中创建对应的表需要耗费一些时间。

    cloudera-scm-agent start启动失败解决:

    3)查看被占用则表示启动成功了!!!

    [root@hadoop101 cm]# netstat -anp | grep 7180
    tcp        0      0 0.0.0.0:7180                0.0.0.0:*                   LISTEN      5498/java

    3.4 关闭CM服务(这里只是介绍操作,部署过程跳过此节)

    1)关闭工作节点:hadoop101、hadoop102、hadoop103

    [root@hadoop101 cm]# /opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-agent stop
    Stopping cloudera-scm-agent:                               [确定]
    
    [root@hadoop102 cm]# /opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-agent stop
    Stopping cloudera-scm-agent:                               [确定]
    
    [root@hadoop103 cm]# /opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-agent stop
    Stopping cloudera-scm-agent:                               [确定]

    2)关闭服务节点:hadoop101

    [root@hadoop101 cm]# /opt/module/cm/cm-5.12.1/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)安装完成!

     

  • 相关阅读:
    MPI学习四-集合通信
    MPI学习三
    MPI学习二
    MPI学习一
    HIP编程
    CUDA实战3
    CUDA实战2
    Excel处理
    2.java中c#中statc 静态调用不同之处、c#的静态构造函数和java中的构造代码块、静态代码块
    1.隐藏继承的成员new / 虚方法(override)/ abstract / 多态 ----- 重写
  • 原文地址:https://www.cnblogs.com/uestc2007/p/14270556.html
Copyright © 2011-2022 走看看