处理框架和处理引擎负责对数据系统中的数据进行计算。虽然“引擎”和“框架”之间的区别没有什么权威的定义,但大部分时候可以将前者定义为实际负责处理数据操作的组件,后者则可定义为承担类似作用的一系列组件。
Hadoop —批处理的处理框架
Hadoop=HDFS(文件系统,数据存储技术相关)+ Mapreduce(数据处理) Hadoop可编写和运行分布式应用处理大规模数据,是专为离线和大规模数据分析而设计的。
Strom —流处理的处理框架
Apache Storm是一种侧重于极低延迟的流处理框架,也许是要求近实时处理的工作负载的最佳选择。该技术可处理非常大量的数据,通过比其他解决方案更低的延迟提供结果。
Spark —混合框架,理论实时
Spark主要侧重于通过完善的内存计算和处理优化机制加快批处理工作负载的运行速度,可作为独立集群部署(需要相应存储层的配合),或可与Hadoop集成并取代MapReduce引擎。 对于重视吞吐率而非延迟的工作负载,则比较适合使用Spark Streaming作为流处理解决方案。
Flink —混合框架,实时
Apache Flink是一种可以处理批处理任务的流处理框架。虽然Spark也可以执行批处理和流处理,但Spark的流处理采取的微批架构使其无法适用于很多用例。Flink流处理为先的方法可提供低延迟,高吞吐率,近乎逐项处理的能力。
Flume
Flume是一种分布式,可靠和可用的服务,用于高效收集,聚合和移动大量日志数据。它具有可靠的可靠性机制和许多故障转移和恢复机制的强大和容错能力。
Flume可以将应用产生的数据存储到任何集中存储器中,比如HDFS、 HBase数据库;当收集数据的速度超过将写入数据的时候,也就是当收集信息遇到峰值时,Flume会在数据生产者和数据收容器间做出调整,保证其能够在两者之间提供一共平稳的数据. Flume的管道是基于事务,保证了数据在传送和接收时的一致性. Flume有一个好处可以实时的将分析数据并将数据保存在数据库或者其他系统中;
kafka
Kafka是一个可持久化的分布式的消息队列。 Kafka 是一个非常通用的系统。你可以有许多生产者和很多的消费者共享多个主题Topics。
Kafka有一个更小的生产消费者生态系统,使用Kafka意味着你准备好了编写你自己的生产者和消费者代码。
Yarn
为从根本上解决旧MapReduce框架的性能瓶颈,促进 Hadoop 框架的更长远发展,引入Yarn,采用了一种分层的集群框架,将的资源管理和作业调用两个功能分开。
HDFS
分布式文件系统,专门存储超大数据文件,为整个Hadoop生态圈提供了基础的存储服务。HDFS文件系统可存储超大文件,一次写入,多次读取,对硬件要求低,充分考虑到了数据的可靠性、安全性和高可用性。
数据仓库和数据库
数据仓库:是为查询和分析而不是事务处理而设计的数据库,通过整合不同的异构数据源而构建起来的;具有面向主题,集成的,实时的,数据是不可修改,分析型处理等特点;
区别联系:数据仓库是数据库概念的升级。从逻辑上理解,数据库和数据仓库没有区别,都是通过数据库软件实现存放数据的地方,只不过从数据量来说,数据仓库要比数据库更庞大德多。数据仓库主要用于数据挖掘和数据分析,辅助决策。
Hive
Hive是建立在 Hadoop上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,可用sql查询。
Hive 并不提供实时的查询和基于行级的数据更新操作。Hive 的最佳使用场合是大数据集的批处理作业,例如,网络日志分析。
Impala
使用Impala,与其他SQL引擎(如Hive)相比,用户可以使用SQL查询以更快的方式与HDFS或HBase进行通信。Impala可以读取Hadoop使用的几乎所有文件格式,如Parquet,Avro,RCFile。
与Apache Hive不同,Impala不基于MapReduce算法。 它实现了一个基于守护进程的分布式架构,它负责在同一台机器上运行的查询执行的所有方面。因此,它减少了使用MapReduce的延迟,这使Impala比Apache Hive快。
HBase
HBase即Hadoop Database,是高可靠、高性能,面向列、可伸缩的分布式存储系统,利用HBase可以对大表数据的读、写达到实时级别。注重数据的存储和查询。
使用场景:对象存储,时序数据,消息订单,画像;
Elasticsearch/Kibana
Kibana是一个开源的分析和可视化平台,旨在与 Elasticsearch 合作。Kibana 提供搜索、查看和与存储在 Elasticsearch 索引中的数据进行交互的功能。
mysql
离线数据库。