如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
目录TOC\o"1-3"\h\z\uHYPERLINK\l"_Toc373956156"第1章Hadoop简介PAGEREF_Toc373956156\h1PAGEREF_Toc373956156\hHYPERLINK\l"_Toc373956157"第2章初始HadoopPAGEREF_Toc373956157\h3PAGEREF_Toc373956157\hHYPERLINK\l"_Toc373956158"的构造模块PAGEREF_Toc373956158\h3PAGEREF_Toc373956158\hHYPERLINK\l"_Toc373956159"为Hadoop集群安装SSHPAGEREF_Toc373956159\h5PAGEREF_Toc373956159\hHYPERLINK\l"_Toc373956160"运行HadoopPAGEREF_Toc373956160\h7PAGEREF_Toc373956160\hHYPERLINK\l"_Toc373956161"基于Web的集群用户界面PAGEREF_Toc373956161\h10PAGEREF_Toc373956161\hHYPERLINK\l"_Toc373956162"第3章Hadoop组件PAGEREF_Toc373956162\h13PAGEREF_Toc373956162\hHYPERLINK\l"_Toc373956163"3.1HDFS文件操作PAGEREF_Toc373956163\h13PAGEREF_Toc373956163\h本章内容:编写可扩展、分布式的数据密集型程序的基础知识理解Hadoop和MapReduce编写和运行一个基本的MapReduce程序Hadoop是云计算分布式开源框架,是用Java语言来实现的,在由大量计算机组成的集群中运行海量数据的分布式计算。Hadoop强调程序向数据移动SQL数据库和Hadoop比较Hadoop比SQL提供一种更为通用的模式SQL:针对结构化的数据Hadoop:最初许多应用针对的是非结构化数据Hadoop:向外扩展代替向上扩展用键/值对代替关系表大型数据集往往是非结构化或半结构化的。Hadoop使用键/值对作为基本数据单元,可足够灵活地处理较少结构化的数据类型。在Hadoop中,数据的来源可以是任何形式的,但最终都会转换成键/值对的形式进行处理。键与值通常为整数或字符串,但也可以是可忽略的假值,或者是复杂的对象类型。用函数式编程(MapReduce)代替声明式查询(SQL)在MapReduce中,实际的数据处理步骤是由程序员指定的,而SQL是非过程化的语言。用离线批量处理代替在线处理Hadoop是专为离线处理和大规模数据分析而设计的,它并不适合那种对几个记录随机读写的在线事务处理模式。Hadoop最适合一次写入、多次读取的数据存储需求。在这方面它就像SQL世界中的数据仓库。理解MapReduceMapReduce也是一种数据处理模型,它最大的优点是容易扩展到多个计算节点上处理数据。在MapReduce模型中,数据处理原语被称为mapper和reducer。分解一个数据处理应用为mapper和reducer有时是很繁琐的,但是一旦以MapReduce的形式写好一个应用程序,仅需修改配置就可以将它扩展到集群上运行。正是这种简单的可扩展性使得MapReduce模型吸引了众多程序员。当你用MapReduce模型来编写应用程序时,Hadoop将替你管理所有与可扩展性相关的底层问题。相同程序在MapReduce中的扩展Mapper作用:将输入进行过滤与转换Reducer作用:将mapper的输出进行聚合MapReduce使用列表和键/值对作为其主要的数据原语。键与值通常为整数或字符串,但也可以是可忽略的假值,或者是复杂的对象类型。在MapReduce框架中编写应用程序就是定制化mapper和reducer的过程。map和reduce函数必须遵循以下对键和值类型的约束:应用的输入必须组织为一个键/值对的列表list(<k1,v1>)。输入格式可能看起来是不受约束的,但在实际中它非常简洁。用于处理多个文件的输入格式通常为list(<Stringfilename,Stringfile_content>)。用于处理日志文件这种大文件的输入格式为list(<Integerline_number,Stringlog_event>)。含有键/值对的列表被拆分,进而通过调用