CDH大数据集群搭建

简介

  • 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. 软件环境

名称版本
LinuxCentOS 7x64
CM5.12.1
CDH5.12.1
主机名内存CPUIP角色
cdh015G1核2线程192.168.88.121CM server,agent
cdh022G1核2线程192.168.88.122agent
cdh032G1核2线程192.168.88.123agent

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 .
    在这里插入图片描述
  • 查看:192.168.88.121/CentOS
    到此网络镜像创建成功。
3.2.2 使用网络系统镜像
  • 解除对镜像文件的挂载:umount /media/CentOS
    在这里插入图片描述
    如上图 ,目录下无文件则说明解除挂载成功。
    如果出现下图说明还有进程在使用/medis/CentOS挂载点,那么此时可以借助fuser命令找出占用目录/medis/CentOS的所有进程,然后kill掉,此时就可以umount 了
    在这里插入图片描述

  • 修改文件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网络软件镜像
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;
    在这里插入图片描述 上图的最后一行表示已经开启了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
    在这里插入图片描述
  • 备份: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/
    在这里插入图片描述
5.2.2 选择CM的位置
  • 在选择了CDH后,我们继续点击 自定义存储库 来选择我们自己的CM:其实呢,就是把配置cloudera-cm.repo(参考4.1)的配置拿出来,在界面上填一遍,我们的填写如下:
    在这里插入图片描述
  • 填写完成后,就会进入给每个节点安装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.添加子节点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值