Apache项目介绍¶
1 前言¶
Apache软件基金会(Apache Software Foundation)是一个为运作开源软件项目的团体提供支持的非营利性组织。
从最开始的开发者们技术交流的社区,到如今Apache已经成为全世界最大的开源软件基金会。其所孵化的各种开源软件已经服务于全球的各行各业,深入我们的生活之中。
本文将简单介绍一些(我)常见的Apache顶级项目。所谓顶级项目,是指经过孵化,满足一定质量要求的毕业项目。
2 Airflow¶
Apache Airflow是用Python编写的处理data pipeline工作流的调度和监控的平台。它是通过DAG(Directed acyclic graph,有向无环图)来构建工作流的。
通过可视化的网页,我们可以很直观地观察依赖关系,监控进度,管理任务等。
3 Arrow¶
Apache Arrow是一个跨平台的内存数据处理、交换的格式。
它采用了列式存储,并且由于不同平台使用同一个内存格式,从而减少系统间通信的开销。
使用Python读取大数据文件往往耗时较长。我们可以使用Pyarrow大大减少这一耗时。
Feather是Apache Arrow项目中包含的一种数据格式。我们可以将Dataframe存储成feather文件并读取它。
df.to_feather(path, compression, compression_level)
df = pd.read_feather('data.feather')
4 Avro¶
Apache Avro是一种与编程语言无关的序列化格式。它可以与Hadoop生态系统结合,Hive表定义也可以直接用Avro schema来声明。
5 Flink¶
Apache Flink是一个流处理框架。它以数据并行和流水线方式执行任意流数据程序。值得一提的是,2019年阿里巴巴以1亿美金收购了Flink。可见Flink很好的满足了阿里需要复杂实时计算的这一需求。
6 Hadoop¶
Apache Hadoop是一个分布式系统基础架构,是当今不可或缺的大数据生态之一。
Hadoop框架最核心的设计就是:HDFS(Hadoop Distributed FileSystem)和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。
7 Hive¶
Apache Hive是基于Hadoop的一个分布式的数据仓库系统。它可以将SQL语言翻译成MapReduce程序,丢给计算引擎去计算。Hive活跃在大大小小的互联网公司之中,也是每天陪伴我的老朋友。
8 HTTP Server¶
Apache HTTP Server是当今最最流行的网页服务器。不需要太多赘述。Apache基金会也是起源于这一项目。
9 Kafka¶
Apache Kafka是一种高吞吐量的分布式发布订阅消息系统,可以高效地处理动作流数据。
10 Pig¶
Apache Pig也是基于Hadoop生态,它提供的类SQL语言叫Pig Latin,它会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。我在日常工作中也经常用到。
11 Spark¶
Apache Spark又是一个大名鼎鼎的项目。它提供了一个统一的数据处理平台。它具有类Hadoop MapReduce的通用并行框架,但又有所优化。它包括Spark Core,Spark SQL,Spark Streaming,MLlib等。
12 Tez¶
Apache Tez通过允许Apache Hive和Apache Pig这样的项目运行复杂的DAG任务,构建了一个应用程序框架。
13 ZooKeeper¶
Apache ZooKeeper是用来管Hadoop(大象),Hive(蜜蜂),Pig(小猪)的动物管理员。它是一个分布式的、开源的程序协调服务,主要功能包括:配置管理、名字服务、分布式锁、集群管理。
14 小结¶
可以看到Apache基金会孵化了许许多多大名鼎鼎的项目,这些项目运用于各式各样的软件之中,服务于我们生活的方方面面。感谢这些开源大佬的贡献!