CM+CDH构建企业大数据平台

1、  CM是什么?

  Cloudera Manager的缩写,它是Cloudera公司研发的一款可以让企业对大数据平台的管理和维护变得更简单更直观的管理工具。

2、  CDH是什么?

  Cloudera’s Distribution including Apache Hadoop (CDH),官网:https://www.cloudera.com/

  优点:

  • 基于Apache协议,100%开源
  • 基于稳定版本Apache Hadoop,并修复了大量的Bug,比Apache Hadoop 的兼容性、安全性、稳定性更强。
  • 充分考虑了各个大数据组件之间的版本兼容性,版本管理更清晰(比如CDH5)
  • 版本更新快,通常每2-3个月都会有一次更新
  • 集群管理维护更简单方便,提供了部署、安装、配置、监控、诊断等工具(CM),大大提高了集群部署及维护的效率

3、  CM和CDH是什么关系?

  通过CM统一的图形化界面快速自动的安装部署CDH相关的服务组件。

4、 什么叫企业大数据平台?

 通过对企业大规模数据的管理、分析、挖掘、监控、可视化,为公司内部产品的策划、运营、营销、财务、决策等提供数据支撑的一个平台服务。

5、怎么构建企业大数据平台?

 首先要解决两个问题:1、大规模数据该如何存储(HDFS) 2、大规模数据的计算(Mapreduce)

 大规模数据该如何存储?

    (1)增加本机的磁盘空间。

       但是不可能一直增加,本机存储空间总会有一个极限。加到一定程度就会超过限制。

  (2)增加机器数量,用共享目录的方式提供远程网络化的存储。

                   这种方式就可以理解为分布式文件系统的雏形,就是把同一文件切分之后放入不同的机器中,空间不足了还可继续增加机器,突破本机存储空间的限制。Hadoop目前最多可以支持到上万台机器规模组成的集群,总之,足够你用了。这个不用担心。但是这种方式还是有很多问题的。比如:数据怎么切分,数据切分之后如何存储,又怎么高效的管理存储在多台机器上的数据等等复杂问题,肯定不能靠人工去维护吧,那就有点傻了。那么怎么办呢?就要通过系统来解决,即通过分布式文件系统来管理存储在多台机器上的大规模数据。也就是后面会提到的HDFS(Hadoop分布式文件系统)。

      我们不是为了存储数据而存储数据,我们最终的目的是想通过对大规模数据的多维分析挖掘出数据背后对企业运营决策有价值的信息。

 大规模数据的计算?

    大规模数据存储通过分布式存储解决存储容量局限的问题大规模数据计算重点考虑的是计算速度的问题。就是怎么能够加快大规模数据的处理速度。一台机器资源有限,计算大规模数据可能时间很长,那么怎么加快处理速度呢?整多台,一台不够多台来凑,每个任务处理一部分数据,多台机器的多个任务分别处理一部分数据,这样速度肯定会比之前快。

    总之,不管是大数据的存储还是计算,都是通过分布式系统来解决的,不再通过比较昂贵的小型机,因为小型机成本太高。那么分布式系统在哪运行呢,就需要构建分布式集群。所以说我们接下来的重点就是如何构建分布式集群。

6、 什么叫构建Hadoop分布式集群?

  构建Hadoop分布式集群实际上就是在一组通过网络连接的物理计算机组成的集群上部署Hadoop相关的软件。因此主要任务就是:

    1、  准备物理集群

      2、  实现物理集群的网络互联,就是通过网络把集群内所有机器连接起来

                3、  在实现网络互联的集群上安装部署大数据相关的软件

7、 哪些因素会影响集群规模?

  • 数据量(要考虑用多少台机器组成的集群能够存储这么大的数据)

      1)规划时间内的数据而不是现有数据

            注意:这个数据量是公司一定规划时间内(比如两年)的数据量,不是现有的数据量,因为你不可能随着数据量的增加每月或每周都往集群里增加节点,这样每天绝大部分时间就都花在集群维护上了,虽然说我们的确可以随着数据量的动态变化通过动态的增减节点的个数来调整集群的存储和计算能力,但是最好还是要有一个1-2年左右的中长期规划。

         2)多副本

             因为Hadoop致力于构建在廉价的商用服务器上的,廉价的就更容易出现故障,出现故障就容易导致数据丢失,数据丢失是绝对不允许的。所以说怎么保证数据安全性呢?一份不够,存多份就得了呗,难道你们还能同时丢到,虽然说有可能,但是可能性是不是就小很多了。当然你也不可能买特别垃圾的服务器。我们需要在采购成本和维护成本之间做好权衡。

          3)中间数据、临时数据和日志数据需要占用20-30%左右的空间。

                             这个应该很好理解,因为数据不只是需要分析处理的业务数据。

  

  • 机器的配置  

    假设有100T的数据,每台机器2T硬盘,至少需要50台,每台机器4T硬盘,至少需要25台,所以说机器性能配置的不同也会影响集群规模的大小。后边我们会单独讲机器选型及配置选择。

  • 平台的功能性和非功能性需求(非功能性需求:1、性能需求 2、可靠性需求 3、可用性需求 4、容错性需求)
  1.  性能需求:比如对100G—1T左右的数据进行简单的查询分析,能够在2分-10分钟之内完成,复杂作业(比如多表连接)能够在20-1小时内完成,业务数据的增量导入和数据清洗在1小时之内完成。
  2. 可靠性需求:比如系统每月宕机次数不能超过1次。
  3. 可用性需求:系统每次宕机的时间不能超过两小时,还有就是系统内任何一台计算机每月不可用的时间不能超过总时间的2%。
  4. 容错性需求:机器宕机、服务停止硬件损坏的情况下数据不会出现丢失,不同情况下的恢复时间也有要求,比如宕机或服务器停止,恢复时间10分钟之内,如果NameNode硬件损坏,2小时之内恢复

机器选型

(1)   小型机:百万级别以上,成本太高,违背了Hadoop的初衷,hadoop就是要运行在廉价的机器之上。所以不推荐。

(2)   PCserver: 高配置的PC服务器,几万、十几万、几十万不等,性价比最高,也是企业部署大数据平台的首选。

(3)   云主机(阿里云、腾讯云):比如阿里云、百度云、腾讯云等云服务平台,成本适中,比如最低配置搭建3节点集群使用5个月,需要2000~6000元左右。但是依赖于第三方平台,不能对系统做更多的控制,所以比较适合初创型企业,因为初创型企业刚开始资金不足,数据量也不大。

(4)  普通PC:利用公司现有的多台普通电脑部署分布式集群,成本比较低,内存不足可以通过增加内存条的方式解决,费用在1000元以下。但是最大的不足是稳定性不好,所以可用于实验环境。

(5)  Linux虚拟机:直接在自己的一台电脑上安装多台Linux虚拟机的方式来模拟分布式集群,成本最低,内存不足可以通过增加内存条的方式解决,费用在几百元左右。从成本和学习的角度来讲,是第一选择。

机器配置 

  1. 内存(大):(企业)在成本允许的情况下一般选择大内存,比如32GB、64GB、128GB,具体看业务而定,哪个服务对内存要求高,就可以配置的大一点(比如存文件系统元数据的NameNode对内存要求就比较高),从节点DataNode内存就没必要那么大,它更需要的是磁盘和CPU。所以这个需要大家根据每个组件的特点,有针对性的去选择配置。(学习) 建议计算机的内存至少为8GB,最好为16GB及以上。主节点内存至少4GB,从节点内存至少2GB。
  2. CPU:(企业)一般选择多路多核的CPU,比如2 路8核,2路10核,2路12核的CPU,主频至少2-2.5GHz。(学习)由于我们会先使用少量数据进行测试,暂时对CPU要求不高,目前电脑CPU核数都在2核或者4核以上,可以够学习使用。
  3. 磁盘:(企业)一般选择大硬盘,因为我们要存储的是大规模的数据,比如可以配置1-20块1-6TB的硬盘。(学习)每个节点磁盘分配至少20G
  4. 网络:(企业)一般都是选择万兆网 ,因为数据量越大,对网络吞吐率的要求就越高。(学习)目前先保证能联网且网络稳定就行
原文地址:https://www.cnblogs.com/ltolstar/p/9733104.html