Apache大数据项目

Apache大数据项目

技术开发 编程 技术框架 技术发展

 

Apache大数据项目

ASF 正式创建于1999年,主要是为公众提供有用的免费软件,并为软件开发者社区提供支持和服务,它的创建者是一个自称为Apache组织的群体。早在1995年,Apache组织的成员聚集在一起,在美国伊利诺伊大学超级计算机应用程序国家中心开发的NCSA HTTPd服务器的基础上开发与维护了一个叫Apache的HTTP服务器。早期,NCSA HTTPd服务器是一个叫Rob McCool的程序员开发的,但是后来慢慢失去了兴趣,导致这个功能强大又好用的服务器没人维护。于是一些爱好者和用户就自发开始维护起来,并不断改善功能、发布版本。为了更好的进行沟通,组织中的一位成员创建了一个邮件组,把维护工作高效的组织起来,并把这个软件叫 Apache 服务器。这也是为什么Apache的所有项目至今仍然以邮件列表作为沟通的主要方式。Apache的命名来源于北美当地一支名叫Apache的印第安部落,这支部落以高超的军事素养和超人的忍耐力著称,19世纪后半期对侵占他们领土的进行了反抗。为了对这支部落表示敬仰,就取了这个名字。但这里还流传着一个小故事,说是在NCSA HTTPd基础上,大家都通过打补丁不断在修改这个软件,被戏称为A Patchy Server,和Apache Server读音很像。

apache-projects.png

Apache Airavata 

Airavata是目前用来建立科学网关的软件工具包,但具有更广泛的潜在用途。它提供的功能组成,管理,执行和监测小范围从本地集群,以国家电网和云计算的计算资源进行大规模的应用和工作流程。小工具接口,Airavata后端服务可以部署在开放社会的容器,如Apache Rave 和修改,以满足他们的需求。 airavata构建面向服务的计算,分布式消息,和工作流程的组成和业务流程的一般概念。

Apache Ambari

Apache Ambari是一种基于Web的工具,支持Apache Hadoop集群的供应、管理和监控。Ambari已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop和Hcatalog等。

Apache Beam

Apache Beam是 Apache 软件基金会于2017年1 月 10 日对外宣布的开源平台。Beam 为创建复杂数据平行处理管道,提供了一个可移动(兼容性好)的 API 层。这层 API 的核心概念基于 Beam 模型(以前被称为 Dataflow 模型),并在每个 Beam 引擎上不同程度得执行。

Apache Avro

Apache Avro 是一个中立性语言,它是有Hadoop之父Doug Cutting开发而来。因为hadoop的Writerable的串行化只支持Java语言,即非跨语言。所以Doug Cutting开发了Avro ,它是一个语言独立的数据结构,也就是说它是跨语言的。

它有以下特点:

第一:丰富的数据结构。

第二:紧凑,快速的二进制数据格式。

第三:一个容器文件,用于存储持久性数据。

第四:远程过程调用(RPC)。

第五:与动态语言的简单集成。读取或写入数据文件不需要代码生成,也不需要使用或实现RPC协议。代码生成是一种可选的优化,只有静态类型语言才值得实现。

Apache Beam

Apache Beam是ApacheBeam是统一批处理(Batch)模式和数据流(Stream)处理模式的标准. 。Beam 为创建复杂数据平行处理管道,提供了一个可移动(兼容性好)的 API 层。这层 API 的核心概念基于 Beam 模型(以前被称为 Dataflow 模型),并在每个 Beam 引擎上不同程度得执行。

Apache Bigtop 

Bigtop 是一个工程的系统开发包,对Apache Hadoop生态系统的测试。 Bigtop的主要目标就是构建一个Apache Hadoop生态系统的包和交互式测试的社区。这个包括对各类不同级别工程进行测试(包,平台,运行时间,升级等...),它由社区以关注系统作为一个整体开发而来。

Apache BookKeeper

Apache BookKeeper 是一个可以方便扩展,高可用,低延迟的存储系统。BookKeeper 专门为 append-only 的工作模式提供了优化,在以下的应用场景中非常适用:

WAL (Write-Ahead-Logging), 例如 HDFS 的 NameNode 。

消息存储系统,例如 Apache Pulsar 。

Offset/Cursor 存储系统,例如在 Apache Pulsar 中用来存储消息消费位置。

Object/Blob Store 对象存储系统,例如存储状态机的 snapshots 。

Apache Calcite

Apache Calcite 是一款开源SQL解析工具, 可以将各种SQL语句解析成抽象语法术AST(Abstract Syntax Tree), 之后通过操作AST就可以把SQL中所要表达的算法与关系体现在具体代码之中。Calcite的生前为Optiq(也为Farrago), 为Java语言编写, 通过十多年的发展, 在2013年成为Apache旗下顶级项目,并还在持续发展中, 该项目的创始人为Julian Hyde, 其拥有多年的SQL引擎开发经验, 目前在Hortonworks工作, 主要负责Calcite项目的开发与维护。目前, 使用Calcite作为SQL解析与处理引擎有Hive、Drill、Flink、Phoenix和Storm,可以肯定的是还会有越来越多的数据处理引擎采用Calcite作为SQL解析工具。

Apache CouchDB 

CouchDB 是一个开源的面向文档的数据库管理系统,可以通过 RESTful JavaScript Object Notation (JSON) API 访问。术语 “Couch” 是 “Cluster Of Unreliable Commodity Hardware” 的首字母缩写,它反映了 CouchDB 的目标具有高度可伸缩性,提供了高可用性和高可靠性,即使运行在容易出现故障的硬件上也是如此。

一、CouchDB是分布式的数据库,他可以把存储系统分布到n台物理的节点上面,并且很好的协调和同步节点之间的数据读写一致性。这当然也得靠Erlang无与伦比的并发特性才能做到。对于基于web的大规模应用文档应用,分布式可以让它不必像传统的关系数据库那样分库拆表,在应用代码层进行大量的改动。

二、CouchDB是面向文档的数据库,存储半结构化的数据,比较类似lucene的index结构,特别适合存储文档,因此很适合CMS,电话本,地址本等应用,在这些应用场合,文档数据库要比关系数据库更加方便,性能更好。

三、CouchDB支持REST API,可以让用户使用JavaScript来操作CouchDB数据库,也可以用JavaScript编写查询语句,我们可以想像一下,用AJAX技术结合CouchDB开发出来的CMS系统会是多么的简单和方便。

Apache Crunch

Apache Crunch是FlumeJava的实现,为不太方便直接开发和使用的MapReduce程序,开发一套MR流水线,具备数据表示模型,提供基础原语和高级原语,根据底层执行引擎对MR Job的执行进行优化。从分布式计算角度看,Crunch提供的许多计算原语,可以在Spark、Hive、Pig等地方找到很多相似之处,而本身的数据读写,序列化处理,分组、排序、聚合的实现,类似MapReduce各阶段的拆分都可以在Hadoop里找到影子。

Apache DataFu

Apache DataFu 项目是一个用于 Hadoop 的类库集合,早期的定位是作为 Pig 项目的用户定义函数集(UDF )。相对于更加通用的 UDF 集如 Piggybank ,Datafu 更侧重于数据挖掘和统计 类的函数,例如分位数计算和取样方法。Hourglass 是用于 MapReduce 的类库,为作业提供了处理增量数据的能力。其处理方式一般是在 HDFS 中保存上一个作业的状态,并用它来处理新的输入。现在这两个项目都成为孵化器的一部分。

Apache Drill

Apache Drill是一个开源的,对于Hadoop和NoSQL低延迟的SQL查询引擎。Apache Drill 实现了 Google's Dremel.那么什么是Google's Dremel?网络中一段描述:Dremel 是Google 的"交互式"数据分析系统。可以组建成规模上千的集群,处理PB级别的数据。MapReduce处理一个数据,需要分钟级的时间。作为MapReduce的发起人,Google开发了Dremel将处理时间缩短到秒级,作为MapReduce的有力补充。Dremel作为Google BigQuery的report引擎,获得了很大的成功。

Apache Edgent 

Apache Edgent 是一种编程模型和具有微内核风格的运行时,可嵌入到网关和小型的物联网设备中。Apache Edgent 能用于对来自器材、车辆、系统、应用、设备和传感器(例如树莓派或智能手机)的连续数据流进行实时分析。通过与集中式分析系统协同工作,Apache Edgent 可在整个物联网生态系统中提供高效、及时的分析:从中心到边缘。Edgent 是面向边缘设备的开源编程模型和运行时,可以分析设备上的数据和事件。在边缘端进行分析有以下好处:

减少传输到分析服务器的数据量

减少存储的数据量

Apache Falcon

Apache Falcon是一个开源的hadoop数据生命周期管理框架, 它提供了数据源 (Feed) 的管理服务,如生命周期管理,备份,存档到云等,通过Web UI可以很容易地配置这些预定义的策略, 能够大大简化hadoop集群的数据流管理。

Apache Zeppelin

Apache Zeppelin提供了web版的类似ipython的notebook,用于做数据分析和可视化。背后可以接入不同的数据处理引擎,包括spark, hive, tajo等,原生支持scala, java, shell, markdown等。它的整体展现和使用形式和Databricks Cloud是一样的,就是来自于当时的demo。基于web的笔记本,支持交互式数据分析。你可以用SQL、Scala等做出数据驱动的、交互、协作的文档。(类似于ipython notebook,可以直接在浏览器中写代码、笔记并共享)

技术开发 编程 技术框架 技术发展