说到大数据,不得不提Hadoop系统,这个系统也已经超过十年的历史了。程小狮曾以为大数据就是Hadoop系统,请原谅我的too young too simple.那么,Hadoop到底是什么呢?为此,程小狮也查询了下wiki百科以及百度百科,给大家普及下。
Wiki百科中的定义:
Apache Hadoop is an open-source software framework for distributed storage and distributed processing of very large data sets on computer clusters built from commodity hardware. All the modules in Hadoop are designed with a fundamental assumption that hardware failures are common and should be automatically handled by the framework.
百度百科中的解释:
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
从上面,大家可以看出Hadoop是一个分布式的系统处理框架,而且还是开源的。当然它也具备谷歌的血统:它最先由 Google Lab 开发的 Map/Reduce 和 Google File System(GFS) 的启发,后由 Apache Software Foundation 公司于 2005 年秋天作为Lucene的子项目Nutch的一部分正式引入。那么最最关键的是,到目前hadoop的生态圈已足够成熟,学习资料足够多,而且国内大多数企业也在用apache开源的hadoop.所以盆友们,跟程小狮一起开整吧!
为了帮助大家进一步了解hadoop,程小狮费了九牛二虎之力查询了一些资料,与大家分享一些学习hadoop相关资源,内容涵盖了Hadoop中常见的库与工具、存储方式、数据库,以及相关的书籍、网站等资源。
好了,不多(fei)说(hua)。直接上干货。
Hadoop
- Apache Tez:它是一个针对Hadoop数据处理应用程序的新分布式执行框架,该框架基于YARN;
- GIS Tools for Hadoop :用于Hadoop框架的大数据空间分析;
- hdfs-du:Hadoop分布式文件系统(HDFS)的交互可视化;
- Genie:Genie提供REST-ful API,以便运行Hadoop、Hive和Pig jobs,还管理多个Hadoop资源,并在它们之间进行作业提交;
- Apache Kylin:最初来自eBay公司的开源分布式分析引擎,能提供Hadoop之上的SQL查询接口及多维分析(OLAP),以支持超大规模数据集;
- Apache Ignite:分布式内存平台。
YARN
- Apache Slider:Apache Slider是Apache软件基金会的孵化项目,旨在能够轻松地实现现有应用程序到YARN集群的部署;
- Apache Twill:Apache Twill是Apache Hadoop® YARN的抽象层,降低了开发分布式应用程序的复杂度,让开发者更专注于自己的应用逻辑;
NoSQL
下一代数据库大多定位于以下几点:非关系型、分布式、开放源码和横向扩展。
- Apache HBase:Apache HBase是一个高性能、面向列、可伸缩的开源分布式NoSQL数据库,它是Google Bigtable的开源实现。
- Apache Phoenix:Hbase的SQL驱动,支持辅助索引;
- Hannibal:用于监测和维护HBase 集群的工具;
- Haeinsa :用于HBase的线性可扩展多行多表交易库;
- hindex:Hbase的辅助索引;
Hadoop中的SQL
- Apache Hive:Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。
- Pivotal HAWQ:Hadoop上的并行数据库;
- Presto:用于大数据的分布式SQL查询引擎,该查询引擎由Facebook开发,现已开源;
- Apache Tajo:Apache Hadoop的数据仓库系统;
工作流、生命周期及管理
- Apache Oozie:一个工作流引擎服务器,用于运行Hadoop Map/Reduce和Pig 任务工作流。同时Oozie还是一个Java Web程序,运行在Java Servlet容器中,如Tomcat.
- Apache Falcon:一个数据管理与处理平台;
- AirFlow:AirFlow是以编程方式建立、调度和监控数据管道的平台;
数据提取及整合
- Apache Flume:Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。
- Apache Sqoop:Sqoop主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如:MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
- Apache Kafka:一个分布式的、分区的、多复本的日志提交服务。它通过一种独一无二的设计提供了一个消息系统的功能。
- Gobblin from LinkedIn:Hadoop的通用数据提取框架;
DSL
- Apache Pig:一个基于Hadoop的大规模数据分析平台,它提供的SQL-LIKE语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。Pig为复杂的海量数据并行计算提供了一个简单的操作和编程接口。
- Apache DataFu:Hadoop中用于处理大规模数据的库的集合;
- vahara:基于Apache Pig的机器学习和自然语言处理;
- packetpig:用于开源大数据安全性分析;
- Lipstick:Pig工作流程可视化工具;A(pache)的Lipstick简介;
库和工具
- Hue:用Apache Hadoop分析数据的Web界面;
- Apache Zeppelin:基于Web的笔记,可进行交互式数据分析;
- Jumbune:Jumbune是为分析Hadoop集群和MapReduce作业而构建的开源产品;
- Apache Avro:Apache Avro是一个数据序列化系统;
- Elephant Bird:Twitter中LZO、缓冲协议相关的Hadoop、Pig、Hive和HBase代码的集合;
资源
网站
一些学习Hadoop有用的网站以及技术博文。
- Hadoop周刊
- Hadoop生态系统表
- Apache Hadoop YARN简介
- Apache Hadoop YARN——背景和概述
- 你想了解却不敢询问的Hadoop知识
- Apache Hive的10个最佳实践
- AWS大数据博客
书籍