Hadoop是最著名使用最广泛的分布式大数据处理框架,它是用Java开发的。

这本书有一个明确的目标:只要有一台能上网的计算机,就可以让读者在最短的时间内,学会Hadoop的初级开发。所以,这本书只讲干货,也就是必须要知道的Hadoop的最核心知识点,包括如何搭建Hadoop,如何写代码,如何查API。对于更多细节问题,书后会列一个书目给大家参考,这些书已经讲得很好了,不需要在这里饶舌浪费时间。

这本书对读者的预要求很少:懂一点点Linux,懂一点点Java编程。“懂一点点Linux”是指,假如有一台装了Linux操作系统的计算机,能做到开机,输入密码,进入图形界面,打开命令终端,就可以了。“懂一点点Java编程”是指,在Linux上,用记事本写一个Java的HelloWorld程序,然后把它编译出来,执行一下,就可以了。这个预要求非常低,接近于零,所以这本书叫“从零开始学习Hadoop”。Hadoop是用Java开发的,它通过Streaming方式支持其他语言,诸如Python,C++,Ruby,但如果想真正理解Hadoop,必须从Java开始,用其他语言以Streaming方式学Hadoop是一条不归路,这是笔者用一个月时间得来的教训。

“只要有一台能上网的计算机”,Hadoop的伪分布式运行模式,可以在一台电脑上运行Hadoop的全部功能。在伪分布式下编写和运行的代码,不作任何修改便能运行在Hadoop集群上,这是学习Hadoop的最方便的优点之一。

“最短的时间”,这是一个有点长的话题。学习一项技能,有很多种途径。最快的途径找个高手教,高手会说看哪些书,从哪里做一下,哪些地方注意不要犯错,哪些地方是不需要的不要在上面浪费时间,哪些地方很关键要多做做将来会很有用。只要没有出现诸如高手数量不多,或者高手很忙,或者高手是同事但职位只比你高一点点—教会你对他其实没什么好处的这些情况之外,这个途径是最好的。

另外一个途径是报一些培训班学习,费用相对高一些。

性价比最高的途径是自学,如果自学能力比较强,从网上找相关的电子书教学视频官方教程学习,笔者个人比较推崇这种方式,这种方式可以很好地锻炼学习能力。能力是一得永得的,将来学习其他技能可以举一反三,缺点是比较耗时,自学的过程其实很大程度上是试错的过程。如果技术比较复杂,而且工作中很快要用到,或者下个星期就要面试笔试,那肯定是妥妥地来不及的。

如何在最短的时间内解决Hadoop入门问题呢?理性的方式,是从流程和细节上解决。1898年,科学管理之父泰勒做了一个铁块搬运实验。当时,工人们每天平均搬运12~13吨铁块。泰勒的实验方式是对搬运过程计时,分析不同搬运方式的影响,分析休息时间和劳动时间的搭配,最终可以让工人在不太累的情况下,每天搬运47吨铁块,效率提高到近4倍。

事实上,可以用同样的方式解决学习问题。比如说,请一个对Hadoop一无所知的小白同学自学Hadoop,然后要求他记下每天学了哪些内容,遇到什么问题,是怎么解决的,分别花了多少时间,有哪些是必须的,有哪些后来验证是弯路,哪些可以省略。待到他学完了,根据这个学习记录整理出一条快捷之路,避开没用的地方,简化过于复杂的地方,调整到合理的次序,于是就得到一个“最短的时间”学习方案。这本书就是这么产生的,而且是真简化。

“做一遍”是最佳的快速学习方式。比如说,学习C语言编程,如果学习方式是看书,读一遍乃至读十遍,不写代码,不会在大脑留下任何痕迹。如果将书中的例题代码原样输入编译执行,理解会好很多。如果不但调通了例题,而且将书里的大部分习题独立做出来,会觉得自己对C语言很熟悉。如果写了一个有质量的五千到一万行的项目,就觉得自己真的可以用C语言做工作。所以说,做一遍是最好的学习方式。

笔者见过一些高效的人是以反其道而行之的方式学习的。当他们需要用到一种新技术的时候,就找一本相关的书,看一下目录,再看一下每章的简介,大略看看范例。然后,根据范例立刻写代码,需要什么功能,就到书里和API里找,如果遇到Bug,在Google上检索一下。这种方式会很快做完功能,同时也就学会这个技术。如果从头开始看书,一点一点做例题做习题,对他们来说太慢了,时间成本太高,很不划算。

还有另外一种方式,笔者将它称之为吉祥物大师法(MasterMascot),注意,不要看成吉祥物大法师。一些有趣的技术公司会给自己设计吉祥物玩具。假如员工在工作中遇到解决不了的问题,按照“潜规则”,要先把这个问题讲给吉祥物玩具听,多数情况下讲完了自己就知道答案了,这就是吉祥物大师法。

这本书的例子,是按照“做一遍”的方式编写的。每个例子都是完整的,从目录和文件结构,到编译打包运行。这种完整很重要,可以大幅度减少试错,查询API,编译和调试的时间。熟悉这些范例,先手工输入和编译,然后再合上书,自己从零开始做一遍,对着代码找感觉和体会。

尤其非常重要的是,要想象如果自己是Hadoop的作者,会怎么设计Hadoop,用这种眼光审视Hadoop,会突然之间“开悟”,原来如此。这种“开悟”,要自己走过一遍,想过一遍,做过一遍,才会达到。一旦“开悟”了,会信心满满,应对这个体系架构的诸多问题,会漂亮地解决未知问题,就像厨师做一道好菜,像浪子泡MM。这种书有点像武侠小说里金世遗练的邪派功夫,简单,见效快,但见效之后要补上一些细节,免得走火入魔。所谓走火入魔就是觉得Hadoop如此简单,没什么搞头,其实Hadoop真的是很有搞头。

如果你对Java很熟悉,对Linux很熟悉,这本书对你来说太简单了,只需要一个下午就能搞定。Hadoop很大,但大部分东西都是在Linux出现过。你只需要安装它,然后手写一下例题,编译,运行,然后去看看Hadoop的API,就足够了。

未来将根据这本书发布一系列的视频,更为直观。本书的理念是让零起点的读者根据这本书能在一个星期或者更短的时间内学会Hadoop的初步技能,快速让大家安装Hadoop,快速跑一个Hadoop的Demo,快速了解Hadoop的运行流程,写一些初级的Hadoop的应用,以应对诸如快速开发,面试笔试,大数据课程实践等需求。如果需要掌握更多的Hadoop细节,请参考本书的推荐书目,或者关注“最短路径系列”的未来书目。

从零开始学习Hadoop--前言的更多相关文章

  1. 【从零开始学习Hadoop】--2.HDFS分布式文件系统

    1. 文件系统从头说2. Hadoop的文件系统3. 如何将文件复制到HDFS3.1 目录和文件结构3.2 FileCopy.java文件的源代码3.3 编译3.4打包3.5 运行3.6 检查结果 1 ...

  2. 【从零开始学习Hadoop】--1.Hadoop的安装

    第1章 Hadoop的安装1. 操作系统2. Hadoop的版本3. 下载Hadoop4. 安装Java JDK5. 安装hadoop6. 安装rsync和ssh7. 启动hadoop8. 测试had ...

  3. 大数据学习之旅2——从零开始搭hadoop完全分布式集群

    前言 本文从零开始搭hadoop完全分布式集群,大概花费了一天的时间边搭边写博客,一步一步完成完成集群配置,所以相信大家按照本文一步一步来完全可以搭建成功.需要注意的是本文限于篇幅和时间的限制,也是为 ...

  4. 从零开始学习jQuery (五) 事件与事件对象

    本系列文章导航 从零开始学习jQuery (五) 事件与事件对象 一.摘要 事件是脚本编程的灵魂. 所以本章内容也是jQuery学习的重点. 本文将对jQuery中的事件处理以及事件对象进行详细的讲解 ...

  5. 从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式

    本系列文章导航 从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式 一.摘要 本篇文章讲解如何使用jQuery获取和操作元素的属性和CSS样式. 其中DOM属性和元素属性的区分值得 ...

  6. 从零开始学习jQuery (三) 管理jQuery包装集

    本系列文章导航 从零开始学习jQuery (三) 管理jQuery包装集 一.摘要 在使用jQuery选择器获取到jQuery包装集后, 我们需要对其进行操作. 本章首先讲解如何动态的创建元素, 接着 ...

  7. 从零开始学习jQuery (二) 万能的选择器

    本系列文章导航 从零开始学习jQuery (二) 万能的选择器 一.摘要 本章讲解jQuery最重要的选择器部分的知识. 有了jQuery的选择器我们几乎可以获取页面上任意的一个或一组对象, 可以明显 ...

  8. 从零开始学习jQuery (一) 入门篇

    本系列文章导航 从零开始学习jQuery (一) 入门篇 一.摘要 本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案,  即使你会使用jQuery也能在阅读中发现些 ...

  9. 从零开始学习jQuery(转)

    本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery ( ...

随机推荐

  1. TCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节

    1.静态IP选路 1.1.一个简单的路由表 选路是IP层最重要的一个功能之一.前面的部分已经简单的讲过路由器是通过何种规则来根据IP数据包的IP地址来选择路由.这里就不重复了.首先来看看一个简单的系统 ...

  2. .NET Remoting

    .NET Remoting   .NET Remoting是微软早期的分布式通信技术,虽然微软后来通过WCF通用基础通信框架整合掉了,但是通过回顾学习Remoting,反过来学习理解WCF也是很有帮助 ...

  3. Keep the Customer Satisfied

    题意: n个订单,每个订单有完成需要的天数,和限制的天数,求最多能完成多少订单 分析: 先按限制日期升序排列,若当前订单不能完成,和上面已选中的订单中需要天数中最大的比较,若比它小,则替换他. #in ...

  4. 微信多媒体上传图片,创建卡券上传 LOGO

    //*****************************************多媒体上传图片 begin******************************************** ...

  5. SQL你必须知道的-函数及类型转换

    use MySchoolTwo    --ISNULL(expression,value) :如果 expression不为空则返回 expression ,否则返回 value.    select ...

  6. C#调用C++导出类(转)

    由于使用别人的Dll,导出的是一个实体类,在C#里封送很难,百度下,有个朋友回复一篇英文的,虽然不一定使用,但可以作为一个知识点,现把原文贴下: c#调用C++写的dll导出类,包含继承,重载等详细介 ...

  7. 多校1005 HDU5785 Interesting (manacher)

    // 多校1005 HDU5785 Interesting // 题意:给你一个串,求相邻两个回文串左边端点*右边端点的和 // 思路:马拉车算出最长回文半径,求一个前缀和,既得到每个点对答案的贡献. ...

  8. MFC使用ShowWindow(SW_MAXIMIZE)任务栏消失的处理

    ShowWindow(SW_SHOWMAXIMIZED);//窗口最大化 问题:在写程序时,如果包含了标题栏,但是没有包含最大化按钮或者最小话按钮. 那么人工用ShowWindow(SW_MAXIMI ...

  9. mysql 错误解决

    1. Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE ...

  10. poj 3180 The Cow Prom(强联通分量)

    http://poj.org/problem?id=3180 The Cow Prom Time Limit: 1000MS   Memory Limit: 65536K Total Submissi ...