大数据在线分析处理和常用工具

1. Flume

1.1 Flume架构

大数据在线分析处理和常用工具_第1张图片

1.2 Channel的分类

        - Memory Channel

        - File Channel

1.3  输入源 (Source)

大数据在线分析处理和常用工具_第2张图片


1.4 输出源 (Sink)

大数据在线分析处理和常用工具_第3张图片

2. 流式处理

    Spark (Spark Streaming) 和  Storm 专注于将数据按照时间窗口进行聚合和处理。用来解决在线分析处理特点,数据需要尽快的得到处理的问题。所以经常被称作流式处理框架。
两者的区别如下:
    - Storm  提供比 Spark 更加实时的流式处理(Storm来一条,处理一条);
    - Spark 提供比Storm更加多的服务,Spark 逐渐已经形成类似 Hadoop 的生态圈了。

2.1 Spark Streaming

2.1.1 Spark生态圈

大数据在线分析处理和常用工具_第4张图片

2.1.2 Spark集群管理模式

     目前 Spark 有三种集群管理模式: 
      - Standalone:一种简单的集群管理,其包括一个很容易搭建集群的Spark;
      - Apache Mesos :一种通用的集群管理,可以运行Hadoop MapReduce和服务应用的模式;
      - Hadoop YARN : Hadoop2.0中的资源管理模式。
     其中第二种和第三种都是使用 Spark 做任务管理和调度,Mesos 和 Yarn 做资源管理和调度

     Spark+YARN是最有前景的一种技术方案

2.1.3 Spark工作组件

大数据在线分析处理和常用工具_第5张图片



2.2 Storm

2.2.1 Storm结构图

大数据在线分析处理和常用工具_第6张图片

2.2.2 Storm 工作组件

     - topology:一个拓扑是一个个计算节点组成的图,每个节点包换处理的逻辑,节点之间的连线表示数据流动的方向;
     - spout:表示一个流的源头,产生tuple;
     - bolt:   处理输入流并产生多个输出流,可以做简单的数据转换计算,复杂的流处理一般需要经过多个bolt进行处理。

大数据在线分析处理和常用工具_第7张图片

3. HBase

    HBase 专注于大数据存储和提供查询,用来解决在线分析处理特点,数据经过处理后数据量依然巨大的存储和展现问题。类似的大数据开源系统有 Cassandra 。
两者区别如下:
    - Cassandra  满足可用性和分区容忍性,允许数据的不一致(不同客户端可能看到不一样的情况)、 Cassandra  提供了类似 SQL 的  CQL 查询语言,查询方便;
    - HBase 满足一致性和分区容忍性,拥有强大的记录集一致性。HBase不支持 SQL 需要使用者部署第三方服务来支持 SQL (如 Apache Phoenix);

3.1 架构图

大数据在线分析处理和常用工具_第8张图片

组成部件说明:
   - Client:使用HBase RPC机制与HMaster和HRegionServer进行通信;
   - Zookeeper:  存储hbase:meta 表等元数据信息;HRegionServer把自己以Emphedral方式注册到Zookeeper中,        - HMaster随时感知各个HRegionServer的健康状况;Zookeeper避免HMaster单点问题;
   - HMaster: 
主要负责Table和Region的管理工作:

         1) 管理用户对表的增删改查操作
         2) 管理HRegionServer的负载均衡,调整Region分布
         3) Region Split后,负责新Region的分布
         4) 在HRegionServer停机后,负责失效HRegionServer上Region迁移

   - HRegionServer:HBase中最核心的模块,主要负责响应用户I/O请求,向HDFS文件系统中读写数据:
     HRegionServer管理一些列HRegion对象;
     1) 每个HRegion对应Table中一个Region,HRegion由多个HStore组成;
     2) 每个HStore对应Table中一个Column Family的存储;

3.2 客户端写数据过程

大数据在线分析处理和常用工具_第9张图片

     Region的 Split 和 StoreFile  的 Compact: 
     Client写入 -> 存入MemStore,一直到MemStore满 -> Flush成一个StoreFile,直至增长到一定阈值 -> 触发Compact合并操作 -> 多个StoreFile合并成一个StoreFile,同时进行版本合并和数据删除 -> 当StoreFiles Compact后,逐步形成越来越大的StoreFile -> 单个StoreFile大小超过一定阈值后,触发Split操作,把当前Region Split成2个Region,父Region会下线,新Split出的2个孩子Region会被HMaster分配到相应的HRegionServer 上,使得原先1个Region的压力得以分流到2个Region上。

    由此过程可知,HBase只是增加数据,有所得更新和删除操作,都是在Compact阶段做的,所以,用户写操作只需要进入到内存即可立即返回,从而保证I/O高性能;

































你可能感兴趣的:(BigData)