zoukankan      html  css  js  c++  java
  • CentOS7.7(2019年8月发布)搭建完全分布CDH6.3.2(2019年11月发布) 操作记录

    CentOS7.7(2019年8月发布)搭建完全分布CDH6.3.2(2019年11月发布) 操作记录

    18 11月, 2019 CDH 0 Comments11

    一、前言

    1.1 CDH简介

    • 官网 https://www.cloudera.com/
    • CDH,全称Cloudera's Distribution, including Apache Hadoop。是Hadoop众多分支中对应中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,提供了Hadoop的核心(可扩展存储、分布式计算),最为重要的是提供基于web的用户界面。
    • CDH的优点:版本划分清晰,更新速度快,支持Kerberos安全认证,支持多种安装方式(如Yum、rpm等)。
    • CDH分为Cloudera Manager管理平台和CDH parcel(parcel包含各种组件的安装包)。这里采用CM6.3.1(2019-10-11)和CDH6.3.2(2019-11-12更新)。

    1.2 安装前的准备

    1.2.1 下载

    • Cloudera Manger下载

    下载地址为 https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPMS/x86_64/

     

    • CDH下载

    下载地址为 https://archive.cloudera.com/cdh6/6.3.2/parcels/

     

    二、安装

    2.1 环境准备

    2.1.1 安装机器

    • 本例中
      • 采用VMWare Workstation Pro 15.5.0 build-14665864作为虚拟化载体
      • 采用CentOS-7-x86_64-DVD-1908.iso作为系统镜像
      • 采用一个master三个slave的四节点集群架构

    操作系统

    cpu

    内存

    硬盘

    ip

    主机名

    Centos7

    2核

    2G

    100G

    192.168.222.50

    cdh00

    Centos7

    4核

    6G

    100G

    192.168.222.51

    cdh01

    Centos7

    4核

    6G

    100G

    192.168.222.52

    cdh02

    Centos7

    4核

    6G

    100G

    192.168.222.53

    cdh03

     

    注:具体配置请根据自己的搭建环境进行调整

    • 安装完成后使用XShell或CRT连接所有机器

     

    2.1.2 设置主机名映射(所有节点)

    查看:

    • 在所有机器查看/etc/hosts文件内容如下图所示

    cat /etc/hostsCOPY

     

    操作:

    • 在所有机器执行如下命令,添加集群映射

    echo -e "192.168.222.50 cdh00 192.168.222.51 cdh01 192.168.222.52 cdh02 192.168.222.53 cdh03" >> /etc/hostsCOPY

    验证:

    • 在所有机器查看/etc/hosts文件内容如下图所示

    cat /etc/hostsCOPY

     

    2.1.3 关闭并禁用防火墙(所有节点)

    查看:

    • 查看防火墙服务运行状态

    systemctl status firewalldCOPY

     

    操作:

    • 关闭防火墙

    systemctl stop firewalldCOPY

    • 禁用防火墙开机自启

    systemctl disable firewalldCOPY

     

    验证:

    • 查看防火墙状态为关闭状态

    systemctl status firewalldCOPY

     

    2.1.4 关闭SELINUX(所有节点)

    查看:

    • 查看SELinux服务的运行状态

    getenforceCOPY

     

    操作:

    • 临时关闭

    setenforce 0COPY

    • 永久关闭

    sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/configCOPY

    验证:

    cat /etc/selinux/configCOPY

     

    2.1.5 设置SSH免密登陆(所有节点)

    操作:

    • 生成密钥:

    ssh-keygen -t rsaCOPY

     

    • 分发密钥:
    • ssh-copy-id cdh00
    • yes
    • 密码
    • ssh-copy-id cdh01
    • yes
    • 密码

    ...COPY

     

    验证:

    • 在任意机器上对集群其他节点进行进行ssh登陆
    • 不需要使用密码则为配置成功

     

    2.1.6 禁用透明大页(所有节点)

    查看:

    • 查看透明大页的设置和启动状态
    • cat /sys/kernel/mm/transparent_hugepage/defrag

    cat /sys/kernel/mm/transparent_hugepage/enabledCOPY

    操作:

    • 临时关闭
    • echo never > /sys/kernel/mm/transparent_hugepage/defrag

    echo never > /sys/kernel/mm/transparent_hugepage/enabledCOPY

    • 永久关闭
      • 将临时关闭命令添加到/etc/rc.d/rc.local文件中,并赋予执行权限
      • echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.d/rc.local
      • echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.d/rc.local

    chmod +x /etc/rc.d/rc.localCOPY

    验证:

    cat /etc/rc.d/rc.localCOPY

    2.1.8 修改Linux swappiness参数(所有节点)

    • 为了避免服务器使用swap功能而影响服务器性能,一般都会把vm.swappiness修改为0(cloudera建议10以下)
    • 查看
    • cd /usr/lib/tuned

    grep "vm.swappiness" * -RCOPY

    • 操作

    sed -i s/"vm.swappiness = 30"/"vm.swappiness = 10"/g  /usr/lib/tuned/virtual-guest/tuned.confCOPY

    2.1.7 安装JDK(所有节点)

    注意:CDH的安装要求使用指定版本的oracle-j2sdk1.8

    • 查询是否有已经安装的jdk

    rpm -qa | grep javaCOPY

    • 如果之前安装过Java组件,先将其卸载

    yum remove java*COPY

    • 上传安装包oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm到/opt目录
    • cd /opt

    lsCOPY

     

    • 启动安装

    rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpmCOPY

    • 查找jdk安装路径

    find / -name javaCOPY

     

    • 配置环境变量

    echo 'export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera' >> /etc/profile

    echo 'export PATH=.:$JAVA_HOME/bin:$PATH' >> /etc/profile

    source /etc/profileCOPY

    • 验证

    java -versionCOPY

     

    2.1.8 上传JDBC依赖包(所有节点)

    • 创建目录

    mkdir -p /usr/share/javaCOPY

    • 将mysql-connector-java-8.0.12.jar重命名为mysql-connector-java.jar

    mv mysql-connector-java-8.0.12.jar mysql-connector-java.jarCOPY

    • 将mysql-connector-java.jar移动或复制到每个节点的/user/share/java
    • cp mysql-connector-java.jar /usr/share/java/
    • scp mysql-connector-java.jar  cdh01:/usr/share/java/

    ...COPY

    2.1.9 安装MySQL(master节点,本例中cdh00)

    • 查询出来已安装的mariadb

    rpm -qa|grep mariadbCOPY

    • 卸载mariadb,文件名为上述命令查询出来的文件

    rpm -e --nodeps 文件名COPY

    • 上传安装包到/opt目录

     

    • 解压安装包

    tar Jxvf mysql-8.0.18-linux-glibc2.12-x86_64.tar.xzCOPY

    • 重命名
    • mv mysql-8.0.18-linux-glibc2.12-x86_64 mysql

    mv mysql /usr/localCOPY

    • 创建数据目录

    mkdir /usr/local/mysql/dataCOPY

    • 创建并编辑my.cnf文件

    vim /etc/my.cnfCOPY

    • 填入以下内容
    • [client]
    • port=3306
    • socket=/tmp/mysql.sock
    • [mysqld]
    • port=3306
    • user=mysql
    • socket=/tmp/mysql.sock
    • basedir=/usr/local/mysql
    • datadir=/usr/local/mysql/data
    • log-error=/usr/local/mysql/error.log
    • pid-file = /usr/local/mysql/mysql.pid
    • transaction_isolation = READ-COMMITTED
    • character-set-server = utf8
    • collation-server = utf8_general_ci
    • lower_case_table_names = 1

    sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"COPY

    • 创建组

    groupadd mysqlCOPY

    • 创建用户

    useradd -g mysql mysqlCOPY

    • 修改目录权限
      • 将 /opt/mysql给予mysql用户

    chown -R mysql:mysql /usr/local/mysqlCOPY

    • 将/opt/mysql权限设置为755

    chmod -R 755 /usr/local/mysqlCOPY

    • 初始化mysql
    • cd /usr/local/mysql

    ./bin/mysqld --initialize --user=mysqlCOPY

    • 尝试启动mysql
    • cd /usr/local/mysql

    ./support-files/mysql.server startCOPY

     

    • 将mysql添加为服务

    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqlCOPY

    • 设置开机启动
    • cd /etc/init.d
    • chmod 755 /etc/init.d/mysql
    • chkconfig --add mysql
    • chkconfig --level 345 mysql on

    service mysql restartCOPY

    • 配置环境变量
    • echo 'export MYSQL_HOME=/usr/local/mysql' >> /etc/profile
    • echo 'export PATH=.:$MYSQL_HOME/bin:$PATH' >> /etc/profile

    source /etc/profileCOPY

    • 使用默认密码登陆mysql

     

    mysql -uroot -p ...COPY

    • 在MySQL8中第一次登陆需要重新设置root密码

    ALTER user 'root'@'localhost' IDENTIFIED BY '123456';

    • 开启远程访问
    • CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password  BY '123456';
    • GRANT ALL ON *.* TO 'root'@'%';

    FLUSH PRIVILEGES;COPY

    2.1.10 安装Apache Httpd服务(master节点,本例中cdh00)

    • 安装

    yum install httpd -yCOPY

    • 启动

    systemctl start httpdCOPY

    • 设置开机自启

    systemctl enable httpdCOPY

    2.1.11 配置Cloudera Manager安装包yum(master节点,本例中cdh00)

    • 创建目录

    mkdir -p /var/www/html/cloudera-repos/cm6COPY

    • 将下载好的rmp安装包上传到/var/www/html/cloudera-repos/cm6
    • 创建仓库
    • cd /var/www/html/cloudera-repos/cm6
    • yum install -y createrepo

    createrepo .COPY

    • 创建repo文件(所有节点)

    vim /etc/yum.repos.d/cloudera-manager.repoCOPY

    [cloudera-manager]

    name=Cloudera Manager 6.3.1

    baseurl=http://cdh00/cloudera-repos/cm6

    gpgkey=https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPM-GPG-KEY-cloudera

    gpgcheck=1

    enabled=1

    autorefresh=0

    type=rpm-mdCOPY

    • 清理并缓存(所有节点)
    • yum clean all

    yum makecacheCOPY

     

    2.1.12 安装 Cloudera Manager(master节点,本例中cdh00)

    • 执行安装

    yum install -y cloudera-manager-daemons cloudera-manager-agent cloudera-manager-serverCOPY

    • 安装完CM后/opt/ 下会出现cloudera目录

     

    • 上传CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel到/opt/cloudera/parcel-repo目录

     

    • 执行校验

    sha1sum CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel | awk '{ print $1 }' > CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.shaCOPY

    • 执行CM初始化脚本

    /opt/cloudera/cm/schema/scm_prepare_database.sh mysql cmserver root 123456COPY

    • 启动服务

    systemctl start cloudera-scm-server.serviceCOPY

    • 查看服务状态为启动

    systemctl status cloudera-scm-server.serviceCOPY

     

    2.2 其他服务安装

     

    • WELCOME 继续

     

    • Accept License 同意协议,继续

     

    • Select Edition 勾选免费版,继续

     

    • Welcome (Add Cluster - Installation) 创建集群

     

    • Cluster Basics 集群起名

     

    • Specify Hosts 添加节点

     

    • Select Repository 选择安装方式

     

    • JDK 安装选项

     

    • 提供 SSH 登录凭据。

     

    • Install Agents 安装agent

     

    • Install Parcels 安装数据包

     

    • Inspect Cluster 检查集群

     

  • 相关阅读:
    flex布局语法
    sqlserver判断text字段是否有数据
    z-index设置后导致遮罩层显示跳动问题
    C# UpdatePanel加载完毕回调JS
    json日期字符串格式化时间
    钉钉考勤机开发需要注意的一个坑
    python bs4 + requests4 简单爬虫
    温故而知新: 关于 js Form 方式提交的一些新认知
    window 环境 Composer 安装 thinkphp5
    百度地图 绘制东莞东城地图示例
  • 原文地址:https://www.cnblogs.com/yaoyangding/p/14647176.html
Copyright © 2011-2022 走看看