CDH大数据集群搭建

目录

    • 简介
    • 1. 软件环境
    • 2. 虚拟机配置
      • 2.1 设置网络IP(NAT模式)
      • 2.2 关闭防火墙
      • 2.3 永久修改设置主机名
      • 2.4 配置映射文件
      • 2.5 配置ssh免密登录
      • 2.6 安装jdk
      • 2.7 关闭selinux 安全模块
    • 3.环境准备
      • 3.1 私有网络软件仓库
        • 3.1.1 上传镜像
        • 3.1.2 挂载镜像
        • 3.1.3 安装http(如果已经安装可以省略,但是需要启动,一b般最小化安装不会安装此服务)
        • 3.1.4 安装createrepo(如果已经安装省略)
      • 3.2 挂载网络系统镜像
        • 3.2.1 创建网络系统镜像
        • 3.2.2 使用网络系统镜像
      • 3.3 创建CM和CDH网络软件镜像
        • 3.3.1 创建CM网络软件镜像
        • 3.3.2 创建CDH网络镜像
        • 3.3.3 子节点挂载网络镜像
        • 3.3.4 关闭防火墙(所有节点)
        • 3.3.5 增加开启自启项(所有节点)
        • 3.3.6 安装时钟服务ntp
          • 3.3.6.1 主节点安装时钟服务器
          • 3.3.6.2 子节点安装时钟服务并同步到主节点
      • 3.4 安装mysql
        • 3.4.1 安装
        • 3.4.2 修改root用户密码
      • 3.4.3 创建相关数据库
        • 3.4.3.1 Hive的元数据库
        • 3.4.3.2 Cloudera的元数据库
      • 3.4.4 开启远程访问
    • 4. CM安装
      • 4.1 配置CM的yum源
      • 4.2 安装CM
    • 5. CDH集群安装
      • 5.1 选择子节点
      • 5.2 CDH和CM的具体网络位置的选择
        • 5.2.1 选择CDH的位置
        • 5.2.2 选择CM的位置
      • 5.3 分发JDK
      • 5.4 Agent的安装和配置
    • 6. 安装flume
    • 7.安装hive
    • 8.安装kafka
    • 9.高可用配置
    • 10.配置调整
    • 11.添加子节点

简介

  • Apache Hadoop
    由Apache 公司开源的Hadoop版本。涵盖了最原生的Hadoop特性,所有的Hadoop发行版均基于该版本进行改进。
  • Cloudera CDH
    由Cloudera公司发行的Hadoop版本,全称(Cloudera’s Distribution Including Apache Hadoop)。该版本在基于原生Apache Hadoop版本进行改进,添加了补丁和自行开发的组件,更加稳定易用。目前国内使用最多的版本。
  • Hortonworks Ambari
    -Ambari是Hortonworks开源的Hadoop平台的管理软件,具备Hadoop组件的安装、管理、运维等基本功能,提供Web UI进行可视化的集群管理,简化了大数据平台的安装、使用难度。
    1、技术细节:hadoop版本、组件及功能选择
    2、易于部署:管理工具选择、版本更新、补丁添加等等
    3、易于维护:集群管理、容灾能力等
    4、成本:版本费用、计费模式和许可证
    5、企业应用集成的支持:选择的Hadoop应用和现有企业其他应用集成的支持。

1. 软件环境

名称 版本
Linux CentOS 7x64
CM 5.12.1
CDH 5.12.1
主机名 内存 CPU IP 角色
cdh01 5G 1核2线程 192.168.88.121 CM server,agent
cdh02 2G 1核2线程 192.168.88.122 agent
cdh03 2G 1核2线程 192.168.88.123 agent

2. 虚拟机配置

2.1 设置网络IP(NAT模式)

  • 修改配置文件:
    vi /etc/sysconfig/network-scripts/ifcfg-eno16777736
  • 注释#BOOTPROTO=“dhcp”
  • 添加
    IPADDR=192.168.88.121
    NETMASK=255.255.255.0
    GATEWAY=192.168.88.2
    DNS1=192.168.88.2
  • 其他节点同理
    TYPE="Ethernet"
    #BOOTPROTO="dhcp"
    DEFROUTE="yes"
    PEERDNS="yes"
    PEERROUTES="yes"
    IPV4_FAILURE_FATAL="no"
    IPV6INIT="yes"
    IPV6_AUTOCONF="yes"
    IPV6_DEFROUTE="yes"
    IPV6_PEERDNS="yes"
    IPV6_PEERROUTES="yes"
    IPV6_FAILURE_FATAL="no"
    NAME="eno16777736"
    UUID="858a5a33-4c55-49e9-8b59-1cfeb56d4b8b"
    DEVICE="eno16777736"
    ONBOOT="yes"
    IPADDR=192.168.88.121
    NETMASK=255.255.255.0
    GATEWAY=192.168.88.2
    DNS1=192.168.88.2
    

2.2 关闭防火墙

  • 关闭:
    systemctl stop firewalld
    systemctl disable firewalld
  • 查看:systemctl status firewalld

2.3 永久修改设置主机名

  • vi /etc/hostname 注意:需要重启生效->reboot

2.4 配置映射文件

  • vi /etc/hosts
     #127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
     #::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
     192.168.88.121 cdh01
     192.168.88.122 cdh02
     192.168.88.123 cdh03
    

2.5 配置ssh免密登录

  • 生成密钥对:ssh-keygen
  • ssh-copy-id cdh01
  • ssh-copy-id cdh02
  • ssh-copy-id cdh03

2.6 安装jdk

2.7 关闭selinux 安全模块

  • vim /etc/selinux/config (将SELINUX改为disabled)
  • 重启所有节点,检查是否关闭getenforce

3.环境准备

3.1 私有网络软件仓库

  • 在集群安装的过程中,要求每个节点都必须挂载光驱, 而对于每台节点都手动的去挂载光驱太麻烦,也不方便。这里使用每个节点都指向同一个私有网络镜像来解决这个问题。
    我们的集群采用的是全离线安装,也不可能逐个节点的安装,同样是也使用指向同一个私有的网络软件包来解决
    因此选择在cdh01上搭建一个私有的网络软件仓库,以下是搭建的全过程。

3.1.1 上传镜像

  • 搭建私有网络镜像使用的镜像文件最好就使用安装系统的镜像,这里是选择了CentOS7x64的镜像,将其上传到cdh01的/disk下(需新建/disk目录)

3.1.2 挂载镜像

  • mkdir -p /media/CentOS
  • 挂载镜像:mount -o loop /disk/CentOS-7-x86_64.iso /media/CentOS/
  • cd /etc/yum.repos.d
  • mv CentOS-Base.repo CentOS-Base.repo.bak
  • vi CentOS-Media.repo -> 将enable=0改成enable=1
  • 清除yum的缓存:
    yum clean metadata
    yum clean dbcache
  • 查看是否挂载成功:yum list | wc -l
    这是统计镜像中有多少个软件包的命令,CentOS7x64位的系统的软件包个数一般在3000以上

3.1.3 安装http(如果已经安装可以省略,但是需要启动,一b般最小化安装不会安装此服务)

  • 检查是否安装:service httpd status
  • 安装:yum install -y httpd
  • 启动http服务,并让其开机自启:
    service httpd start
    chkconfig httpd on
  • 由于http的默认端口为80,通过浏览器访问:
    192.168.88.121:80
  • 创建网络软件仓库目录:mkdir –p /var/www/html
    http默认将上面的目录作为软件仓库的目录

3.1.4 安装createrepo(如果已经安装省略)

  • 该软件使用来生成http镜像的网络识别路径的:
    yum install createrepo
  • 到此 私有的网络软件仓库搭建完成

3.2 挂载网络系统镜像

3.2.1 创建网络系统镜像

  • 将从镜像中挂载的文件拷贝到软件仓库的目录中
    cp -r /media/CentOS /var/www/html/
  • 删除目录repodata
    cd /var/www/html/CentOS
    rm -rf ./repodata
  • 生成新的软件路径目录repodata
    createrepo .
    CDH大数据集群搭建_第1张图片
  • 查看:192.168.88.121/CentOS
    到此网络镜像创建成功。

3.2.2 使用网络系统镜像

  • 解除对镜像文件的挂载:umount /media/CentOS
    在这里插入图片描述
    如上图 ,目录下无文件则说明解除挂载成功。
    如果出现下图说明还有进程在使用/medis/CentOS挂载点,那么此时可以借助fuser命令找出占用目录/medis/CentOS的所有进程,然后kill掉,此时就可以umount 了
    CDH大数据集群搭建_第2张图片

  • 修改文件CentOS-Media.repo让其指向刚才创建的网络镜像
    vi /etc/yum.repos.d/CentOS-Media.repo
    修改:baseurl=http://192.168.88.121/CentOS/
    scp -r /etc/yum.repos.d/CentOS-Media.repo cdh02:/etc/yum.repos.d/
    scp -r /etc/yum.repos.d/CentOS-Media.repo cdh03:/etc/yum.repos.d/

  • 清除yum的缓存, 并查看软件包个数(参考3.1.2)
    到此,cdh01网络系统镜像挂载完成,可以将镜像文件删除了。

3.3 创建CM和CDH网络软件镜像

3.3.1 创建CM网络软件镜像

  • CM下载地址(总地址)
    http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/
    http://archive.cloudera.com/cm5/cm/5/
    下载rmp仓库文件:
    http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/cloudera-manager.repo
    http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/RPM-GPG-KEY-cloudera
    http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.12.1/mirrors
    分开下载RMP:

    http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.12.1/RPMS/x86_64/cloudera-manager-agent-5.14.1-1.cm5141.p0.1.el7.x86_64.rpm
    http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.12.1/RPMS/x86_64/cloudera-manager-daemons-5.14.1-1.cm5141.p0.1.el7.x86_64.rpm
    http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.12.1/RPMS/x86_64/cloudera-manager-server-5.14.1-1.cm5141.p0.1.el7.x86_64.rpm
    http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.12.1/RPMS/x86_64/cloudera-manager-server-db-2-5.14.1-1.cm5141.p0.1.el7.x86_64.rpm
    http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.14.1/RPMS/x86_64/enterprise-debuginfo-5.14.1-1.cm5141.p0.1.el7.x86_64.rpm
    http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.12.1/RPMS/x86_64/oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm
    http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.12.1/RPMS/x86_64/jdk-6u31-linux-amd64.rpm
    
  • 通过xftp上传cm和CDH安装包到软件仓库目录中/var/www/html/(注意:相关的目录需要自己创建),目录结构如下
    CDH大数据集群搭建_第3张图片

3.3.2 创建CDH网络镜像

  • 下载地址:http://archive.cloudera.com/cdh5/parcels/5.12.1/
  • 通过xftp上传cdh安装压缩包到软件仓库目录中(注意:相关的目录需要自己创建,三个文件一个也不能少)
  • 不需要解压,到此cdh的网络软件镜像创建成功,也可以通过浏览器访问查看详情

3.3.3 子节点挂载网络镜像

  • 将主节点的 /etc/ yum.repos.d下的CentOS-Media.repo文件分发到各子节点的目录/etc/ yum.repos.d下:
    scp -r /etc/yum.repos.d/CentOS-Media.repo cdh02:/etc/yum.repos.d/
    scp -r /etc/yum.repos.d/CentOS-Media.repo cdh03:/etc/yum.repos.d/
  • 在所有子节点执行如下命令:
    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
  • 再清除yum的缓存,查看网络镜像软件包的个数(具体命令参考3.1.2)
  • 到此,子节点网络镜像挂载完成。

3.3.4 关闭防火墙(所有节点)

  • systemctl stop firewalld
    systemctl disable firewalld
    查看:systemctl status firewalld

3.3.5 增加开启自启项(所有节点)

  • vi /etc/rc.local
    添加
    echo 0 > /proc/sys/vm/swappiness
    echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
    echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
    swapoff -a

3.3.6 安装时钟服务ntp

  • 时钟服务器安装在主节点上,子节点的时钟服服务全部同步到主节点的时钟服务器上。
3.3.6.1 主节点安装时钟服务器
  • 安装时钟服务ntp: yum -y install ntp
  • 启动,并注册到开机自启:
    service ntpd start
    chkconfig ntpd on
  • 查看ntpd的状态:service ntpd status
  • 配置时钟服务器,vi /etc/ntp.conf
    1.注释放开:表明时钟同步的网段
    restrict 192.168.88.0 mask 255.255.255.0 nomodify notrap
    2.server 0…server 1…server 2…server 3…注释掉
    3.添加 表明服务器是跟自己同步
    server 127.127.1.0
    fudge 127.127.1.0 statum 10
  • 重启ntp服务service ntpd restart
3.3.6.2 子节点安装时钟服务并同步到主节点
  • ntp服务安装,参考3.4.61,主要的区别在于配置的修改上
  • 配置时钟服务器,vi /etc/ntp.conf
    1.注释放开:表明时钟同步的网段
    restrict 192.168.88.0 mask 255.255.255.0 nomodify notrap
    2.server 0…server 1…server 2…server 3…注释掉
    3.添加 server cdh01
  • 重启ntp服务service ntpd restart
  • 时钟会自动同步的(需要一定的时间)。查看同步状态的命令:ntpstat

3.4 安装mysql

  • 安装mysql的用处是提供cm存储集群信息以及hive的元数据库的。只需要安装一个mysql数据库即可,虽说mysql可以随意安装在集群的任意接节点,这里还是建议安装在cm。
    安装mysql的过程如下:

3.4.1 安装

  • yum -y install mysql-server
  • 启动并开启开机启动:
    service mysqld start
    chkconfig mysqld on

3.4.2 修改root用户密码

  • mysqladmin -u root password “root”
  • 登录mysql:mysql -uroot -proot

3.4.3 创建相关数据库

3.4.3.1 Hive的元数据库

  • create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

3.4.3.2 Cloudera的元数据库

  • create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

3.4.4 开启远程访问

  • 选择mysql库: use mysql;
  • 修改访问权限表:grant all privileges on . to “root”@"%" identified by “root” with grant option;
  • 刷新权限:flush privileges;
  • 查看是否开启远程访问:select user,password,host from user;
    CDH大数据集群搭建_第4张图片 上图的最后一行表示已经开启了root用的远程访问。 符号%表示所有主机。到此 mysql安装完毕。

4. CM安装

  • 在3.3.1中我们只是建立了CM的网络软件镜像,但是我们并没有让系统识别,现在开始一步步安装CM
    由于CM只要安装在主节点cdh01上,因此一下操作仅仅只在cdh01上执行。

4.1 配置CM的yum源

  • 从CM网络镜像中拷贝cloudera-manager.repo
    cp /var/www/html/cm5.12/cloudera-manager.repo /etc/yum.repos.d/
  • cd /etc/yum.repos.d/
    vi cloudera-manager.repo
    baseurl=http://192.168.88.121/cm5.12/
    gpgkey =http://192.168.88.121/cm5.12/RPM-GPG-KEY-cloudera
    gpgcheck = 0
  • 检查:yum repolist
    CDH大数据集群搭建_第5张图片
  • 备份:cp cloudera-manager.repo cloudera-cm.repo

4.2 安装CM

  • 找到CM安装的引导文件:cloudera-manager-installer.bin
    可从http://archive.cloudera.com/cm5/installer/5.12.1/下载,一定要对应你的CM的版本。将其上传到/opt下
  • 赋予其执行权限:chmod 755 cloudera-manager-installer.bin
  • 到此就可以开始安装CM了,执行命令:/opt/cloudera-manager-installer.bin
  • 出现安装引导界面:->next->next->yes->next->yes就会开始安装jdk, 因此并不需要事先安装jdk->安装CM服务(有点慢, 耐心等待)->成功
  • 我们可以通过命令查看cloudera的服务是否启动:
    service cloudera-scm-server status
  • 访问:http://cdh01:7180
    用户名密码均为admin,登录后进行cdh集群安装界面。到此CM安装完成。

5. CDH集群安装

5.1 选择子节点

  • 在登录了后,进入的第一个界面是cloudera的最终用户许可条款和条件,勾选是的,再点继续,进入CDH版本选择界面,这里选择免费版, 再点击继续,进行感谢界面:直接点击继续,进入了节点选择界面:在这个界面我们需要填入,我们集群的所有节点主机名(可从任意节点的hosts文件中拷贝。),以英文逗号分隔,填完了后点击搜索:

5.2 CDH和CM的具体网络位置的选择

  • 在确认主机无误后,点击继续,就可以进入CDH和CM的网络位置选择界面。

5.2.1 选择CDH的位置

  • 先点击 更多选项,进入CDH网络位置选择界面,修改成我们自己的CDH网络软件镜像的地址:http://192.168.88.121/cdh/
    CDH大数据集群搭建_第6张图片

5.2.2 选择CM的位置

  • 在选择了CDH后,我们继续点击 自定义存储库 来选择我们自己的CM:其实呢,就是把配置cloudera-cm.repo(参考4.1)的配置拿出来,在界面上填一遍,我们的填写如下:
    CDH大数据集群搭建_第7张图片
  • 填写完成后,就会进入给每个节点安装cloudera-scm-agent的界面,再点击继续前,我们需要将hadoop-cm中安装CM时安装的JDK文件分发到每个子节点,不然子节点在安装cloudera-scm-agent会包错。

5.3 分发JDK

  • 在hadoop-cm安装CM时,CM会将JDK安装到/usr/java/目录下,因此我们把hadoop-cm整个java目录分发给所有的子节点就好了,在hadoop-cm下执行:
    scp -r /usr/java cdh02:/usr/
    scp -r /usr/java cdh03:/usr/

5.4 Agent的安装和配置

  • Jdk分发完成后,点击继续,进入jdk安装选项,由于我们已经分发,这个就不需要勾选,直接点击继续,进入选择是否启动单用户模式:这里选择不启用,直接点击继续,进入节点通信选择:我们这里使用 所有用户接收相同的密码,填入密码后,点击继续,进行agent安装界面, 耐心等待安装完成,分发为完成后,点击继续,进入agent主机检查:

6. 安装flume

7.安装hive

8.安装kafka

9.高可用配置

10.配置调整

11.添加子节点

你可能感兴趣的:(CDH大数据集群搭建)