序言

本文集群搭建为三台机器,cdh版本为5.13.0,以下是安装过程中所用到的软件包等,可以自行下载。
一、前期准备
1.安装环境

  • 系统:centos7.5/最小安装版本/64位
  • 内存:主节点 --> 32G/从节点 --> 16G
  • 三台机器组成小集群(物理机)
    • cdh01
    • cdh02
    • cdh03
  • 需要下载的安装包
    • cloudera-manager-centos7-cm5.13.0_x86_64.tar.gz
    • CDH相关(注意下载相应系统的安装包)
      • CDH-5.13.0-1.cdh5.13.0.p0.29-el7.parcel
      • CDH-5.13.0-1.cdh5.13.0.p0.29-el7.parcel.sha1
      • manifest.json(manifest.json需要网页上打开后复制全部内容,在桌面新建txt文件,粘贴复制的内容后修改后缀名为.json)
    • jdk-8u144-linux-x64.tar.gz
    • mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar
    • mysql-connector-java-5.1.47.tar

二、环境配置
注意:所有操作都需要使用root权限操作

  • 修改hosts(三台)

    • vi /etc/hosts
    • 10.81.22.184 cdh01
      10.81.22.188 cdh02
      10.81.22.189 cdh03
    • 注:修改 /etc/hosts,此处一定要注意,不要按照网上有的说明,将127.0.0.1那一行里的localhost.localdomain改成主机名称,在安装Cloudera Agent的时候会识别不出名称和IP
  • 修改主机名
    • vim /etc/sysconfig/network
    • NETWORKING=yes
      HOSTNAME=cdh01
  • 修改selinux
    • vi /etc/selinux/config
    • 将selinux的值修改成disabled
      SELINUX=disabled
  • 关闭防火墙
    • systemctl stop firewalld
    • systemctl disable firewalld
    • systemctl status firewalld
  • 三台机器设置免密登陆,打通ssh
    • 思路:第一台机器配置authorized_keys,scp到第二台机器,将第二台机器的公钥添加到authorized_keys,然后将其scp到第三台,以此类推,直到配置到最后一台机器,将最后一台机器的authorized_keys scp到所有节点,如下(见1)
  • 安装ntp时间同步
    • 集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题。具体思路如下:
      主节点作为NTP服务器与外界对时中心同步时间,随后对所有数据节点节点提供时间同步服务。
      所有数据节点节点以主节点为基础同步时间所有节点安装相关组件执行以下命令:
    • yum install -y ntp #安装ntp服务(所有节点)
    • vim /etc/ntp.conf
      • 主节点
      • driftfile /var/lib/ntp/drift
        
        restrict 127.0.0.1
        restrict -6 ::1
        # 允许内网其他机器同步时间
        restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap # 中国这边最活跃的时间服务器 : http://www.pool.ntp.org/zone/cn server 210.72.145.44 perfer # 中国国家受时中心
        server 202.112.10.36 # 1.cn.pool.ntp.org
        server 59.124.196.83 # 0.asia.pool.ntp.org # 允许上层时间服务器主动修改本机时间
        restrict 210.72.145.44 nomodify notrap noquery
        restrict 202.112.10.36 nomodify notrap noquery
        restrict 59.124.196.83 nomodify notrap noquery # 外部时间服务器不可用时,以本地时间作为时间服务 server 127.127.1.0 # local clock
        fudge 127.127.1.0 stratum 10 includefile /etc/ntp/crypto/pw
        keys /etc/ntp/keys #只保留以上内容其他全部注释掉
      • 从节点
      • driftfile /var/lib/ntp/drift
        
        restrict default kod nomodify notrap nopeer noquery
        restrict -6 default kod nomodify notrap nopeer noquery restrict 127.0.0.1
        restrict -6 ::1 server cdh01 #改成自己的主节点名称
        restrict 192.168.1.135 nomodify notrap noquery
        server 127.127.1.0 # local clock
        fudge 127.127.1.0 stratum 10 includefile /etc/ntp/crypto/pw keys /etc/ntp/keys #只保留以上内容其他全部注释掉
  • 设置开机启动ntp服务

    • 关闭chronyd服务

      • systemctl disable chronyd.service
    • 开机自启动
      • systemctl enable ntpd.service
  • 开启ntp服务
    • systemctl start ntpd 
  • 查看ntp运行状态
    • ntpstat
    • 出现即为同步成功
  • 安裝jdk(所有节点)
    • 卸载Centos 系统自带的JDK并重新安装oracle的JDK(所有节点)
    • CentOS,自带OpenJdk,不过运行CDH5需要使用Oracle的Jdk,需要Java 7的支持。
      • 卸载自带的OpenJDK的使用以下代码查询的Java相关的包 - rpm -qa | grep java
    • rpm -qa | grep jdk - yum -y remove xxjdk #删除所有的jdk
    • yum remove -y *jdk*
    • yum remove -y *java*
    • JDK 可以去官网下载 下载地址:
      http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
      (本次使用的是jdk-8u191-linux-x64.rpm)
    • rpm -ivh jdk-8u202-linux-x64.rpm
    • 由于是RPM包并不需要我们来配置环境变量,我们只需要配置一个全局的JAVA_HOME变量即可,执行命令:
      • echo "JAVA_HOME=/usr/java/latest/" >> /etc/environment
  • 主节点安装mysql
    • 卸载mariadb

      • 此处需要注意的是centos 7 默认安装的是mariadb,如果不卸载直接安装的话会报错,报错信息mariadb-libs is obsoleted by mysql-community-libs-5.7.21-1.el7.x86_64
      • 注意:必须先做一下步骤,要先删除mariadb
    • rpm -qa | grep mariadb #查看安装信息
    • rpm --nodeps -e 安装信息(mariadb-libs-5.5.56-2.el7.x86_64) #根据查找到的软件包信息卸载
      • rpm --nodeps -e mariadb-libs-5.5.56-2.el7.x86_64
    • yum -y remove + 包名
      • yum -y remove mariadb-libs-5.5.56-2.el7.x86_64
  • 安装mysql
    • mysql安装包下载
      https://dev.mysql.com/downloads/file/?id=474679

      • 下载的安装包为:mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar
    • 安顺序执行
      • tar -xf mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar

        • 安装rpm -ivh mysql-community-server-5.7.21-1.el7.x86_64.rpm的时候报错如下:

          • 这个报错的意思是需要安装net-tools包和perl包:可以先yum安装一下。
          • yum install net-tools #安装net-tools包
          • yum install perl #安装perl包
        • 注:必须按以下顺序安装以下rpm包 - rpm -ivh mysql-community-common-5.7.21-1.el7.x86_64.rpm
        • rpm -ivh mysql-community-libs-5.7.21-1.el7.x86_64.rpm
        • rpm -ivh mysql-community-client-5.7.21-1.el7.x86_64.rpm
        • rpm -ivh mysql-community-server-5.7.21-1.el7.x86_64.rpm
        • rpm -ivh mysql-community-libs-compat-5.7.21-1.el7.x86_64.rpm(compat解决hue数据库连接不上)
        • rpm -ivh mysql-community-devel-5.7.21-1.el7.x86_64.rpm #安装mysqlclient需要用到
      • 启动mysql 
        • systemctl start mysqld
        • systemctl enable mysqld
        • systemctl daemon-reload
      • 查看root初始密码
        • cat /var/log/mysqld.log |grep password
      • 登录mysql数据库

        • mysql -uroot –p密码 # 密码为上一步看到的
        • 首先,修改validate_password_policy参数的值
          • set global validate_password_policy=0;
        • 这样,判断密码的标准就基于密码的长度了。这个由validate_password_length参数来决定。validate_password_length参数默认为8,可以设置为其它值,最小4位
          • set global validate_password_length=3;
          • set global validate_password_special_char_count=0;
          • set global validate_password_mixed_case_count=0;
          • set global validate_password_number_count=0;
          • set password = password('123');
            • Query OK, 0 rows affected,1 warning (0.00 sec) --> 修改成功
          • 注:如果直接修改密码会报错
        • 授权用户root使用密码passwd从任意主机连接到mysql服务器

          • GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION;
          •  flush privileges;
          • 创建所需要的数据库及用户
            • 在mysql连接工具下执行(否则可能会报错)
              create database metastore default character set utf8;
              CREATE USER 'hive'@'%' IDENTIFIED BY 'hive';
              GRANT ALL PRIVILEGES ON metastore. * TO 'hive'@'%';
              create database hive default character set utf8;
              GRANT ALL PRIVILEGES ON hive. * TO 'hive'@'%';
              create database cm default character set utf8;
              CREATE USER 'cm'@'%' IDENTIFIED BY 'cm';
              GRANT ALL PRIVILEGES ON cm.* TO 'cm'@'%';
              create database am default character set utf8;
              CREATE USER 'am'@'%' IDENTIFIED BY 'am';
              GRANT ALL PRIVILEGES ON am. * TO 'am'@'%';
              create database rm default character set utf8;
              CREATE USER 'rm'@'%' IDENTIFIED BY 'rm';
              GRANT ALL PRIVILEGES ON rm. * TO 'rm'@'%';
              create database hue default character set utf8;
              CREATE USER 'hue'@'%' IDENTIFIED BY 'hue';
              GRANT ALL PRIVILEGES ON hue. * TO 'hue'@'%';
              create database oozie default character set utf8;
              CREATE USER 'oozie'@'%' IDENTIFIED BY 'oozie';
              GRANT ALL PRIVILEGES ON oozie. * TO 'oozie'@'%';
              flush privileges;
        • 授权root用户在主节点拥有所有数据库的访问权限
          • grant all privileges on *.* to 'root'@'cdh01' identified by '123' with grant option;
  • 安装cm
    • 下载cm5.13.0包
    • http://archive.cloudera.com/cm5/cm/5/
    • 将下载好的cloudera-manager-centos7-cm5.13.0_x86_64.tar.gz解压到主节点的/opt/,解压出来的文件夹为cloudera与cm-5.13.0
    • 为Cloudera Manager建立数据库,此处需要前边下载好的mysql-connector-java-5.1.47-bin.jar
      • cp /root/software/mysql-connector-java-5.1.47/mysql-connector-java-5.1.47-bin.jar /usr/java/
      • cp /root/software/mysql-connector-java-5.1.47/mysql-connector-java-5.1.47-bin.jar /opt/cm-5.13.0/share/cmf/lib/
    • 主节点执行
      • /opt/cm-5.13.0/share/cmf/schema/scm_prepare_database.sh mysql -uroot -p123 scm scm scm
    • 配置Agent
      • vim /opt/cm-5.13.0/etc/cloudera-scm-agent/config.ini

        • server_host=cdh01
    • 拷贝文件到其他子节点
      • scp -r /opt/cm-5.13.0/ root@hywx189:/opt/
      • scp -r /opt/cm-5.13.0/ root@hywx189:/opt/
    • 所有节点上创建用户
      •   

        useradd --system --home=/opt/cm-5.13.0/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
    • 准备parcels,将CDH相关文件拷贝到主节点/opt/cloudera/parcel-repo/
      • 相关文件

        • 注:需要将CDH-5.13.0-1.cdh5.13.0.p0.29-el7.parcel.sha1改成CDH-5.13.0-1.cdh5.13.0.p0.29-el7.parcel.sha,否则安装时会重新下载,很重要!!
        • mv CDH-5.13.0-1.cdh5.13.0.p0.29-el7.parcel.sha1 CDH-5.13.0-1.cdh5.13.0.p0.29-el7.parcel.sha
  • 启动
    •   

      #主节点
      /opt/cm-5.13.0/etc/init.d/cloudera-scm-server start #主节点及其他节点
      /opt/cm-5.13.0/etc/init.d/cloudera-scm-agent start
    • 启动需要点时间,可以查看数据库scm中的hosts表,如果里面出现节点信息表示server启动完成
  • 开始安装Hadoop集群
    • 启动成功后 浏览器访问:

      • http://主节点ip:7180 (用户名、密码:admin)
    • CM Manager && Agent 成功启动后,登录前端页面进行 CDH 安装配置。步骤如下:
    • 注意:此处需要勾选所有机器
    • 注:此处按照自己下载的版本进行安装即可
    • 第一个警告直接在所有节点上执行

      • echo 10 > /proc/sys/vm/swappiness

    • 第二个警告按照上面的说明,在所有节点上执行这两条命令

      • echo never >/sys/kernel/mm/transparent_hugepage/defrag >> /etc/rc.local

      • echo never > /sys/kernel/mm/transparent_hugepage/enabled>> /etc/rc.local

      • 同时同一命令添加到 /etc/rc.local 等初始化脚本中,以便在系统重启时予以设置。

    • 注:或可选择所有服务
    • 此处hive ,oozie会安装失败,失败信息如下。因为我们使用了MySQL作为hive元数据存储,需要将mysql驱动拷贝到hive和oozie目录下
    • 解决方法(需要在所有节点上执行)

      • cp /opt/cm-5.13.0/share/cmf/lib/mysql-connector-java-5.1.47-bin.jar /opt/cloudera/parcels/CDH-5.13.0-1.cdh5.13.0.p0.29/lib/hive/lib/

      • cp /opt/cm-5.13.0/share/cmf/lib/mysql-connector-java-5.1.47-bin.jar /var/lib/oozie/

  • 到此安装完成!

centos7.5搭建cdh5.13.0的更多相关文章

  1. Centos7.5搭建ELK-6.5.0日志分析平台

    Centos7.5搭建ELK-6.5.0日志分析平台 1. 简介 工作工程中,不论是开发还是运维,都会遇到各种各样的日志,主要包括系统日志.应用程序日志和安全日志,对于开发人员来说,查看日志,可以实时 ...

  2. CentOS7.5搭建Solr7.4.0集群服务

    一.Solr集群概念 solr单机版搭建参考: https://www.cnblogs.com/frankdeng/p/9615253.html 1.概念 SolrCloud(solr 云)是Solr ...

  3. Centos7安装搭建Bugzilla 5.0

    1.安装准备: Centos7保证网络连通,如果网络不能连通,可通过配置yum源使用代理服务. vim /etc/yum.conf # The proxy server - proxy server: ...

  4. CentOS7.5搭建Solr7.4.0单机服务

    一.Solr安装环境 1.官方参考文档 Solr教程参考指南:http://lucene.apache.org/solr/guide/7_4/solr-tutorial.html 2.Solr运行环境 ...

  5. 在CentOS7下搭建Hadoop2.9.0集群

    系统环境:CentOS 7 JDK版本:jdk-8u191-linux-x64 MYSQL版本:5.7.26 Hadoop版本:2.9.0 Hive版本:2.3.4 Host Name Ip User ...

  6. cloudera cdh5.13.0 vmware 快速安装

    1. 从官网上载VMWARE VM快速安装包 https://www.cloudera.com/downloads/quickstart_vms/5-12.html 2. 下载后的安装包,解压之后得到 ...

  7. apache-kylin-2.5.2-bin-cdh57与cdh-5.13.0集群整合运用

    1.下载kylin最新版apache-kylin-2.5.2-bin-cdh57: 2.解压配置环境变量: export BASE_PATH="/opt/cloudera/parcels/C ...

  8. CentOS7安装CDH 第五章:CDH的安装和部署-CDH5.7.0

    相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...

  9. centos7+cdh5.10.0搭建

    一.选择环境: 1.说明 本次部署使用台机器,3台用于搭建CDH集群,1台为内部源.内部源机器是可以连接公网的,可以提前部署好内部源,本次部署涉及到的服务器的hosts配置如下: 192.168.10 ...

随机推荐

  1. PHP提交订单,信息的传递

    今天被之前的同事问到订单这一块(他用的是Laraver)..."多个商品在同一个订单里,怎么将相同的商品放进一个分组"... 当时我和他的反应都是,array_push, arra ...

  2. 1.Sed | Awk | Grep | Find

    1.Sed | Awk | Grep | Find 可以参考的文档链接 CentOS7 查看 当前机器 已经启动的端口的Shell命令: netstat -lntup | awk -F' ' {'pr ...

  3. php解决高并发问题

    我们通常衡量一个Web系统的吞吐率的指标是QPS(Query Per Second,每秒处理请求数),解决每秒数万次的高并发场景,这个指标非常关键.举个例子,我们假设处理一个业务请求平均响应时间为10 ...

  4. keepliave

    keepalived的主要功能 1. healthcheck:           检查后端节点是否正常工作           如果发现后端节点异常,就将该异常节点从调度规则中删除:        ...

  5. Linux 添加中文字体库,解决Java 生成中文水印不显示问题

    本机 Windows 环境测试以下代码生成中文水印完全没问题,但是发布到Linux下不显示,一开始以为是报错了没打印出来,搜索发现直接提示中文乱码的或者不显示的,才明白原来是字体库原因,于是开始解决这 ...

  6. Numpy一文全了解

    1,Numpy是一个python包,它是一个由多维数组对象和处理数组的例程集合组成的库. 2.   Numpy的操作:(1)数组的算数和逻辑运算 :(2)傅里叶变换和用于图形操作  (3)与线性代数有 ...

  7. 【系统监控】性能监测 vmstat,mpstat,iostat

    一.系统整体性能监测工具:uptime [root@WebServer ~]# uptime (同w命令输出的第一行信息) 09:40:52 up 5 days, 57 min, 1 user, lo ...

  8. 第二篇 Flask 中的 Render Redirect HttpResponse

    第二篇 Flask 中的 Render Redirect HttpResponse   1.Flask中的HTTPResponse 在Flask 中的HttpResponse 在我们看来其实就是直接返 ...

  9. Swift - 修改导航栏“返回”按钮文字和图标 /手势冲突解决/响应范围

    iOS11之前 修改导航栏“返回”按钮文字,图标 https://blog.csdn.net/u012701023/article/details/50264265 iOS11 完美解决导航栏按钮偏移 ...

  10. .Net代码控制PrivateBinPath和ConfigurationFile的位置

    .Net的WinForm程序有的时候让人很烦的是,在执行目录下总是一大堆的DLL,配置文件,最少则是个以下,多的时候怕有四五十个吧……,自己程序中的类库,第三方的类库……加载一起让人感觉乱糟糟的,非常 ...