【大数据】基础概念
Hadoop
分布式系统基础架构
- HDFS 分布式文件系统
- MapReduce 并行计算编程模型
- YARN 资源管理系统
入门学习资料:
http://hadoop.apache.org/docs/r1.0.4/cn/quickstart.html
Spark
基于内存的计算框架
https://spark.apache.org/docs/2.3.2/quick-start.html
Spark Streaming
SparkSQL
Spark的重要组成部分
- 兼容Hive语法
- 兼容标准SQL
https://spark.apache.org/docs/2.3.2/rdd-programming-guide.html
HBase
可伸缩,面向列的分布式云存储系统
- 海量数据存储
- 实时查询
https://hbase.apache.org/book.html
Hive
建立在Hadoop上的数据仓库基础架构。Hive定义了简单的类SQL查询语言,允许使用SQL查询数据。
HBase与Hive的区别
-
Hive是一种类SQL语言,最终被转化成Map/Reduce。Hive虽然类似SQL,但是不能交互查询,只能在Hadoop上批量执行。
-
HBase是一个Key/Value系统,运行在HDFS上。HBase可以实时运行。
-
Hive查询花费时间长,会默认遍历表中所有数据。
-
Hive不支持更新操作。
-
HBase需要特定语言编写,可以通过Apache Phonenix实现,但必须提供schema为代价。而且为了运行HBase,还需要提供Zookeeper支持。
-
Hive适合离线数据查询分析。
-
HBase适合大数据实时查询。
HBase与Hive的协作关系
- 通过Hive清洗、处理和计算数据数据;
- 通过ETL工具将数据抽取到HDFS存储;
- Hive清洗处理后的结果、如果是面向海量数据查询场景可以存入HBase;
- 数据应用应从HBase查询数据。
Kafka
分布式、分区、多副本的消息发布及订阅系统。
- 消息持久化
- 高吞吐
- 可靠性
- 分布式
https://kafka.apache.org/0100/documentation.html
Storm
Sotrm是一个分布式的实时计算系统,为大规模流式数据提供实时处理。适合场景:实时分析、持续计算、分布式ETL。
- 分布式实时计算框架
- 高容错
- 可靠的消息保证
- 灵活的拓扑定义及部署
- 与外部组件集成,包括Kafka、HDFS、HBase。
https://storm.apache.org/
Flume
分布式和高可用的海量日志聚合系统
-
收集、聚合时间流数据的分布式框架
-
通常用于日志数据
-
支持动态更新配置
-
提供上下文路由功能
-
支持负载均衡和故障转移
-
完全的可扩展
https://flume.apache.org/releases/1.6.0.html -
可以用Spark/Hive进行大数据,复杂处理的离线计算。
-
定时批量分析。