主要包括如下部分内容:
- 大数据在线分析处理和常用工具
- 大数据离线处理和常用工具
数据流
数据的收集-->数据的传输-->数据的处理--->数据的处理
大数据在线分析处理
- 大数据在线分析处理的特点
- 数据源源不断的到来
- 数据需要尽快的得到处理,不产生积压不产生数据丢失
- 数据量巨大
- 处理的结果尽快展现
以上四个特点可以总结为:数据的收集-->数据的传输--->数据的处理--->数据存储&&展现。
其中数据的处理一般设计数据的聚合,数据处理和展现都是秒级或毫秒级
针对这些问题目前形成了Flume+kafka+stom/Spark+habse/redis的技术架构解决方案。
- Flume:专注于大数据的收集和传输。
- Flume的特点:支持多种数据源并且输出到多种数据源,支持多种数据格式
- 可以多个Agent相连构成Agent链
- Flume源源不断的收集日志
- 参考文档:使用 Flume 部署和管理可扩展的 Web 服务
- Spark和Stom:数据处理
- Hbase:数据存储
- Hbase专注于大数据的存储和提供查询
- CAP理论中,Hbase选择了满足一致性和分区容忍性,拥有强大的记录集一致性
- Hbase不支持直接SQL,需要使用者部署第三方服务来支持SQL,如:Apache Phoenix
大数据离线分析和常用工具
- 大数据离线处理特点
- 数据量巨大且保存时间长
- 在大量数据上进行复杂的批量运算
- 数据在计算之前已经完全到位,不会发生变化
- 能够方便的查询批量计算的结果
技术架构:使用HDFS存储数据,使用MapReduce进行批量计算,计算完成的数据,如果需要数据仓库存储,直接存入Hive,然后在Hive进行展现。
-
HDFS介绍
- 分布式文件系统,支持多备份
- 不支持随机读写,支持追加
-
MapReduce介绍
- MapReduce是一种分布式批量计算框架,分为Map阶段和Reduce阶段
- MapReduce经历了从第一代MapReduce V1到第二代MapReduce YARN,增加了Yarn框架进行资源管理和任务调度。
-
Hive介绍
- Hive是一种以SQL风格进行任何大小数据分析的工具,其特点是采取类似关系数据库的SQL命令。其特点是通过SQL处理Hadoop的大数据,数据规模可以伸缩扩展到100PB+,数据形式可以是结构或非结构数据。
- Hive是一种数据仓库,而Hbase是一种分布式的数据库
- Hive组织数据包含四种层次:DataBase --> Table --> Partition --> Bucket,对应在HDFS上都是文件夹形式
- HQL最终转换为MapReduce执行
参考资料