走进大数据开源项目
Posted 大数据社区
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了走进大数据开源项目相关的知识,希望对你有一定的参考价值。
最近大数据领域最火的消息莫过于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 Cassandra,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,应该说有了这些分布式基础组件的支持,构建新的分布式应用变得方便很多。
在大数据的海洋中,如何更直观对数据进行探索和可视化也是目前最值得关注的方向,这类开源项目包括D3,Chart.js, Arbor, DC.js, Sigma.js, Zeppelin等,熟悉前端技术的攻城师可以分分钟利用这些优秀的library将大数据直接以图表形式展示给人们。
以上是关于走进大数据开源项目的主要内容,如果未能解决你的问题,请参考以下文章