是一个由基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
的生态系统很大,上面这些组件图标协同过滤算法java代码 Hadoop大数据生态系统及常用组件简介(3),你熟悉其中哪些呢?
大数据生态系统及常用组件简介(1)
大数据生态系统及常用组件简介(2)
十一、分布式实时计算框架 Flink
Flink是一个基于流计算的分布式引擎,以前的名字叫,从2010年开始在德国一所大学里发起,也是有好几年的历史了,2014年来借鉴了社区其它一些项目的理念,快速发展并且进入了顶级孵化器,后来更名为Flink。
Flink在德语中是快速和灵敏的意思,用来体现流式数据处理速度快和灵活性强等特点。
Flink提供了同时支持高吞吐、低延迟和-once 语义的实时计算能力,另外Flink 还提供了基于流式计算引擎处理批量数据的计算能力,真正意义上实现了流批统一。
Flink 与 软件栈是什么关系?
Flink 独立于 ,且能在没有任何 依赖的情况下运行。
但是,Flink 可以很好的集成很多 组件,例如 HDFS、YARN 或 HBase。 当与这些组件一起运行时,Flink 可以从 HDFS 读取数据,或写入结果和检查点()/快照()数据到 HDFS。Flink 还可以通过 YARN 轻松部署,并与 YARN 和 HDFS 安全模块集成。
十二、分布式实时计算框架Storm
Storm 是免费、开源的分布式实时计算系统,擅长处理海量数据,适用于数据实时处理而非批处理。
框架主要解决的是静态数据的批量处理,即 框架处理的是已存储到位的数据;但是流计算系统在启动时,一般数据并没有完全到位,而是源源不断地流入。
Storm 集群架构设计如下图所示:
Storm 采用来作为分布式协调组件,负责和多个之间的所有协调工作。
后台进程和后台进程都是快速失败(Fail-fast)和无状态()的,节点并没有直接和节点通信,而是借助将状态信息存放在中或本地磁盘中,以便节点故障时进行快速恢复。
、Spark 这类计算引擎主要用于处理离线数据,被称为 “批处理”。而与之相对的又有专门处理实时数据的计算引擎,这类计算引擎被称为 “流处理”。目前的代表计算引擎有 Spark 、Storm、Flink。就目前而言,Storm 已经逐渐被淘汰了,Flink 正变的越来越重要。
十三、数据迁移工具 Sqoop
Sqoop是旗下的一款开源的工具,主要用于在或Hive与传统的数据库(MySQL、...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL 、、等)中的数据导进到的HDFS中,也可以将HDFS的数据导出到关系型数据库中。
Sqoop的本质是一个命令行工具,与HDFS、Hive、MySQL等经常一起使用。
Sqoop 工作机制利用 分布式批处理,加快了数据传输速度,保证了容错性。
十四、基于HBase的高效SQL引擎
最早是 的一个开源项目,后来成为 的顶级项目。
构建在 HBase 之上的开源 SQL 层,能够让我们使用标准的 JDBC API 去建表,插入数据和查询 HBase 中的数据,从而可以避免使用 HBase 的客户端 API。
在我们的应用和 HBase 之间添加了 ,并不会降低性能,而且我们也少写了很多代码。
当接收到SQL查询后,它会在本地编译成HBase的API协同过滤算法java代码,然后推到集群进行分布式的查询或计算。它自动创建了一个元数据库用来存储HBase的表的元数据信息。因为是直接调用HBase的API,和自定义的,所以对于大量小查询可以实现毫秒级返回,千万级别的数据实现秒级返回。
的目标是在HBase之上提供一个高效的类关系型数据库的工具,定位为低延时的查询应用,适合需要在HBase之上使用SQL实现CRUD操作。
(此处已添加圈子卡片,请到今日头条客户端查看)
十五、数据挖掘算法库
起源于2008年,最初是 的子项目,它在极短的时间内取得了长足的发展,现在是的顶级项目。
的主要目标是创建一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。现在已经包含了聚类、分类、推荐引擎(协同过滤)和频繁集挖掘等广泛使用的数据挖掘方法。除了算法,还包含数据的输入/输出工具、与其他存储系统(如数据库、 或)集成等数据挖掘支持架构。
最大的优点就是基于实现,把很多以前运行于单机上的算法,转化为了模式协同过滤算法java代码,这样大大提升了算法可处理的数据量和处理性能。