CDH6.x安装教程(附带整合kerberos)

本文详细介绍了如何安装 Cloudera Distribution Including Apache Hadoop (CDH) 6.3.2 版本。从系统环境配置到安装 CM 服务、数据库、大数据服务组件等步骤均有详尽指导。

CDH从6.3.3版开始不再免费,6.3.2及以下版本可免费使用,大家如有需要可联系我索取安装包。

安装步骤总览

1、配置服务器系统基础环境

2、配置本地仓库

3、安装数据库

4、安装CM

5、添加大数据服务

CDH基本架构简述

 CDH主要包括两大组件cm server和cm agent,其中cm server作为CDH的服务管理端通常安装在集群中的一个节点上,cm agent需要安装在所有节点上,所有的cm agent会与cm server通信,向cm server上报数据,并且也会接收来自cm server的指令执行一些任务,说白了cm server就像是司令部,cm agent就是底下的士兵,一切行动要听从cm server的指挥。下面的内容我们暂且将安装cm server的节点称作主节点,其他节点称为子节点,注意并不是只在子节点安装cm agent,主节点也要安装cm agent,因为主节点这个机器也需要cm agent去监控起来。

一、所有节点安装前的系统准备设置

  1. 设置HOST
    vi /etc/hosts

  2. 关闭防火墙
    sudo systemctl disable firewalld
    sudo systemctl stop firewalld

  3. 设置SELinux 
    vi /etc/selinux/config

    将SELINUX=enforcing 改为 SELINUX=permissive,然后重启服务器,或者执行下面命令:

    setenforce 0

  4. 开启NTP服务(NTP服务是可选的,其他的时间同步方式或者非生产环境手动同步时间亦可)
    # 安装NTP服务
    yum install ntp
    
    # 编辑/etc/ntp.conf 添加NTP时间同步服务地址(请填写实际的时间服务器host),如下所示:
    server 0.pool.ntp.org
    server 1.pool.ntp.org
    server 2.pool.ntp.org
    
    # 开启NTP服务
    systemctl start ntpd
    
    # 设置自启动
    systemctl enable ntpd
    
    # 同步系统时间
    ntpdate -u <ntp服务器地址>
    
    # 查看同步状态,如下所示为正确的同步状态
    ntpdc -np
    
    
         remote           local      st poll reach  delay   offset    disp
    =======================================================================
    =10.2.1.114      10.5.3.178       4   64    1 0.00203  0.000115 1.39194
    =10.5.1.114      10.5.3.178       4   64    1 0.00032  0.000037 1.39194

二、安装Cloudera Manager (CM)

  1. 在主节点(代指安装cm server的节点)配置本地yum仓库
    # 主节点安装httpd,提供yum仓库web服务,子节点可以通过访问这个web服务连接到主节点的yum源
    yum install httpd -y 
    
    # 主节点开启httpd
    systemctl start httpd
    
    # 主节点创建httpd文档目录,CDH安装包资源会放到这个目录被所有节点访问到
    sudo mkdir -p /var/www/html/cloudera-repos/cm6
    
    # 主节点下载cm6本地yum仓库压缩包,注意:现在下载CDH安装包需要账户认证,没有认证的可以到我博客资源里下载
    wget https://[username]:[password]@archive.cloudera.com/p/cm6/6.3.1/repo-as-tarball/cm6.3.1-redhat7.tar.gz
    
    # 主节点解压本地yum仓库压缩包到刚才创建的httpd文档目录
    tar xvfz cm6.3.1-redhat7.tar.gz -C /var/www/html/cloudera-repos/cm6 --strip-components=1
    
    # 主节点httpd文档目录赋权
    sudo chmod -R ugo+rX /var/www/html/cloudera-repos/cm6
    
    # 在任意子节点验证httpd是否正常使用,尝试下载yum源中的一个RPM-GPG-KEY-cloudera文件,下载成功说明我们的httpd服务正常,并且yum源可以对外访问
    wget http://<主节点IP>/cloudera-repos/cm6/RPM-GPG-KEY-cloudera
    
    
    # 所有节点下载cloudera-manager.repo,注意:现在下载需要账户认证,没有认证的可以到我博客资源里下载
    wget https://[username]:[password]@archive.cloudera.com/p/cm6/6.3.1/redhat7/yum/cloudera-manager.repo
    
    # 所有节点将cloudera-manager.repo放置到/etc/yum.repos.d/目录,并修改下面两项内容后保存退出
    baseurl=http://<主节点IP>/cloudera-repos/cm6
    gpgkey=http://<主节点IP>/cloudera-repos/cm6/RPM-GPG-KEY-cloudera
    
    # 所有节点导入GPG key
    sudo rpm --import http://<主节点IP>/cloudera-repos/cm6/RPM-GPG-KEY-cloudera

  2. 在所有节点安装JDK
    # 一般1.8的jdk就行,我使用的CentOS-7-x86_64-DVD-2009.iso镜像yum源
    yum install java-1.8.0-openjdk-devel -y
  3. 安装CM服务
    # 在主节点安装cloudera agent和cloudera server
    sudo yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server -y
    # 在其他子节点安装cloudera agent
    sudo yum install cloudera-manager-daemons cloudera-manager-agent -y

    如果安装过程提示缺少libmysqlclient.so.18依赖则可以先执行如下命令安装:

    sudo rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm

    这种情况一般是卸载mysql相关依赖时导致的。

  4. 安装数据库(最好将数据库安装在主节点)
    # 主节点先检查系统是否自带mysql,如果有需要卸载(最好用yum remove卸载)
    rpm -qa |grep mysql
    rpm -qa |grep MySQL
    rpm -qa |grep mariadb
    
    # 主节点安装mysql
    rpm -ivh mysql-community-common-5.7.32-1.el7.x86_64.rpm
    rpm -ivh mysql-community-libs-5.7.32-1.el7.x86_64.rpm
    rpm -ivh mysql-community-client-5.7.32-1.el7.x86_64.rpm
    rpm -ivh mysql-community-server-5.7.32-1.el7.x86_64.rpm
    
    # 如果安装server时候报缺少net-tools的错,则需要先安装下net-tools
    yum install net-tools -y
    # 如果安装server时候报缺少libaio.so.1,需要先安装libaio
    yum install libaio -y
    # 如果缺少libmysqlclient.so.18,可以执行下面2条命令
    $ wget http://www.percona.com/redir/downloads/Percona-XtraDB-Cluster/5.5.37-25.10/RPM/rhel6/x86_64/Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm
    $ rpm -ivh Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm 
    
    # 主节点查看mysql服务状态,开启后的状态如下所示
    systemctl status mysqld
    ● mysqld.service - MySQL Server
       Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
       Active: inactive (dead)
         Docs: man:mysqld(8)
               http://dev.mysql.com/doc/refman/en/using-systemd.html
    
    # 主节点启动mysql
    systemctl start mysqld
    
    # 开启后查看随机密码
    cat /var/log/mysqld.log | grep 'password'
    
    # 主节点登录mysql测试能否正常使用
    mysql -uroot -p随机密码
    
    # 修改密码
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';

  5. 在所有节点安装数据库(mysql)驱动
    # 所有节点下载mysql驱动(驱动版本要注意兼容你的mysql)
    wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
    
    # 解压
    tar zxvf mysql-connector-java-5.1.46.tar.gz
    
    # 创建数据库驱动存放路径
    mkdir -p /usr/share/java/
    
    # 将驱动包解压目录下的驱动jar移动到上面的路径下
    cd mysql-connector-java-5.1.46
    mv mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar

  6. 创建大数据服务组件用到的数据库(下面创建了一些常用的)
    # 登录mysql
    mysql -uroot -p
    # 登录后执行下面的sql
    create database amon default character set utf8 default collate utf8_general_ci;
    create database rman default character set utf8 default collate utf8_general_ci;
    create database hue default character set utf8 default collate utf8_general_ci;
    create database metastore default character set utf8 default collate utf8_general_ci;
    create database sentry default character set utf8 default collate utf8_general_ci;
    create database nav default character set utf8 default collate utf8_general_ci;
    create database oozie default character set utf8 default collate utf8_general_ci;
    grant all on *.* to 'root'@'%' identified by 'Abcd!234';
    flush privileges;

  7. 在主节点初始化CM数据库
    # 初始化cm数据库(密码自己设置)
    /opt/cloudera/cm/schema/scm_prepare_database.sh mysql -uroot -p12345 scm scm 12345
    
    # 脚本参数解释
    scm_prepare_database.sh 【数据库类型】 -u【数据库登录用户】 -p【数据库登录密码】 【CDH要创建的数据库名称】 【CDH数据库用户名】 【CDH数据库用户密码】

  8. 安装parcels
    1. 下载parcels,下载地址:https://archive.cloudera.com/cdh6/6.3.2/parcels/ (这些资源已经失效了,可以去我博客资源里下载)
    2. 下载标黄的四项
    3. 修改.sha文件名

      mv CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha

      将这四个文件移动到/opt/cloudera/parcel-repo下

  9. 在主节点开启cm server
    # 开启CM server
    systemctl start cloudera-scm-server

    查看启动日志,当看到有jetty服务启动成功的提示后,说明cm server已经启动完成(启动时间较长),另外启动日志里有些连接cloudera仓库失败的错误可以忽略

    sudo tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

  10. 在所有节点开启cm agent

    #修改cm agent配置,指定cm server的连接地址
    sudo vi /etc/cloudera-scm-agent/config.ini
    修改server_host=主节点IP
    
    #开启所有节点cm agent
    sudo systemctl start cloudera-scm-agent

  11. 打开CM WEB UI,http://<主节点IP>:7180
    1. 开始安装集群
      1. 进入欢迎页
      2. 接受许可
      3. 选择安装版本(图例为6.3.3版,没有免费版可选)
      4. 进入集群安装
      5. 填写集群名称(自定义)
      6. 选择主机(在该页不要填写IP去搜索节点,应点击’当前管理的主机‘)

      7. 选择当前管理的主机(例子中只用了一个节点部署,所以只显示一个受管理主机)
      8. 选择parcel包(画红线部分是检测到的本地parcel包,如果不显示说明没被检测到,可尝试等待刷新页面或回退到欢迎页面重启cm server)
      9. 开始向所有节点分发部署安装包
      10. 进行安装前环境检查(可以根据检查结果修正环境配置,修正后重新检查并继续)
      11. 如果有检查项没通过,需要先修正配置后再次执行检查,直到所有检查项均正常,如果有些配置的的修正涉及到重启服务器等需要停止cm server服务的操作,要先回退到欢迎页面并停止cm server服务,重启完成继续从第一步进行(非生产环境下的检查项异常大多可以忽视)
      12. 选择需要安装的大数据服务,这里选择自定义服务,这样可以按需安装
      13. 大数据服务角色分配(注意要做好角色规划,非生产环境按照默认即可)
      14. 填写数据库信息(有些大数据服务需要数据库支持,例如hive、oozie等,所以需填写数据库信息)

      15. 修改大数据服务相关数据目录路径,例如hdfs、kafka数据目录等
      16. 开始安装服务
      17. 服务安装完成
  12. 安装kerberos(一般人不需要安这个玩意儿,到此cdh安装就结束了)
    # 安装kerberos,注意要安装1.15.1-50.el7版本左右的,不能太低,不然CDH开启kerberos报错
    # kerberos 1.15.1-50.el7版本在CentOS-7-x86_64-DVD-2009.iso镜像的yum源里就有
    # 选择一个节点安装kerberos服务端
    yum -y install krb5-server openldap-clients
    
    # 所有节点安装客户端及相关库
    yum install -y krb5-workstation krb5-libs
    
    # 所有节点修改krb5.conf
    sudo vi /etc/krb5.conf
    
    # krb5.conf示例内容如下:
    # Configuration snippets may be placed in this directory as well
    includedir /etc/krb5.conf.d/
    [logging]
     default = FILE:/var/log/krb5libs.log
     kdc = FILE:/var/log/krb5kdc.log
     admin_server = FILE:/var/log/kadmind.log
    [libdefaults]
     dns_lookup_realm = false
     ticket_lifetime = 24h
     renew_lifetime = 7d
     forwardable = true
     rdns = false
     pkinit_anchors = FILE:/etc/pki/tls/certs/ca-bundle.crt
     default_realm = kunlun.test
    # default_ccache_name = KEYRING:persistent:%{uid}
    [realms]
     kunlun.test = {
      kdc = bjzj1-vbig-tmp02
      admin_server = bjzj1-vbig-tmp02
     }
    
    [domain_realm]
     .bjzj1-vbig-tmp02 = kunlun.test
     bjzj1-vbig-tmp02 = kunlun.test
    
    
    # kerberos服务节点修改kdc.conf
    sudo vi /var/kerberos/krb5kdc/kdc.conf
    
    # kdc.conf示例内容如下:
    [kdcdefaults]
     kdc_ports = 88
     kdc_tcp_ports = 88
    [realms]
     kunlun.test = {
      #master_key_type = aes256-cts
      max_renewable_life = 7d 0h 0m 0s
      default_principal_flags = +renewable
      acl_file = /var/kerberos/krb5kdc/kadm5.acl
      dict_file = /usr/share/dict/words
      admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
      supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal camellia256-cts:normal camellia128-cts:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
     }
      max_life = 24h
    
    # kerberos服务节点修改kadm5.acl
    sudo vi /var/kerberos/krb5kdc/kadm5.acl
    
    # kadm5.acl示例内容如下:
    */admin@kunlun.test     *
    
    #创建数据库
    kdb5_util create -r kunlun.test -s
    
    # 开启kdc、kadmin服务
    sudo systemctl start krb5kdc
    sudo systemctl start kadmin
    systemctl enable krb5kdc 
    systemctl enable kadmin
    
    # 创建管理员账户,用于CDH开启kerberos时自动创建principal
    kadmin.local:
                  addprinc admin/admin
    # 记得创建完后测试下该用户

  13. 为CDH开启kerberos

----------------------------------------------------------------------------------------------------------------------

看到这里点个赞吧,如遇安装问题可随时私信我~

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

头顶榴莲树

你的鼓励是我最大的动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值