干货!Hadoop学习资源合辑

作者:IT程序狮
原文地址:http://www.jianshu.com/p/4a23fa85d64e

说到大数据,不得不提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

  1. Apache Tez:它是一个针对Hadoop数据处理应用程序的新分布式执行框架,该框架基于YARN;
  2. GIS Tools for Hadoop :用于Hadoop框架的大数据空间分析;
  3. hdfs-du:Hadoop分布式文件系统(HDFS)的交互可视化;
  4. Genie:Genie提供REST-ful API,以便运行Hadoop、Hive和Pig jobs,还管理多个Hadoop资源,并在它们之间进行作业提交;
  5. Apache Kylin:最初来自eBay公司的开源分布式分析引擎,能提供Hadoop之上的SQL查询接口及多维分析(OLAP),以支持超大规模数据集;
  6. Apache Ignite:分布式内存平台。

YARN

  1. Apache Slider:Apache Slider是Apache软件基金会的孵化项目,旨在能够轻松地实现现有应用程序到YARN集群的部署;
  2. Apache Twill:Apache Twill是Apache Hadoop® YARN的抽象层,降低了开发分布式应用程序的复杂度,让开发者更专注于自己的应用逻辑;

NoSQL

下一代数据库大多定位于以下几点:非关系型、分布式、开放源码和横向扩展。

  1. Apache HBase:Apache HBase是一个高性能、面向列、可伸缩的开源分布式NoSQL数据库,它是Google Bigtable的开源实现。
  2. Apache Phoenix:Hbase的SQL驱动,支持辅助索引;
  3. Hannibal:用于监测和维护HBase 集群的工具;
  4. Haeinsa :用于HBase的线性可扩展多行多表交易库;
  5. hindex:Hbase的辅助索引;

Hadoop中的SQL

  1. Apache Hive:Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。
  2. Pivotal HAWQ:Hadoop上的并行数据库;
  3. Presto:用于大数据的分布式SQL查询引擎,该查询引擎由Facebook开发,现已开源;
  4. Apache Tajo:Apache Hadoop的数据仓库系统;

工作流、生命周期及管理

  1. Apache Oozie:一个工作流引擎服务器,用于运行Hadoop Map/Reduce和Pig 任务工作流。同时Oozie还是一个Java Web程序,运行在Java Servlet容器中,如Tomcat.
  2. Apache Falcon:一个数据管理与处理平台;
  3. AirFlow:AirFlow是以编程方式建立、调度和监控数据管道的平台;

数据提取及整合

  1. Apache Flume:Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。
  2. Apache Sqoop:Sqoop主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递,可以将一个关系型数据库(例如:MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
  3. Apache Kafka:一个分布式的、分区的、多复本的日志提交服务。它通过一种独一无二的设计提供了一个消息系统的功能。
  4. Gobblin from LinkedIn:Hadoop的通用数据提取框架;

DSL

  1. Apache Pig:一个基于Hadoop的大规模数据分析平台,它提供的SQL-LIKE语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。Pig为复杂的海量数据并行计算提供了一个简单的操作和编程接口。
  2. Apache DataFu:Hadoop中用于处理大规模数据的库的集合;
  3. vahara:基于Apache Pig的机器学习和自然语言处理;
  4. packetpig:用于开源大数据安全性分析;
  5. Lipstick:Pig工作流程可视化工具;A(pache)的Lipstick简介;

库和工具

  1. Hue:用Apache Hadoop分析数据的Web界面;
  2. Apache Zeppelin:基于Web的笔记,可进行交互式数据分析;
  3. Jumbune:Jumbune是为分析Hadoop集群和MapReduce作业而构建的开源产品;
  4. Apache Avro:Apache Avro是一个数据序列化系统;
  5. Elephant Bird:Twitter中LZO、缓冲协议相关的Hadoop、Pig、Hive和HBase代码的集合;

资源

网站

一些学习Hadoop有用的网站以及技术博文。

书籍

  1. Hadoop权威指南
  2. Apache Hadoop Yarn
  3. HBase权威指南
  4. Pig程序设计
  5. Hive程序设计
  6. Hadoop实践,第二版
点赞