用 Hadoop 进行分布式数据处理,第 2 部分 进阶
- 格式:doc
- 大小:374.00 KB
- 文档页数:13
使用Hadoop进行分布式数据处理的基本步骤随着大数据时代的到来,数据处理变得越来越重要。
在处理海量数据时,传统的单机处理方式已经无法满足需求。
分布式数据处理技术应运而生,而Hadoop作为目前最流行的分布式数据处理框架之一,被广泛应用于各行各业。
本文将介绍使用Hadoop进行分布式数据处理的基本步骤。
1. 数据准备在使用Hadoop进行分布式数据处理之前,首先需要准备好要处理的数据。
这些数据可以是结构化的,也可以是半结构化或非结构化的。
数据可以来自各种来源,如数据库、文本文件、日志文件等。
在准备数据时,需要考虑数据的规模和格式,以便在后续的处理过程中能够顺利进行。
2. Hadoop环境搭建在开始使用Hadoop进行分布式数据处理之前,需要先搭建Hadoop的运行环境。
Hadoop是一个开源的分布式计算框架,可以在多台机器上进行并行计算。
在搭建Hadoop环境时,需要安装Hadoop的核心组件,如Hadoop Distributed File System(HDFS)和MapReduce。
同时,还需要配置Hadoop的相关参数,以适应实际的数据处理需求。
3. 数据上传在搭建好Hadoop环境后,需要将准备好的数据上传到Hadoop集群中。
可以使用Hadoop提供的命令行工具,如Hadoop命令行界面(Hadoop CLI)或Hadoop文件系统(Hadoop File System,HDFS),将数据上传到Hadoop集群的分布式文件系统中。
上传数据时,可以选择将数据分割成多个小文件,以便在后续的并行计算中更高效地处理。
4. 数据分析与处理一旦数据上传到Hadoop集群中,就可以开始进行数据分析与处理了。
Hadoop的核心组件MapReduce提供了一种分布式计算模型,可以将数据分成多个小任务,分配给集群中的不同节点进行并行计算。
在进行数据分析与处理时,可以根据实际需求编写MapReduce程序,定义数据的输入、输出和处理逻辑。
hadoop分布式实验总结Hadoop分布式实验总结一、实验目标本次实验的目标是深入理解Hadoop分布式文件系统(HDFS)和MapReduce计算模型,通过实际操作和案例分析,掌握Hadoop的基本原理和应用。
二、实验内容在本次实验中,我们主要完成了以下几个部分的内容:1. HDFS的基本操作:包括在HDFS中创建文件夹、上传和下载文件等。
2. MapReduce编程:编写Map和Reduce函数,实现对数据的处理和分析。
3. Hadoop集群搭建:配置Hadoop集群,了解节点间的通信和数据传输机制。
4. 性能优化:通过调整参数和优化配置,提高Hadoop集群的性能。
三、实验过程1. HDFS操作:首先,我们在本地机器上安装了Hadoop,并启动了HDFS。
然后,我们通过Hadoop命令行工具对HDFS进行了基本的操作,包括创建文件夹、上传和下载文件等。
在操作过程中,我们遇到了权限问题,通过修改配置文件解决了问题。
2. MapReduce编程:我们选择了一个经典的问题——单词计数作为案例,编写了Map和Reduce函数。
在编写过程中,我们了解了MapReduce的基本原理和编程模型,以及如何处理数据的分片和shuffle过程。
3. Hadoop集群搭建:我们在实验室的局域网内搭建了一个Hadoop集群,配置了各个节点之间的通信和数据传输。
在配置过程中,我们注意到了防火墙和网络通信的问题,通过调整防火墙规则和配置网络参数,解决了问题。
4. 性能优化:我们对Hadoop集群进行了性能优化,通过调整参数和优化配置,提高了集群的性能。
我们了解到了一些常用的优化方法,如调整数据块大小、优化网络参数等。
四、实验总结通过本次实验,我们深入了解了Hadoop分布式文件系统和MapReduce计算模型的基本原理和应用。
在实验过程中,我们遇到了一些问题,但通过查阅资料和互相讨论,最终解决了问题。
通过本次实验,我们不仅掌握了Hadoop的基本操作和编程技能,还提高了解决实际问题的能力。
Hadoop分布式⽂件系统(HDFS)详解HDFS简介:当数据集的⼤⼩超过⼀台独⽴物理计算机的存储能⼒时,就有必要对它进⾏分区 (partition)并存储到若⼲台单独的计算机上。
管理⽹络中跨多台计算机存储的⽂件系统成为分布式⽂件系统 (Distributed filesystem)。
该系统架构于⽹络之上,势必会引⼊⽹络编程的复杂性,因此分布式⽂件系统⽐普通磁盘⽂件系统更为复杂。
HDFS是基于流数据模式访问和处理超⼤⽂件的需求⽽开发的,它可以运⾏于廉价的商⽤服务器上。
总的来说,可以将 HDFS的主要特点概括为以下⼏点:(1 )处理超⼤⽂件这⾥的超⼤⽂件通常是指数百 MB、甚⾄数百TB ⼤⼩的⽂件。
⽬前在实际应⽤中, HDFS已经能⽤来存储管理PB(PeteBytes)级的数据了。
在 Yahoo!,Hadoop 集群也已经扩展到了 4000个节点。
(2 )流式地访问数据HDFS的设计建⽴在更多地响应“⼀次写⼊,多次读取”任务的基础之上。
这意味着⼀个数据集⼀旦由数据源⽣成,就会被复制分发到不同的存储节点中,然后响应各种各样的数据分析任务请求。
在多数情况下,分析任务都会涉及数据集中的⼤部分数据,也就是说,对HDFS 来说,请求读取整个数据集要⽐读取⼀条记录更加⾼效。
(3 )运⾏于廉价的商⽤机器集群上Hadoop设计对硬件需求⽐较低,只须运⾏在廉价的商⽤硬件集群上,⽽⽆须昂贵的⾼可⽤性机器上。
廉价的商⽤机也就意味着⼤型集群中出现节点故障情况的概率⾮常⾼。
这就要求在设计 HDFS时要充分考虑数据的可靠性、安全性及⾼可⽤性。
正是由于以上的种种考虑,我们会发现现在的 HDFS在处理⼀些特定问题时不但没有优势,⽽且有⼀定的局限性,主要表现在以下⼏个⽅⾯。
(1 )不适合低延迟数据访问如果要处理⼀些⽤户要求时间⽐较短的低延迟应⽤请求,则 HDFS不适合。
HDFS 是为了处理⼤型数据集分析任务的,主要是为达到⾼的数据吞吐量⽽设计的,这就可能要求以⾼延迟作为代价。
Hadoop平台上大数据处理的使用教程大数据处理已经成为当今企业分析和决策制定的关键领域。
Hadoop 作为一个开源的大数据处理平台,提供了一种可靠、可扩展且高效的方式来存储和处理大规模数据。
本教程将为您介绍如何在Hadoop平台上进行大数据处理,并给出详细的操作步骤和示例。
## 第一部分:Hadoop平台的安装和配置1. 下载Hadoop:从Hadoop官方网站获取最新的Hadoop二进制文件,并解压到本地文件夹。
2. 配置Hadoop环境:编辑Hadoop配置文件,设置必要的参数,如文件系统地址、数据节点和任务跟踪器等。
3. 启动Hadoop:通过命令行启动Hadoop集群,可以使用start-all.sh脚本来同时启动所有的Hadoop进程。
## 第二部分:Hadoop中的存储和数据管理1. 分布式文件系统(HDFS):使用Hadoop分布式文件系统来存储大规模数据。
学习如何创建、移动和删除文件,以及如何设置和管理文件的副本。
2. Hadoop YARN:了解Hadoop的资源管理系统,学习如何提交和管理应用程序,并了解如何配置YARN队列来优化任务调度。
3. 数据加载和导入:学习如何将数据加载到Hadoop集群中,可以通过命令行工具或使用Hadoop的数据导入工具,如Sqoop和Flume。
## 第三部分:Hadoop上的数据处理1. MapReduce:学习如何使用MapReduce编写分布式数据处理程序。
使用Java编写Map和Reduce函数,将任务提交到Hadoop集群,并了解如何监视任务的执行。
2. Pig:了解Pig语言,它是一种类似SQL的高级脚本语言,用于高效地进行数据分析和转换。
学习如何编写Pig脚本,并将其提交到Hadoop集群进行执行。
3. Hive:学习如何使用Hive进行数据查询和分析。
了解Hive的数据模型和查询语言(HiveQL),并编写HiveQL脚本来查询和处理数据。
利用Hadoop实现分布式数据处理的步骤与方法随着数据量的急剧增长和计算任务的复杂化,传统的数据处理方法已经无法满足当今大数据时代的需求。
分布式数据处理技术由此应运而生,它能够将庞大的数据集分解为多个小块,然后在多个计算节点上并行处理,提高数据处理的效率和可靠性。
Hadoop作为目前最流行的分布式数据处理框架之一,具备高可靠性、高扩展性以及良好的容错性,并且能够在廉价的硬件上运行。
下面将介绍使用Hadoop实现分布式数据处理的步骤与方法。
1. 数据准备在开始之前,首先需要准备需要处理的数据集。
这些数据可以是结构化数据、半结构化数据或非结构化数据。
在准备数据时,需要考虑数据的格式、大小以及数据的来源。
可以从本地文件系统、HDFS、数据库或云存储等不同的数据源中获取数据。
确保数据的完整性和正确性非常重要。
2. Hadoop集群搭建接下来,需要搭建一个Hadoop集群来支持分布式数据处理。
Hadoop集群由一个主节点(Master)和多个从节点(Slaves)组成。
主节点负责任务调度、资源管理和数据分发,而从节点负责实际的数据处理任务。
搭建Hadoop集群的过程包括设置主节点和从节点的配置文件、创建HDFS文件系统以及配置各个节点的网络设置等。
可以采用Apache Hadoop的标准发行版或者使用商业发行版(如Cloudera或Hortonworks)来搭建Hadoop集群。
3. 数据分析与计算一旦完成Hadoop集群的搭建,就可以开始进行数据处理了。
Hadoop通过MapReduce模型来实现数据的并行处理。
Map阶段将输入数据分割为若干个小的数据块,并将每个数据块交给不同的计算节点进行处理。
Reduce阶段将Map阶段输出的结果进行合并和汇总。
为了实现数据的分析与计算,需要编写Map和Reduce函数。
Map函数负责将输入数据转换成键值对(Key-Value Pair),而Reduce函数负责对Map函数输出的键值对进行操作。
hadoop mr的流程-回复Hadoop MapReduce(Hadoop MR)是Hadoop生态系统中的一种分布式计算框架,被广泛用于大数据处理和分析。
它的流程包括作业提交、输入分片、Map阶段、Shuffle阶段、Reduce阶段以及作业完成。
下面将详细介绍Hadoop MR的流程,以帮助读者更好地理解该框架的工作原理。
1. 作业提交:Hadoop MR作业的提交是指将用户编写的MapReduce程序提交给Hadoop集群进行处理。
用户可以使用Hadoop提供的命令行工具或编程接口来提交作业,并指定作业所需的输入和输出路径、任务的配置参数等信息。
2. 输入分片:在作业提交后,Hadoop会根据用户指定的输入路径将输入数据切分成多个分片。
这些分片可以是文件的一部分或者是文件的整个内容,每个分片可由一个或多个连续的数据块组成。
分片的大小通常由Hadoop配置的块大小决定,一般为64MB或128MB。
3. Map阶段:在Map阶段,Hadoop会为每个分片创建一个Map任务,并将该分片的数据块复制到任务所在的节点上进行计算。
用户需要编写自己的Map函数,将输入分片中的每一条记录转换成键值对的形式,并将它们输出给Reduce任务。
Map任务的数量通常由Hadoop配置的分片数决定。
4. Shuffle阶段:Shuffle阶段是MapReduce中的关键步骤,它负责对Map任务的输出进行排序和归并。
在该阶段,Hadoop会将Map任务的输出按照键进行排序,并将具有相同键的记录分配给同一个Reduce任务。
这样做的目的是为了让Reduce任务可以高效地对具有相同键的所有记录进行处理。
5. Reduce阶段:在Reduce阶段,Hadoop会为每个Reduce任务分配一组具有相同键的记录,并将它们作为Reduce函数的输入。
用户需要编写自己的Reduce 函数,对这些记录进行具体的计算和处理,并将最终结果输出到指定的输出路径中。
如何使用Hadoop处理大数据随着互联网和互联技术的飞速发展,数据的规模不断扩大,如何高效地管理和处理海量的数据成为了各个领域所面临的重要挑战。
在这个背景下,Hadoop作为一种分布式计算框架,逐渐走进了大数据处理的领域。
本文旨在介绍Hadoop的基本概念和使用方法,以帮助读者更好地理解和应用此工具来处理大数据。
一、Hadoop概述Hadoop是一个开源的、基于Java语言的分布式计算框架。
最初由Apache公司开发,并在2006年贡献给了Apache开源社区。
Hadoop是基于Google公司研发的Google File System(GFS)和MapReduce的思想而发展出来的。
它主要包括Hadoop Distributed File System(HDFS)和MapReduce两个模块。
HDFS主要用于大数据的存储,而MapReduce则是基于HDFS的数据计算框架。
除此之外,Hadoop还包括一些较为基础的组件,如ZooKeeper、HBase、Spark等。
二、Hadoop的使用1. Hadoop的安装Hadoop的安装比较简单,只需要下载Hadoop的安装包、运行相应的脚本即可。
但在安装过程中,需要进行一些参数配置和环境变量的设置,才能够使Hadoop正常运行。
安装完成后,可以通过执行“hadoop version”来检查安装结果。
2. Hadoop的使用使用Hadoop主要可以通过以下两种方式:(1)Hadoop shell:Hadoop shell是一个基于命令行的操作界面,可以通过HDFS shell和MapReduce shell两个模块来进行大数据的存储和计算操作。
比如,可以通过hadoop fs -ls /来查看当前HDFS 中的文件目录,通过hadoop fs -put local_file_path hadoop_path来将本地文件上传到HDFS中,通过hadoop jar mapreducejarinput_path output_path JobName来运行Hadoop的MapReduce程序。
如何使用Hadoop进行大数据处理随着互联网的快速发展,数据量也在迅速增长。
作为一种大数据处理技术的代表,Hadoop已成为企业处理大规模数据的首选方案。
但对于初学者来说如何使用Hadoop进行大数据处理可能是一个难题,本文将向您介绍如何使用Hadoop进行大数据处理。
1. Hadoop简介Hadoop是一个能够处理大规模数据的分布式系统框架,最初由Apache软件基金会开发。
它基于Java编写,目前是开源的,允许用户在不需要额外的硬件支持的情况下处理大量数据。
Hadoop通过将数据分成小块进行处理,实现高效的数据存储和处理。
2. Hadoop基本架构Hadoop的基本组成部分包括HDFS和MapReduce。
HDFS:Hadoop分布式文件系统(HDFS)是一个用于存储大规模数据的基于Java编写的文件系统。
它采用分布式存储和冗余机制,可以自动将数据分配到不同的节点上,从而减少单点故障的出现,提高数据的可靠性。
HDFS还允许用户快速地检索特定数据块,并将它们分发到不同节点上进行处理。
MapReduce:MapReduce是Hadoop的一个分布式计算框架,其基本思想是将大规模的数据分为许多小块进行处理。
MapReduce将输入数据划分成不同的块,并将这些块分发到集群中的不同节点上进行处理。
输出数据则汇总成最终结果。
MapReduce具有高扩展性和高可靠性,可用于解决大规模数据处理中的各种问题。
3. 数据处理流程Hadoop的数据处理流程包括数据准备、数据切割、Map处理、Shuffle处理和Reduce处理。
数据准备:在使用Hadoop进行大数据处理之前,需要对数据进行适当的准备。
在准备过程中,可以去掉无用的数据,清洗掉重复的数据,并对数据进行良好的分类和标记。
数据切割:数据切割是将大数据划分成小块以便进行处理。
在Hadoop中,数据切割完成后,每个数据块将被分配给一个不同的节点进行处理。
Map处理:Map处理是指将每个数据块分别处理,提取出其中感兴趣的信息并将其转化为键/值对。
Hadoop中的文件系统操作指南Hadoop是一个开源的分布式计算平台,广泛应用于大数据处理和分析领域。
作为Hadoop的核心组件之一,Hadoop分布式文件系统(Hadoop Distributed File System,简称HDFS)提供了高可靠性、高容错性和高性能的文件存储服务。
本文将为读者介绍Hadoop中的文件系统操作指南,帮助读者更好地了解和使用HDFS。
一、HDFS的基本概念和特点HDFS是Hadoop的默认文件系统,它将大文件切分为多个数据块,并将这些数据块分布式存储在Hadoop集群的不同节点上。
HDFS的设计目标是适用于大规模数据集的存储和处理,具有以下特点:1. 高可靠性:HDFS通过数据冗余和自动故障恢复机制,确保数据的持久性和可靠性。
每个数据块默认会有三个副本存储在不同的节点上,一旦某个节点发生故障,系统会自动将副本复制到其他节点上。
2. 高容错性:HDFS通过检测和自动恢复数据块的损坏或丢失,保证数据的完整性。
当一个数据块损坏或丢失时,系统会自动使用其他副本进行替换,从而实现容错性。
3. 高性能:HDFS采用了流式数据访问模式,适用于一次写入、多次读取的数据访问场景。
HDFS将数据块存储在本地磁盘上,避免了网络传输的瓶颈,从而提高了数据的读写性能。
二、HDFS的文件操作1. 文件上传:使用Hadoop的命令行工具或编程接口,可以将本地文件上传到HDFS中。
例如,使用命令行工具的hadoop fs -put命令可以将本地文件复制到HDFS中指定的路径下。
2. 文件下载:类似地,可以使用hadoop fs -get命令将HDFS中的文件下载到本地文件系统中。
也可以使用编程接口实现文件的下载操作。
3. 文件删除:使用hadoop fs -rm命令可以删除HDFS中的文件。
需要注意的是,删除文件时会连同其所有副本一起删除,因此需要谨慎操作。
4. 文件重命名:使用hadoop fs -mv命令可以对HDFS中的文件进行重命名操作。
Hadoop 分布式计算架构的真正实力在于其分布性。
换句话说,向工作并行分布多个节点的能力使Hadoop 能够应用于大型基础设施以及大量数据的处理。
本文首先对一个分布式Hadoop 架构进行分解,然后探讨分布式配置和使用。
分布式Hadoop 架构根据用Hadoop 进行分布式数据处理,第1 部分:入门,所有Hadoop 守护进程都在同一个主机上运行。
尽管不运用Hadoop 的并行性,这个伪分布式配置提供一种简单的方式来以最少的设置测试Hadoop 的功能。
现在,让我们使用机器集群探讨一下Hadoop 的并行性。
根据第1 部分,Hadoop 配置定义了让所有Hadoop 守护进程在一个节点上运行。
因此,让我们首先看一下如何自然分布Hadoop 来执行并行操作。
在一个分布式Hadoop 设置中,您有一个主节点和一些从节点(见图1)。
图1. Hadoop 主从节点分解如图1 所示,主节点包括名称节点、从属名称节点和jobtracker 守护进程(即所谓的主守护进程)。
此外,这是您为本演示管理集群所用的节点(使用Hadoop 实用程序和浏览器)。
从节点包括tasktracker 和数据节点(从属守护进程)。
两种设置的不同之处在于,主节点包括提供Hadoop 集群管理和协调的守护进程,而从节点包括实现Hadoop 文件系统(HDFS)存储功能和MapReduce 功能(数据处理功能)的守护进程。
对于该演示,在一个LAN 上创建一个主节点和两个从节点。
设置如图2 所示。
现在,我们来探讨用于多节点分布的Hadoop 的安装和配置。
图2. Hadoop 集群配置为简化部署,要运用虚拟化技术,该技术有几个好处。
尽管在该设置中使用虚拟化技术看不出性能优势,但是它可以创建一个Hadoop 安装,然后为其他节点克隆该安装。
为此,您的Hadoop 集群应显示如下:在一个主机上的虚拟机监控程序上下文中将主从节点作为虚拟机(VM)运行(见图3)。
图3. 虚拟环境中的Hadoop 集群配置升级Hadoop我们安装了在一个节点上运行的Hadoop 的一个特殊分布(伪配置)。
在本文中,我们要更新分布式配置。
如果您没有看过本系列的第1 部分,那么请阅读第1 部分,了解如何首先安装Hadoop 伪配置。
在伪配置中,您没有进行任何配置,因为单个节点已经过预先配置。
现在,您需要更新配置。
首先,使用update-alternatives命令检查当前配置,如清单1 所示。
该命令告诉您,配置在使用conf.pseudo(最高优先级)。
清单1. 检查当前Hadoop 配置下一步,通过复制现有配置(本例中为conf.empty,如清单1 所示)创建一个新配置:最后,激活并检查新配置:现在,您有一个名为conf.dist的新配置,您要将其用于您的新分布式配置。
此时该节点运行于一个虚拟环境中,将该节点克隆到另外两个要充当数据节点的节点中。
配置Hadoop 以实现分布式操作下一步是要使所有节点互联互通。
这可以/etc/hadoop-0.20/conf.dist/ 中的两个名为masters和slaves的文件中实现。
本例中的三个节点的IP 地址是静态分配的,如清单3 所示(来自/etc/hosts):因此,在主节点上,更新/etc/hadoop-0.20/conf.dist/masters 来确定主节点,如下所示:接下来,从每个节点上,将Secure Shell (ssh) 连接到所有其他节点,确保pass-phraseless ssh 在运行。
所有这些文件(masters,slaves)都由本系列第1 部分中使用过的Hadoop 启动和停止工具使用。
下一步,在/etc/hadoop-0.20/conf.dist 子目录中继续进行Hadoop 配置。
以下变更需要应用于所有节点(主节点和从节点),如同Hadoop 文档中所定义的。
首先,在core-site.xml 文件(清单4)中确定HDFS 主节点,它定义名称节点的主机和端口(注意主节点的IP 地址的使用)。
core-site.xml 文件定义Hadoop 的核心属性。
下一步,确认MapReduce jobtracker。
jobtracker 位于其自己的节点上,但对于本配置,将其放在主节点上,如清单5 所示。
mapred-site.xml 文件包含MapReduce 属性。
最后,定义默认复制因子(清单6)。
该值定义将创建的副本数,一般小于3。
在本例中,将其定义为2(数据节点的数量)。
该值在包含HDFS 属性的hdfs-site.xml 中定义。
清单6. 在hdfs-site.xml 中定义默认数据副本配置项如清单4 所示,分布式设置所需的元素见清单5 和清单6。
Hadoop 在这里提供大量配置选项,支持您按需定制整个环境。
完成配置之后,下一步是要格式化名称节点(HDFS 主节点)。
对于该操作,使用hadoop-0.20实用程序指定名称节点和操作(-format):清单7. 格式化名称节点格式化名称节点之后,就可以启动Hadoop 守护进程了。
可以对第1 部分中的伪分布式配置执行同样的操作,但进程为分布式配置完成同样的工作。
注意,这里的代码启动名称节点和从属名称节点(正如jps命令所指示):现在,如果使用jps节点检测其中一个从节点(数据节点),您会看到每个节点上都有一个数据节点守护进程:下一步是要启动MapReduce 守护进程(jobtracker 和tasktracker)。
如清单10所示执行该操作。
注意,脚本启动主节点上的jobtracker(正如配置所定义的;参见清单5)和每个从节点上的tasktrackers。
主节点上的一个jps命令显示jobtracker 正在运行。
清单10. 启动MapReduce 守护进程最后,使用jps检查一个从节点。
这里您可以看到,一个tasktracker 守护进程将数据节点守护进程联接到每个从数据节点上:清单11. 检测其中一个从节点上的数据节点启动脚本、节点和启动的守护进程之间的关系如图4 所示。
如您所见,start-dfs脚本启动名称节点和数据节点,而start-mapred脚本启动jobtracker 和tasktrackers。
图4. 每个节点的启动脚本和守护进程的关系测试HDFS既然Hadoop 已经开始在整个集群中运行了,您可以运行一些测试来确保其正常运作(见清单12)。
首先,通过hadoop-0.20实用程序发出一个文件系统命令(fs),并请求一个df(disk free)操作。
与在Linux® 中一样,该命令仅确定特定设备的已用空间和可用空间。
因此,对于新格式化的文件系统,就没有已用空间。
下一步,在HDFS 的根上执行一个ls操作,创建一个子目录,列出其内容,并删除它。
最后,在hadoop-0.20实用程序内,您可以使用fsck命令在HDFS 上执行一个fsck(文件系统检查)。
这一切—以及各种其他信息(比如检测到两个数据节点)—都告诉您文件系统是正常的。
执行一个MapReduce 作业下一步是执行一个MapReduce 作业,以验证整个设置运作正常(见清单13)。
该进程的第一步是要引入一些数据。
因此,首先创建一个目录来容纳您的输入数据(称为input),创建方式是使用hadoop-0.20实用程序的mkdir命令。
然后,使用hadoop-0.20的put命令将两个文件放到HDFS 中。
您可以使用Hadoop 实用程序的ls命令检查输入目录的内容。
下一步,启动wordcount MapReduce 作业。
与在伪分布式模型中一样,指定输入子目录(包含输入文件)和输出目录(不存在,但会由名称节点创建并用结果数据填充):最后一步是探索输出数据。
由于您运行了wordcount MapReduce 作业,结果是一个文件(从已处理映射文件缩减而来)。
该文件包含一个元组列表,表示输入文件中找到的单词和它们在所有输入文件中出现的次数:清单15. 检测MapReduce 作业的输出Web 管理界面尽管hadoop-0.20实用程序的功能极其丰富,但有时使用一个GUI 会更方便。
在执行文件系统检测时,您可以通过http://master:50070 链接到名称节点,通过http://master:50030 连接到jobtracker 。
您可以通过名称节点检测HDFS,如图5 所示,在这里您检测输入目录(包含输入数据—见上面清单13)。
图5. 通过名称节点检测HDFS通过jobtracker,您可以检测运行中或已完成的作业。
在图6 中,您可以看到对最后一个作业的检测(来自清单14)。
该图展示了作为Java 存档(JAR)请求的输出发出的各种数据,以及任务的状态和数量。
注意,这里执行了两个映射任务(每个输入文件一个映射)和一个缩减任务(用于缩减两个映射输入)。
图6. 检查一个已完成作业的状态最后,您可以通过名称节点检查数据节点的状态。
名称节点主页确定活动节点和死节点(作为链接)的数量,且允许您进一步检测它们。
图7 所示的页面显示了活动数据节点以及每个节点的统计数据。
图7. 检查活动数据节点的状态通过名称节点和jobtracker Web 界面,可以查看许多其他视图,但出于简洁,只显示该样例集。
在名称节点和jobtracker Web 页面内,您会找到大量链接,从而引导您获取有关Hadoop 配置和操作的其他信息(包括运行时日志)。
更进一步在本期中,您了解了如何将一个伪分布式配置从Cloudera 转化为一个完全分布式配置。
寥寥无几的步骤以及MapReduce 应用程序的一个相同接口,就使Hadoop 成为一个能实现分布式处理的有用工具。
另一个有趣的部分就是Hadoop 的可伸缩性探讨。
通过添加新数据节点(并更新其XML 文件和master 中的slave 文件),您可以轻松伸缩Hadoop 来进行更高级别的平行处理。
第3 部分,也就是本Hadoop 系列的最后一期,将探讨如何为Hadoop 开发一个MapReduce 应用程序。