走进大数据开源项目 [作者:翁岩青]

来源:互联网 发布:java acl访问控制列表 编辑:程序博客网 时间:2024/05/21 17:12

最近大数据域最火的消息莫于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开源版本,类似的还有Apache CassandraHypertableFacebook HydraBase

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

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

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

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

分布式服务及数据处理领域,主要包括数据获取,日志处理,消息服务等分布式编程必要的组件。主要有Apache ZookeeperApache FlumeApache KafkaApache SqoopCloudera MorphlinesFacebook ScribeLogstash,Linkedin Gobblin等。

在分布式存储、计算、数据处理以及各类基础组件之上,各类分布式应用层出不穷,比如机器学习应用相关的Apache MahoutCloudera OryxSpark MLlibMLbase,搜索应用相关的Apache Solr,ElasticSearchHBase Coprocessor, Facebook Unicorn,应该说有了这些分布式基础组件的支持,构建新的分布式应用变得方便很多。

在大数据的海洋中,如何更直观对数据行探索和可化也是目前最得关注的方向,这类开源项目包括D3,Chart.js, Arbor, DC.js, Sigma.js, Zeppelin等,熟悉前端技术的攻城师可以分分钟利用这些优秀的library将大数据直接以图表形式展示给人们。

1 0
原创粉丝点击