美文网首页我爱编程
大数据在线分析处理和常用工具

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

作者: kuntoria | 来源:发表于2018-05-21 14:22 被阅读0次

    1. Flume

    1.1 Flume架构

    1.2 Channel的分类

            - Memory Channel

            - File Channel

    1.3  输入源 (Source)

    1.4 输出源 (Sink)

    2. 流式处理

    Spark (Spark Streaming) 和  Storm 专注于将数据按照时间窗口进行聚合和处理。用来解决在线分析处理特点,数据需要尽快的得到处理的问题。所以经常被称作流式处理框架。

    两者的区别如下:

    - Storm  提供比 Spark 更加实时的流式处理(Storm来一条,处理一条);

    - Spark 提供比Storm更加多的服务,Spark 逐渐已经形成类似 Hadoop 的生态圈了。

    2.1 Spark Streaming

    2.1.1 Spark生态圈

    2.1.2 Spark集群管理模式

    目前 Spark 有三种集群管理模式:

    - Standalone:一种简单的集群管理,其包括一个很容易搭建集群的Spark;

    - Apache Mesos :一种通用的集群管理,可以运行Hadoop MapReduce和服务应用的模式;

    - Hadoop YARN : Hadoop2.0中的资源管理模式。

    其中第二种和第三种都是使用 Spark 做任务管理和调度,Mesos 和 Yarn 做资源管理和调度

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

    2.1.3 Spark工作组件

    2.2 Storm

    2.2.1 Storm结构图

    2.2.2 Storm 工作组件

    - topology:一个拓扑是一个个计算节点组成的图,每个节点包换处理的逻辑,节点之间的连线表示数据流动的方向;

    - spout:表示一个流的源头,产生tuple;

    - bolt:   处理输入流并产生多个输出流,可以做简单的数据转换计算,复杂的流处理一般需要经过多个bolt进行处理。

    3. HBase

    HBase 专注于大数据存储和提供查询,用来解决在线分析处理特点,数据经过处理后数据量依然巨大的存储和展现问题。类似的大数据开源系统有 Cassandra 。

    两者区别如下:

    - Cassandra  满足可用性和分区容忍性,允许数据的不一致(不同客户端可能看到不一样的情况)、 Cassandra  提供了类似 SQL 的  CQL 查询语言,查询方便;

    - HBase 满足一致性和分区容忍性,拥有强大的记录集一致性。HBase不支持 SQL 需要使用者部署第三方服务来支持 SQL (如 Apache Phoenix);

    3.1 架构图

    组成部件说明:

    - 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 客户端写数据过程

    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高性能。对大数据感兴趣的可以到科多大数据进行咨询~

    相关文章

      网友评论

        本文标题:大数据在线分析处理和常用工具

        本文链接:https://www.haomeiwen.com/subject/stifjftx.html