1.1 数据收集:Flume 、Logstash、Kibana 等
1.2 数据存储:MySQL、Oracle 等,Hadoop HDFS 、KFS、GFS 等分布式文件系统
兼具分布式文件系统和关系型数据库的优点,基于这种需求,就产生了 HBase、MongoDB。
1.3 数据分析:
批处理: Hadoop MapReduce、Spark、Flink 等;
流处理: Storm、Spark Streaming、Flink Streaming 等。
SQL分析工具: Hive 、Spark SQL 、Flink SQL、 Pig、Phoenix 等,Hive 本质上就是将 SQL 转换为 MapReduce 作业,Spark SQL 将 SQL 转换为一系列的 RDDs 和转换关系(transformations),Phoenix 将 SQL 查询转换为一个或多个 HBase Scan。
1.4 数据应用
1.5 其他框架
- 单机的处理能力都是存在瓶颈的,所以大数据框架都是采用集群模式进行部署,为了更方便的进行集群的部署、监控和管理,衍生了 Ambari、Cloudera Manager 等集群管理工具;
- 想要保证集群高可用,需要用到 ZooKeeper ,ZooKeeper 是最常用的分布式协调服务,它能够解决大多数集群问题,包括首领选举、失败恢复、元数据存储及其一致性保证。同时针对集群资源管理的需求,又衍生了 Hadoop YARN ;
- 复杂大数据处理的另外一个显著的问题是,如何调度多个复杂的并且彼此之间存在依赖关系的作业?基于这种需求,产生了 Azkaban 和 Oozie 等工作流调度框架;
- 大数据流处理中使用的比较多的另外一个框架是 Kafka,它可以用于消峰,避免在秒杀等场景下并发数据对流处理程序造成冲击;
- 另一个常用的框架是 Sqoop ,主要是解决了数据迁移的问题,它能够通过简单的命令将关系型数据库中的数据导入到 HDFS 、Hive 或 HBase 中,或者从 HDFS 、Hive 导出到关系型数据库上。
分类总结:
日志收集框架:Flume 、Logstash、Kibana
分布式文件存储系统:Hadoop HDFS
数据库系统:Mongodb、HBase
分布式计算框架:
- 批处理框架:Hadoop MapReduce
- 流处理框架:Storm
- 混合处理框架:Spark、Flink
查询分析框架:Hive 、Spark SQL 、Flink SQL、 Pig、Phoenix
集群资源管理器:Hadoop YARN
分布式协调服务:Zookeeper
数据迁移工具:Sqoop
任务调度框架:Azkaban、Oozie
集群部署和监控:Ambari、Cloudera Manager