100steps/Blogs

Hadoop 家族介绍

joyking7 opened this issue · 2 comments

Hadoop 家族介绍

前言

自己从学习数据挖掘这个方向到现在也有几周,一开始上手权威指南这本书是挺难接受里面的内容,于是花了几天去知乎和 GitHub 上搜集了一些的资料,并且从 Conan 的 blog 上找到了一个比较好的学习路线,于是整理一下拿出来分享。自己也在继续学习,如果有错误请指出!

hadoopfamilyroadmap

Hadoop 家族中,常用的项目包括 Hadoop,Hive,Pig,HBase,Sqoop,Mahout,Zookeeper,Avro,Ambari,Chukwa,新增项目包括 YARN,Hcatalog,Oozie,Cassandra,Hama,Whirr,Flume,Bigtop,Crunch,Hue,Giraph等。

1. Hadoop 家族树

hadoopfamilysmall

虽然这样看起来 Hadoop 家族比较庞大,但是作为适应多种目标要求的工具,还是比较适合我们去学习的。

2. Hadoop 成员介绍

  • Apache Hadoop:是 Apache 开源组织的一个分布式计算开源框架,提供了一个分布式文件系统子项目(HDFS)和支持 MapReduce 分布式计算的软件架构。
  • Apache Hive:是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,通过类 SQL 语句快速实现简单的 MapReduce 统计,不必开发专门的 MapReduce 应用,十分适合数据仓库的统计分析。
  • Apache Pig:是一个基于 Hadoop 的大规模数据分析工具,它提供的 SQL-LIKE 语言叫 Pig Latin ,该语言的编译器会把类 SQL 的数据分析请求转换为一系列经过优化处理的 MapReduce 运算。
  • Apache HBase:是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用 HBase 技术可在廉价 PC Server 上搭建起大规模结构化存储集群。
  • Apache Sqoop: 是一个用来将 Hadoop 和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(MySQL ,Oracle ,Postgres等)中的数据导进到 Hadoop 的 HDFS 中,也可以将HDFS的数据导进到关系型数据库中。
  • Apache Zookeeper:是一个为分布式应用所设计的分布的、开源的协调服务,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,简化分布式应用协调及其管理的难度,提供高性能的分布式服务。
  • Apache Mahout:是基于 Hadoop 的机器学习和数据挖掘的一个分布式框架。 Mahou 用 MapReduce 实现了部分数据挖掘算法,解决了并行挖掘的问题。
  • Apache Cassandra:是一套开源分布式 NoSQL 数据库系统。它最初由 Facebook 开发,用于储存简单格式数据,集 Google BigTable 的数据模型与 Amazon Dynamo 的完全分布式的架构于一身。
  • Apache Avro:是一个数据序列化系统,设计用于支持数据密集型,大批量数据交换的应用。 Avro 是新的数据序列化格式与传输工具,将逐步取代 Hadoop 原有的 IPC 机制。
  • Apache Ambari:是一种基于 Web 的工具,支持 Hadoop 集群的供应、管理和监控。
  • Apache Chukwa:是一个开源的用于监控大型分布式系统的数据收集系统,它可以将各种各样类型的数据收集成适合 Hadoop 处理的文件保存在 HDFS 中供 Hadoop 进行各种 MapReduce 操作。
  • Apache Hama:是一个基于 HDFS 的 BSP(Bulk Synchronous Parallel)并行计算框架, Hama 可用于包括图、矩阵和网络算法在内的大规模、大数据计算。
  • Apache Flume:是一个分布的、可靠的、高可用的海量日志聚合的系统,可用于日志数据收集,日志数据处理,日志数据传输。
  • Apache Giraph:是一个可伸缩的分布式迭代图处理系统, 基于 Hadoop 平台,灵感来自 BSP (bulk synchronous parallel) 和 Google 的 Pregel。
  • Apache Oozie:是一个工作流引擎服务器, 用于管理和协调运行在 Hadoop 平台上(HDFS、Pig和MapReduce)的任务。
  • Apache Crunch:是基于 Google 的 FlumeJava 库编写的 Java 库,用于创建MapReduce程序。与 Hive,Pig类似,Crunch 提供了用于实现如连接数据、执行聚合和排序记录等常见任务的模式库。
  • Apache Whirr:是一套运行于云服务的类库(包括 Hadoop ),可提供高度的互补性。Whirr 支持 Amazon EC2 和 Rackspace 的服务。
  • Apache Bigtop:是一个对 Hadoop 及其周边生态进行打包,分发和测试的工具。
  • Apache HCatalog:是基于 Hadoop 的数据表和存储管理,实现**的元数据和模式管理,跨越 Hadoop 和 RDBMS,利用 Pig 和 Hive 提供关系视图。
  • Cloudera Hue:是一个基于 WEB 的监控和管理系统,实现对 HDFS,MapReduce/YARN, HBase, Hive, Pig的 web 化操作和管理。

3.关于如何学习

这是一个老生常谈的问题,网上一抓一大把的教程,书店一抓一大把的书,难道真的撸完所有教程和书就入门了吗?作为一个新入坑的少年,自己这几周也算是走了一阵的弯路,毕竟身边没有很好的指导,而且数据挖掘这个行业虽然看似很热门很潜力,也是在黑暗中摸索的。

尽量去官网看文档,英文不是问题,毕竟它也只是一种工具,我们在学习的也是一类工具,对于一个工具学习的时间跨度可以很长,但是入门的话,推荐学几个自己喜欢或者与自己处理的数据相关的工具,项目导向要比纯学习向上手快得多。

接下来开始继续学习,关于具体的学习情况会持续更新。

注:部分内容出处来自 http://blog.fens.me/hadoop-family-roadmap/

@100steps/bbter 简短的介绍,因为 Hadoop 的衍生工具很多,道阻且长。

hadoop家族太庞大,确实学习的时候走了些弯路。不过起码我会勾搭实验室的师姐进行指点。稍后如果大家有兴趣,我也可以简单介绍下hadoop开发的基础知识。
不过有一点极度赞同:谁推荐从《hadoop权威指南》入门的!!难懂死了。。。(摔~)