CDH 6.3.2 部署

2020-12-18

Cloudera Manager 安装

系统环境准备,安装基础环境

  1. 选择四台已经安装 CentOS7 Linux 系统的节点,分配资源。

    安装 CDH 节点推荐内存为 64G,大部分内存被 Cloudera Management Service 占用,因为做了大量的数据分析和整合。这里,划分四台节点如下:

    主机名 IP 地址 节点角色 硬件资源
    cm-s1 192.168.0.50 Server,Agent 8C/32G/100G
    cm-a1 192.168.0.51 Agent 4C/8G/100G
    cm-a2 192.168.0.52 Agent 4C/8G/100G
    cm-a3 192.168.0.53 Agent 4C/8G/100G

    服务架构如下:

    wpsB7Dduz.png

    • Cloudera Manager Server 是 Cloudera Manager 的核心是,Server 管理控制台服务和托管应用程序逻辑,负责软件的安装、配置、服务的启动与关闭及管理集群。
    • Agent 安装在每台主机上,负责进程的启动和停止,解压配置,触发安装及监控主机。
    • Management Service 是由一组角色组成的服务,这些角色执行各种监视,警报和报告功能。
    • DataBase 用来存储配置及监控信息。
    • ClouderaRepository 是 Cloudera Manager 分发软件的存储库。
    • Clients 分为 AdminConsole(管理员 Web 界面版)和 API(用于开发者创建 Cloudera Manager 程序)两种形式。
  2. 初始化节点

    • 更改主机名分别为 cm-s1、cm-a1、cm-a2、cm-a3
    • 配置 SSH 秘钥验证,达到任一节点无需密码验证登录其他站点 root 用户的效果
    • 配置/etc/hosts 文件,使任一节点通过 cm-s1、cm-a1、cm-a2、cm-a3 即可域名解析到对应节点 IP
    • 关闭 SELinux 和 firewalld.service
  3. 配置时间同步服务
    在每个节点上安装 chrony 服务,并配置:

    [root@cm-s1 ~]# for i in `seq 0 3`;do ssh root@192.168.0.5$i yum -y install chrony;done
    [root@cm-s1 ~]# for i in `seq 0 3`;do ssh root@192.168.0.5$i wget https://sto.17ker.top/sources/chrony.conf -O /etc/chrony.conf;done
    [root@cm-s1 ~]# for i in `seq 0 3`;do ssh root@192.168.0.5$i systemctl start chronyd;done
    
  4. 安装 JDK
    给每台节点安装 JDK,这里我们安装的 CDH 版本为 6.3.2,在官网描述中这里需要使用 jdk8,且对小版本有要求,

    image20201217001801596.png

    这里我们选择 jdk8 版本中的 1.8u181 版本安装。

    [root@cm-s1 ~]# for i in `seq 0 3`;do ssh root@192.168.0.5$i rpm -ivh https://sto.17ker.top/sources/jdk-8u181-linux-x64.rpm;done
    

    在每台节点配置 JDK 的环境变量:

    [root@cm-s1 ~]# tail -n5 /etc/profile
    #Java Environment variables
    export JAVA_HOME=/usr/java/default
    export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib
    export PATH=$PATH:$JAVA_HOME/bin
    [root@cm-s1 ~]# source /etc/profile
    
  5. 具体如下:

  6. 安装 MySQL 数据库
    在 cm-s1 节点安装 mysql5.7

    • 添加 mysql5.7 仓库

      [root@cm-s1 ~]# rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
      [root@cm-s1 ~]# yum makecache fast
      
    • 安装 MySQL

      [root@cm-s1 ~]# yum -y install mysql-community-server
      
    • 启动

      [root@cm-s1 ~]# systemctl start mysqld
      
    • 安全访问设置

      • 查看默认 root 密码:

        [root@cm-s1 ~]# cat /var/log/mysqld.log | grep -i 'temporary password'
        
      • 更改 root 密码,移除匿名用户:

        [root@cm-s1 ~]# mysql_secure_installation
        
      • 移除 root 用户远程登录限制:

        [root@cm-s1 ~]# mysql -hlocalhost -pAz123456_ -e "UPDATE mysql.user SET host='192.168.0.%' WHERE user='root';FLUSH PRIVILEGES;"
        
  7. 安装第三方依赖包
    在每台节点上安装 ClouderManager 需要的第三方依赖包,每台节点执行如下命令:

    yum install -y chkconfig bind-utils psmisc cyrus-sasl-plain cyrus-sasl-gssapi portmap /lib/lsb/init-functions httpd mod_ssl openssl-devel python python-psycopg2 MySQL-python libxslt zlib sqlite fuse fuse-libs redhat-lsb
    

    至此,安装 Cloudera Manager 的基础环境准备完成。

Cloudera Manager 组件安装

  1. 添加 yum 源

    $ sudo wget https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/cloudera-manager.repo -P /etc/yum.repos.d/
    $ sudo rpm --import https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPM-GPG-KEY-cloudera
    $ sudo yum makecache fast
    
  2. 在 cm-s1 节点安装 CM Server

    [root@cm-s1 ~]# yum install -y cloudera-manager-daemons cloudera-manager-server cloudera-manager-agent
    
  3. 在 cm-a1、cm-a2、cm-a3 节点安装 daemons、agent RPM 包

    [root@cm-a1 ~]# yum install -y cloudera-manager-daemons cloudera-manager-agent
    

    当完成安装 agent 后,会在当前节点生成“/opt/cloudera/cm-agent”目录。

  4. 配置 CM Agent 的 server host
    在所有的节点上,修改 Agent 的配置文件 /etc/cloudera-scm-agent/config.ini,修改 server_host=cm-s1,指定所有 Agent 节点的 Server 节点为 cm-s1。

    [root@cm-s1 ~]# for i in `seq 0 3`;do ssh root@192.168.0.5$i sed -i 's/server_host=localhost/server_host=cm-s1/' /etc/cloudera-scm-agent/config.ini;done
    [root@cm-s1 ~]# for i in `seq 0 3`;do ssh root@192.168.0.5$i grep server_host /etc/cloudera-scm-agent/config.ini;done
    
  5. 配置 CM Server 数据库
    在 cm-s1 节点上,修改 /etc/cloudera-scm-server/db.properties 文件,配置内容如下:

    com.cloudera.cmf.db.type=mysql
    com.cloudera.cmf.db.host=cm-s1
    com.cloudera.cmf.db.name=cmf
    com.cloudera.cmf.db.user=cmf
    com.cloudera.cmf.db.password=Az123456_
    com.cloudera.cmf.db.setupType=EXTERNAL
    

    上传 mysql-connector-java-5.1.48.jar 文件到 cm-s1 节点的/usr/share/java 目录下,如果没有目录需要创建,并且软链接到 mysql-connector-java.jar

    [root@cm-s1 ~]# mkdir -p /usr/share/java
    [root@cm-s1 ~]# wget https://sto.17ker.top/sources/mysql-connector-java-5.1.48.jar -P /usr/share/java
    [root@cm-s1 ~]# cd /usr/share/java/
    [root@cm-s1 java]# ln -s mysql-connector-java-5.1.48.jar mysql-connector-java.jar
    

    为 MySQL 服务器创建 cmf 用户

    [root@cm-s1 ~]# mysql -uroot -hcm-s1 -pAz123456_ -e "grant all on *.* to 'cmf'@'%' identified by 'Az123456_' with grant option;"
    

    在 cm-s1 节点上执行如下命令初始化数据库:

    [root@cm-s1 ~]# cd /opt/cloudera/cm/schema/
    #  -u用户,-p密码 ,数据库类型,数据库,用户,密码
    [root@cm-s1 schema]# ./scm_prepare_database.sh -ucmf -pAz123456_ mysql cmf cmf Az123456_
    ...
    All done, your SCM database is configured correctly!
    
  6. 准备 CDH Parcels 本地源
    在 cm-s1 节点上创建 /opt/cloudera/parcel-repo 目录,并下载如下文件:

    [root@cm-s1 ~]# mkdir -p /opt/cloudera/parcel-repo
    [root@cm-s1 ~]# wget -P /opt/cloudera/parcel-repo https://archive.cloudera.com/cdh6/6.3.2/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel
    [root@cm-s1 ~]# wget -O /opt/cloudera/parcel-repo/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha https://archive.cloudera.com/cdh6/6.3.2/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1
    [root@cm-s1 ~]# wget -P /opt/cloudera/parcel-repo https://archive.cloudera.com/cdh6/6.3.2/parcels/manifest.json
    
  7. 启动 CM Server、Agent
    在 Server 节点启动 ClouderaManager Server,分别在 Agent 节点启动 ClouderaManager Agent:

    [root@cm-s1 ~]# systemctl start cloudera-scm-server.service
    [root@cm-s1 ~]# for i in `seq 0 3`;do ssh root@192.168.0.5$i systemctl start cloudera-scm-agent.service;done
    

    Server 启动比较慢,需要等待一会才能访问对应的 Web 界面,可以查看启动日志,Sever 启动的日志默认在路径*/var/log/cloudera-scm-server/cloudera-scm-server.log 下。Agent 启动的日志默认在路径/var/log/cloudera-scm-agent/cloudera-scm-agent.log* 下。可以通过以上日志来检查启动中是否有错。

    Sever 首次启动会自动创建表以及数据,不要立即关闭或重启,否则需要删除所有表及数据重新安装。

    至此,Cloudera Manager 的安装完成。

CDH 安装

  1. 登录 Cloudera Manager WebUI 界面

    Cloudera Manager 的 WebUI 界面登录地址为 http://cm-s1:7180,默认的用户名和密码都是 admin 。输入完成后,点击登录:

    image20201217232829595.png

  2. 选择安装 CDH 的节点
    登录之后,一直选择“继续”即可
    image20201217232947676.png

    image20201217233124746.png

    选择 Cloudera Express,点击“继续”,弹出页面后继续点击“继续”:

    image20201217233232618.png

    image20201217233348327.png

    image20201217233452299.png

    弹出如下页面,该页面是为 CDH 指定主机,可以使用“模式”通配来选择主机,也可以选择“当前管理的主机”,这里“当前管理的主机”中有节点内容的原因正是由于之前我们在这三台节点配置过 agent。如果未来集群增加机器,可以在新主机中搜索添加,后期会自动将 agent 安装到选中的新节点。

    这里我们选择“当前管理的主机”中的所有节点,点击“继续”

    image-20201217233616651

  3. 集群安装
    选择 CDH 版本为 CDH 6.3.2,点击“继续”,如下图:
    image20201217233747737.png
    点击“继续”之后,Cloudera Manager 主节点会将下载好的 CDH 分发到各个 Agent 节点,这时可以在三个 Agent 节点上看到路径/opt/cloudera/parcel-cache 目录中有 Cloudera Manager 主节点传过来的 CDH 安装包,同时在完成传输之后,每个 Agent 节点还会将 CDH 安装包解压到/opt/cloudera/parcels 路径下,此时,界面显示如下:

    image20201217234309734.png

    点击“继续”,显示正在检查主机健康状况,稍等片刻,会显示检查结果:

    image20201217125853255.png

    点击检查结果,查看检查主机出现的问题:

    image20201217130249258.png

    这里建议 swappiness=10 的时候表示最大限度使用物理内存。由于透明超大页面已知会导致意外的节点重新启动,可以在每台节点中执行如下命令,在检查主机正确性后面点击“重新运行”即可解决。命令如下:

    [root@cm-s1 ~]# for i in `seq 0 3`;do ssh root@192.168.0.5$i sed -i '\$a\vm.swappiness\ =\ 10' /etc/sysctl.conf;done
    [root@cm-s1 ~]# for i in `seq 0 3`;do ssh root@192.168.0.5$i sysctl -p;done
    # 在每个节点执行如下命令,并写入到/etc/rc.local中,注意软链接源文件/etc/rc.d/rc.local文件的可执行性
    echo never > /sys/kernel/mm/transparent_hugepage/defrag
    echo never > /sys/kernel/mm/transparent_hugepage/enabled
    

    image20201217132355440.png

    最后,点击“继续”,进入“集群设置”

  4. 集群设置
    在进入的集群设置界面中,点击“自定义服务”,选择“HDFS”、“YARN”、“Zookeeper”进行安装,注意:这里提示还会安装 Cloudera Management Service ,用于后期的监控、报告、事件和警报。
    image20201217133627544.png

    以上点击“继续”,进入“角色分配”页面,显示的是 Cloudera Manager 自动划分的集群分配,当然这里也可以自己分配节点。如下图所示:

    image20201217140939301.png
    继续点击“继续”,进入“审核更改页面”,在这里可以手动修改一些配置文件,取默认配置。

    继续点击“继续”,进入执行集群命令,启动各个组件页面,当所有组件启动完成之后,如下图示:

    image20201217144253033.png
    点击“继续”,完成集群设置。
    image20201217144359595.png

  5. CDH 主页面

    image20201217150105773.png


标题:CDH 6.3.2 部署
作者:散宜生
地址:https://17kblog.com/articles/2020/12/18/1608271781807.html