What Why How Hadoop

来源:互联网 发布:java继承例子代码 编辑:程序博客网 时间:2024/04/30 02:41

What

其实每学习一门新东西的时候,我们都在问自己,这东西是什么,为什么要学习,它能被用来做什么。不知道你有没有注意到:网上一些国外著名大学的网络课程,往往第一个视频里,无论是专家还是教授都在讲为啥要学习这东西,而且不厌其烦的讲很长时间,这或许就是中国的教育方式和国外的不同,老外可能更关心why,而我们更关心how to do。废话不多少了……

Hadoop的官方文档很直白的告诉了我们what,why,how hadoop:

The Apache™ Hadoop™ project develops open-source software for reliable, scalable, distributed computing.

The Apache Hadoop software library is a framework that allows for the distributed processing of large data sets across clusters of computers using a simple programming model. It is designed to scale up from single servers to thousands of machines, each offering local computation and storage. Rather than rely on hardware to deliver high-avaiability, the library itself is designed to detect and handle failures at the application layer, so delivering a highly-availabile service on top of a cluster of computers, each of which may be prone to failures.

The project includes these subprojects:

  • Hadoop Common: The common utilities that support the other Hadoop subprojects.
  • Hadoop Distributed File System (HDFS™): A distributed file system that provides high-throughput access to application data.
  • Hadoop MapReduce: A software framework for distributed processing of large data sets on compute clusters.
用学语文的方式学习hadoop,首先它是一个project,什么样的project,开源的,可靠的,可扩展的,支持分布式计算的,其次,它是一个框架,这个框架允许你使用很简单的编程模型来处理海量数据,同时它被设计成能从一台服务器扩展到上千台机器,每台机器都能提供本地计算和存储服务。最后一句话比较拗口,我的理解是:hadoop处理问题失败了,在应用层上就能监测和处理,而单纯在硬件上的投入,处理问题出错了,你只能再升级或加大硬件投入来提供性能了,当然集群上的每台机器更自豪啰...

Hadoop目前包含了三方面的内容,所以,目前的主要学习内容也围绕这三个方面:

1.公共组件——暂且理解问支持Hadoop的工具

2.HDFS——Hadoop的分布式文件系统(分布式文件系统有很多,比如Sun,噢,对不起现在叫Oracle的NFS,以及其他AFS等)

3.MapReduce——核心(为啥这样说,因为MapReduce不是Hadoop的,这是Google的一篇论文引发的海量数据处理革命,正是有了MapReduce计算模型的实现,Hadoop才真正站在海量数据处理的最前沿)

Why

为什么要学习Hadoop,三个字:感兴趣,兴趣是程序员“不畏浮云遮望眼,只缘身在最高层”的精神支柱。

How

如何学习Hadoop?其实这个问题,Hadoop已经告诉我们了,就先弄明白上面的这三部分,Debug Hadoop的源代码, 仔细阅读每一个类都干什么,分析为什么要这样做。当初学习java就这么搞,不懂的地方可以先暂时跳过,分析源码是一件枯燥的事情,但也是一件有趣的事情。