1,大数据与分布式系统

  

  大数据被大家广泛认同的起源是google的三篇论文,描述了分布式文件系统hdfs,分布式文件处理mapreduce,以及大表bigtable。

  通常来说,我们所说的“大数据”技术,一般指的是hadoop生态圈技术。hadoop的三个核心组件是hdfs,mapreduce,yarn.

  大数据要解决的是什么问题?这是理解大数据的关键,大数据解决的无非就是分布式存储,分布式运算,分布式调度的问题。为了解决这三个问题,hadoop发展了前面所说的三个核心组件。这三个核心组件需要相互对照来看才能正确理解大数据,不能单独拿一个来看。

  

  2,分布式系统CAP理论

 

  在分布式系统中存在着一致性,可用性,分区容错性三个问题,在理论派眼中被称之为CAP理论。之所以存在这三个问题,原因就是分布式存储中存在多个同数据副本,同数据副本间可用状态不一致,同数据副本的数据同步需要时间。

  可以发现,副本数量越多,可用性越好,一致性和分区容错性越差。越快的响应请求,一致性和分区容错性越差。对数据的调度越可靠,数据同步速度越慢,请求响应越慢。

 

  3,hadoop中hash算法的应用

 

  hadoop主要是依靠hash算法,将每台机器抽象为hash的一个桶来实现分布式的读写的。同时利用hash算法对数据的标识字段进行取模,抽取并散列数据特征,实现相同特征的数据在reduce阶段在同一台机器上处理。当然,为了防止个别机器负载过高,需要每台机器及时向调度节点namenode报告自己的资源状况,主节点在分配任务时根据资源消耗状况分配任务。除此之外,namenode的内存中上还保留着元数据,当请求来临时能很快的将任务分配给相应节点。

 

  4,hbase与LSM树

 

  传统的小型机时代RDBMS单表的合并受限于主机内存,单表通常不会太大。在hbase中,单表的容量被大大扩展,主要是通过key值分区可以将单表数据存储到多台主机,同时采用LSM树,在compact阶段可以使用mapreduce对百G级别乃至更大的数据进行合并,使其存储进一个索引结构中。不过,当执行major compact时mapreduce会造成大量网络流量,需要注意。

 

  5,hive数据仓库的本质

 

  hive是一个被sql脚本化的mapreduce程序。一般来说,没有分组统计的sql相当于没有reduce过程的mapreduce,有分组统计的sql相当于一个完整的mapreduce过程。

 

  6,分布式日志flume与流处理storm

 

  分布式的日志的管理,是保持数据一致和监控集群运行状况的核心。流处理是分布式内存版的mapreduce,补充了mapreduce。

 

  写在文末:理解新技术的核心是对传统技术和对算法的理解,在大数据中最核心的是内存和磁盘的物理特性以及hash算法的应用。

  原创观点,欢迎转载。转载请注明出处,侵权必究。

版权声明:本文为liuhui2010518原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/liuhui2010518/p/8442099.html