我爱编程

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

2018-05-21  本文已影响0人  kuntoria

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

上一篇下一篇

猜你喜欢

热点阅读