• ClouderaManager与CDH


    * ClouderaManager与CDH

    集群简述

    对于企业而言,一般的集群大小规模大概是如下映射关系:

    集群大小

    小:10~30节点

    中:100~300节点

    大:1000+节点

    对应所需的zookeeper集群规模大概是

    小:3台

    中:5台

    大:7台

    有些同学会说,学这玩意啥用啊?我之前集群环境搭的可6了,咔咔咔一顿操作就OK了,老哥,你试想一下,2000台集群节点呢?按照我们之前的配置方式。。。。。。请开始你的表演。

    那么,我们不得不使用CM或类似CM的工具来管理我们的集群。

    官方地址:http://www.cloudera.com/

    集群管理工具:Cloudera Manager

    小企业:

    可以选择IBM System服务器

    DataNode 20~30台,不需要支持RAID冗余,内存16~24G,对内存要求不大,主要消耗磁盘,磁盘预算:

    一般都是16~18TB

    每天产生20~50万访问量

    每条日志大小:100~500bytes

    每次访问平均产生5条日志

    一天的数据量:

    20~50万访问量 * 5条 * 500字节 / 1024 / 1024 ≈ 1192.0928兆字节数据

    一般需要存储1年的数据:

    1~5G * 365 = 365~1825G * 3副本 = 1095~5475GB

    磁盘一般预留20%,所以可用空间为80%,那么上面得到的数据除以80%即可。

    NameNode 2台,内存预算:

    1G内存 --- 存储100万个元数据---100万个文件---一般我们需要NameNode内存为128G

    ResourceManager一般与NameNode部署在一起

    NodeManager一般与DataNode部署在一起

    Zookeeper 内存要求不高,对于磁盘的读写性能要求高,网络带宽要求非常高

    HBase

    HMaster 要求较高的网络带宽

    HRegionServer 对内存要求高,分为如下两个开销:

    memstore

    blockcache

    Cloudera Manager结构

    CDH是apache hadoop发行版

    CM是集群管理工具

    主从架构Master-slaves

    主节点:Server一个,负责集群部署文件的分发

    从节点:Agent多个,负责收集所在服务器的资源状态信息,监测进程运行状态

    资源下载

    CM

    CM版本:5.7.0 cloudera-manager-centos7-cm5.7.0_x86_64.tar.gz

    下载地址

    http://archive.cloudera.com/cm5/cm/5/cloudera-manager-centos7-cm5.7.0_x86_64.tar.gz

    CDH

    CDH版本:5.7.0

    CDH-5.7.0-1.cdh5.7.0.p0.45-el7.parcel

    CDH-5.7.0-1.cdh5.7.0.p0.45-el7.parcel.sha1

    manifest.json

    下载地址

    http://archive.cloudera.com/cdh5/parcels/5.7.0/

    打包传送门:

    链接:http://pan.baidu.com/s/1o8v4Wiu 密码:dghz

    部署Cloudera Manager

    一、网络配置

    配置IP

    # vi /etc/sysconfig/network-scripts/ifcfg-eno16777736,配置如下,具体忘记的请参看Linux网络配置

     
    配置完成后,重启一下网卡或重启机器

    配置主机名

    # vi /etc/hostname

    修改为:hadoop-senior01.zleyi.com,完成后重启机器

    在Windows中配置hosts,不再赘述

    在Linux中配置hosts

    # echo"192.168.122.150  hadoop-senior01.zleyi.com  z01" >> /etc/hosts

    # echo"192.168.122.151  hadoop-senior02.zleyi.com  z02" >> /etc/hosts

    # echo"192.168.122.152  hadoop-senior03.zleyi.com  z03" >> /etc/hosts

     

     
     

    禁用IPV6

    #vi /etc/default/grub

    修改如下:

     
    完成后重启机器

    二、防火墙与SELINUX

    防火墙

    # systemctl stop firewalld

    # systemctl disable firewalld

    # systemctl status firewalld

     
     

    SELINUX

    # sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config

    # reboot now

    重启后使用如下命令检查一下:

    # getenforce

    # sestatus-v

    如图:

     
     

    三、JDK

    Step1、使用yum命令安装java

    # yum -y install java

    Step2、卸载OpenJDK

    # rpm -qa | grep 'java'

    # rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.131-3.b12.el7_3.x86_64

    # rpm -e --nodeps java-1.8.0-openjdk-1.8.0.131-3.b12.el7_3.x86_64

    完成后如图:

     
    然后重启机器,使用java -verion验证

    Step3、安装下载的JDK的RPM包

    JDK-rpm下载地址传送门:

    链接:http://pan.baidu.com/s/1o8v4Wiu 密码:dghz

    # rpm -ivh /opt/softwares/jdk-8u131-linux-x64.rpm

    四、首先克隆出2台机器,把需要变化的东西修改一下,然后准备配置SSH无密钥登录

    首先让另外两台机器变成无桌面启动吧,至少可以速度稍快一些,当然也可以最小化安装,然后自行安装所需的工具。

    # cat /etc/inittab

    # systemctl set-default multi-user.target

    在Server主节点配置:

    $ ssh-keygen-t rsa

    $ ssh-copy-id 192.168.122.150

    $ ssh-copy-id 192.168.122.151

    $ ssh-copy-id 192.168.122.152

    五、NTP时间同步

    Step1、首先在主节点上同步一下 时间

    # ntpdate cn.pool.ntp.org

    Step2、编辑配置文件

    # vi /etc/ntp.conf

    Server和NameNode主节点

     
     

    然后,主节点:

    # systemctl start  ntpd.service

    # systemctl enable ntpd.service

    其他节点:

    # systemctl stop  ntpd.service

    # systemctl disable ntpd.service

    在其他节点配置定时任务,用于定时同步时间:

    # crontab -e

    */10 * * * * /usr/sbin/ntpdate z01

    重启定时任务:

    # systemctl restart  crond.service

    设置BIOS时钟:系统关机时把内存中的系统时间写入并修改主板时间,重新启动系统时,系统时间会与硬件时间同步,从而保证时间的一致性。

    Step1、修改ntpd文件

    # vi /etc/sysconfig/ntpd

     
    注意注释下边那一行添加的内容SYNC_HWCLOCK=yes

    Step2、修改ntpdate文件

    # vi /etc/sysconfig/ntpdate

     

     
    最后一行改为了yes

    注意3台机器都要有这些操作。

    六、设置用户最大可打开文件数,进程数,内存占用

    # ulimit -a,查看当前系统的上述配置的上限,unlimited为无上限,如图:

     
     

    修改参数:

    # vi /etc/security/limits.conf

    修改如下:

     
    配置完成后重启机器,*代表所有用户,@表示对某个用户组生效,直接写用户名表示对某个用户生效

    尖叫提示:3台机器都需要配置重启一下

    尖叫提示:如果这个文件配置出现错误,重启后,该机器节点将不能再使用。需要进入单用户模式修复,具体请百度之。

    七、Mysql安装

    先检查是否有已经安装的mysql,如果有,请删除(参考删除OpenJDK)

    Step1、更新mysql的rpm

    # rpm -Uvh /opt/softwares/mysql57-community-release-el6-8.noarch.rpm

    打包传送门:

    链接:http://pan.baidu.com/s/1o8v4Wiu 密码:dghz

     
     

    # cd /etc/yum.repos.d

    该目录下,新增两个文件:

     
     

    Step2、修改这两个文件的配置

    # vi mysql-community.repo

     
    注意,如果一会下载过程中出现gpg文件下载失败,请将gpgcheck=1改为0

    # vi mysql-community-source.repo

     
    注意,如果一会下载过程中出现gpg文件下载失败,请将gpgcheck=1改为0

    Step3、更新缓存

    # yum makecache

     
     

    Step4、删除预安装的mysql

    # rpm -qa | grep mysql

     
     

    # rpm -e mysql57-community-release-el6-8.noarch

    Step5、查看有哪些mysql包可以使用yum安装

    # yum repolist enabled | grep mysql

     
     

    Step6、安装

    # yum -y install mysql-community-server

    Step7、启动并初始化

    # systemctl start mysqld

    # mysql_secure_installation

    刚开始是没有密码的,按照英文提示,基本上输入个密码,然后Y然后回车,然后Y然后回车,你懂得,最后就OK了。

    八、安装CDH依赖

    # yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse  portmap fuse-libs redhat-lsb

    九、安装Cloudera Manager

    Step1、解压

    将刚才下载好的tar包解压到cloudera-manager目录下:

    $ mkdir /opt/modules/cloudera-manager

    $ tar -zxf /opt/softwares/cloudera-manager-centos7-cm5.7.0_x86_64.tar.gz -C /opt/modules/cloudera-manager/

    Step2、修改配置文件并远程分发

    $ vi /opt/modules/cloudera-manager/cm-5.7.0/etc/cloudera-scm-agent/config.ini

    修改内容:

     
     

    修改完成后,将该cloudera-manager安装目录scp到其他机器节点

    $ scp -r cloudera-manager/ z02:/opt/modules/

    $ scp -r cloudera-manager/ z03:/opt/modules/

    Step3、创建ClouderaManager的用户

    # useradd --system --home=/opt/modules/cloudera-manager/cm-5.7.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

    检查是否创建成功:

    $ cat /etc/passwd | grep cloudera-scm

    Step4、初始化数据库

    创建数据库用户

    mysql> grant all privileges on *.* to temp@'%' identified by '123456' with grant option;

    mysql> flush privileges;

    查看结果:

    mysql> select host,user from mysql.user;

    拷贝mysql驱动包

    # cp /opt/softwares/mysql-connector-java-5.1.26-bin.jar /usr/share/java

    重命名驱动包:

    # mv /usr/share/java/mysql-connector-java-5.1.26-bin.jar /usr/share/java/mysql-connector-java.jar

    执行脚本:

    # /opt/modules/cloudera-manager/cm-5.7.0/share/cmf/schema/scm_prepare_database.sh mysql scm -h hadoop-senior01.zleyi.com -utemp -p123456 --scm-host hadoop-senior01.zleyi.com scm scm scm

     
     

    十一、真·部署

    Step1、在agent节点创建parcels目录,在server节点创建parcel-repo目录

    # mkdir -p /opt/cloudera/parcels

    # mkdir -p /opt/cloudera/parcel-repo

    Step2、拷贝一下文件到parcel-repo目录

    $ cp CDH-5.7.0-1.cdh5.7.0.p0.45-el7.parcel CDH-5.7.0-1.cdh5.7.0.p0.45-el7.parcel.sha1 manifest.json /opt/cloudera/parcel-repo/

    Step3、拷贝sha1到sha,最后修改所有权限

    $ cp CDH-5.7.0-1.cdh5.7.0.p0.45-el7.parcel.sha1 CDH-5.7.0-1.cdh5.7.0.p0.45-el7.parcel.sha

    # chown -R cloudera-scm:cloudera-scm /opt/cloudera/

    Step4、创建cloudera-scm-agent文件夹

    $ mkdir /opt/modules/cloudera-manager/cm-5.7.0/run/cloudera-scm-agent

    Step5、scp cm-5.7.0这个目录到其他机器节点

    $ scp -r cm-5.7.0/ hadoop-senior02.zleyi.com:/opt/modules/cloudera-manager/

    $ scp -r cm-5.7.0/ hadoop-senior03.zleyi.com:/opt/modules/cloudera-manager/

    Step6、启动Server以及Agent

    Server:

    # /opt/modules/cloudera-manager/cm-5.7.0/etc/init.d/cloudera-scm-server start

    Agent:

    # /opt/modules/cloudera-manager/cm-5.7.0/etc/init.d/cloudera-scm-agent start

    Step7、打开界面,端口号:7180

     
    用户名,密码均为admin

    下一步:

     
    不必说明的下一步我会直接省去

    下一步:

     
    当前管理的主机

    下一步:

     
     

    下一步:

     
    等待各个步骤完成后,才能继续

    等待分配完成后,下一步:

     
     

    注意:红框警告内容可以使用如下办法解决:

    # echo 0 > /proc/sys/vm/swappiness

    # echo never > /sys/kernel/mm/transparent_hugepage/defrag

    # echo "echo 0 > /proc/sys/vm/swappiness">>/etc/rc.d/rc.local

    # echo "echo never > /sys/kernel/mm/transparent_hugepage/defrag">>/etc/rc.d/rc.local

    下一步:

     
     

    下一步:

     
    这个页面需要大家根据自己的需求而定了,不再给出指引

    下一步:后面的也可以直接跳过,我们可以到达该页面,然后手动添加服务

    尖叫提示:有一些需要用到mysql的服务,可以添加时,再去创建Database,比如Monitor服务

    mysql> create database monitor DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

     
     

    * 总结

    暂停一下,后续再讲


    个人微博:http://weibo.com/seal13

    QQ大数据技术交流群(广告勿入):476966007



    作者:Z尽际
    链接:https://www.jianshu.com/p/104a267f2918
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    mybatis-cache model
    多线程开发(1)
    正则表达式(3) — 正则表达式库
    正则表达式(2) — 表达式规则
    我在迈瑞工作的两年总结
    正则表达式(1) — 常用的表达式
    C++系列(2) — 智能指针
    C++系列(1) — string
    路径去除前缀
    SIMD性能优化
  • 原文地址:https://www.cnblogs.com/wzlbigdata/p/8277757.html
Copyright © 2020-2023  润新知