让我们一起走进大数据开源项目--第1节

最近大数据领域最火的消息莫过于Pivotal兑现了其年初对于开源其大数据核心产品GemFire,HAWQ,Greemplum DB的承诺 。这个消息也让Pivotal在国内技术社区风风光光的火了一把,程序猿们可以看到真正的企业级数据仓库是如何设计和实现的。

与此同时,开源社区中也存在很多类似的优秀大数据相关项目,涵盖了分布式数据存储与计算,数据处理,数据仓库,机器学习等与数据有关的方方面面,下面就让我们看看开源社区中的这些大数据项目典型代表。

首先,说起大数据开源项目,第一个必须要提的当然就是Apache Hadoop下的三个子项目Apache HDFS,Apache MapReduce,Apache YARN,这基本上可以认为是大数据处理的国际标准,是整个大数据生态系统的基石。

分布式存储

在分布式存储领域,可以按存储模型分为文件系统,KV存储,Columnar存储,Document存储,Graph存储。

分布式文件系统是整个分布式存储的最底层,鼻祖正是Google大名鼎鼎的GFS。Apache HDFS是GFS的开源版本,应该不用再介绍了。RedHat GlusterFS作为Linux社区老大的产品,也是值得一看的。

KV存储是最简单的存储模型,比较典型的系统包括Amazon DynamoDB, Memcached,Redis,BerkeleyDB, Google LevelDB

Columnar存储是KV存储的直接扩展,Value对应Column family或是Column Map。这类系统最基本的是Apache HBase,Google早期三架马车之一BigTable开源版本,类似的还有ApacheCassandra,Hypertable, Facebook HydraBase。

Document存储主要有MongoDB, Facebook Apollo等。Graph存储系统大部分基于Google的Pregel,主要开源实现有:Apache Giraph,Apache Spark Bagel,Phoebus。另外Google也开源了自家的Graph数据库Cayley。

分布式计算

分布式计算方面,主要体现在各种计算框架,数据处理模型,典型代表有Apache MapReduce,最经典的大数据处理引擎。Apache Spark,目前最火的大数据处理引擎,速度相比MapReduce有数量级的提升,基于Spark也构建了一整套生态系统,SQL,Streaming,Machine Learning,Graph。其他的项目包括Apache Storm,Apache Pig,Apache Tez,Apache S4, OpenMPI等。

分布式任务调度

分布式任务调度与集群管理,这类系统主要实现分布式任务管理,资源调度,集群管理等基础任务,包括Apache YARN,Apache Aurora,Apache Falcon,Apache Oozie,Linkedin Azkaban,Apache Ambari,Apache Bigtop, Apache Mesos等。

SQL与SQL-like处理,这类系统正是Pivotal开源的主要产品形态,基本上是在分布式系统上搭建SQL查询引擎,有传统的MPP SQL数据库,SQL-on-Hadoop,也有SQL-like类的大数据查询系统。包括Greenplum DB,Apache Hive, Apache HAWQ,Cloudera Impala,SparkSQL,Apache Phoenix,Apache Drill, SharkSQL,Facebook PrestoDB,CockroachDB等。这类系统现今也越来越多向云端发展,包括Amazon Redshift,Google BigQuery,Snowflake等,遗憾的是这类云端产品由于安全性问题大多没有选择开源。

分布式服务及数据处理(包括各种日志处理)

分布式服务及数据处理领域,主要包括数据获取,日志处理,消息服务等分布式编程必要的组件。主要有Apache Zookeeper, Apache Flume, Apache Kafka, Apache Sqoop, Cloudera Morphlines, Facebook Scribe, Logstash,Linkedin Gobblin等。

**分布式服务之上服务

在分布式存储、计算、数据处理以及各类基础组件之上,各类分布式应用层出不穷,比如机器学习应用相关**的Apache Mahout, Cloudera Oryx, Spark MLlib, MLbase,搜索应用相关的Apache Solr,ElasticSearch,HBase Coprocessor, Facebook Unicorn,应该说有了这些分布式基础组件的支持,构建新的分布式应用变得方便很多。
本节就到这里,有兴趣的可以看我的下一篇文章。

很多人都知道我有大数据培训资料,都天真的以为我有全套的大数据开发、hadoop、spark等视

频学习资料。我想说你们是对的,我的确有大数据开发、hadoop、spark的全套视频资料。
如果你对大数据开发感兴趣可以加口群领取免费学习资料: 763835121

猜你喜欢

转载自blog.51cto.com/11275216/2115232