摘要: 在使用hadoop的时候,可能遇到各种各样的问题,然而由于hadoop的运行机制比较复杂,因而出现了问题的时候比较难于发现问题。本文欲通过某种方式跟踪Hadoop的运行痕迹,方便出现问题的时候可以通过这些痕迹来解决问题。一、环境的搭建为了能够跟踪这些运行的痕迹,我们需要搭建一个特殊的环境,从而可以一步步的查看上一节提到的一些关键步骤所引起的变化。我们首先搭建一个拥有一个NameNode(namenode:192.168.1.104),三个DataNode(datanode01:192.168.1.105, datanode02:192.168.1.106, datanode03:192.168 阅读全文
posted @ 2011-11-09 18:05 John Liang 阅读(420) 评论(0) 推荐(0) 编辑
摘要: 一、客户端Map-Reduce的过程首先是由客户端提交一个任务开始的。提交任务主要是通过JobClient.runJob(JobConf)静态函数实现的:public static RunningJob runJob(JobConf job) throws IOException { //首先生成一个JobClient对象 JobClient jc = new JobClient(job); …… //调用submitJob来提交一个任务 running = jc.submitJob(job); JobID jobId = running.getID(); …… while (true) { 阅读全文
posted @ 2011-11-09 18:04 John Liang 阅读(760) 评论(0) 推荐(0) 编辑
摘要: 一、文件的打开1.1、客户端HDFS打开一个文件,需要在客户端调用DistributedFileSystem.open(Path f, int bufferSize),其实现为:public FSDataInputStream open(Path f, int bufferSize) throws IOException { return new DFSClient.DFSDataInputStream( dfs.open(getPathName(f), bufferSize, verifyChecksum, statistics));}其中dfs为DistributedFileSystem的 阅读全文
posted @ 2011-11-09 18:03 John Liang 阅读(1264) 评论(0) 推荐(0) 编辑
摘要: 1、Map-Reduce的逻辑过程假设我们需要处理一批有关天气的数据,其格式如下:按照ASCII码存储,每行一条记录每一行字符从0开始计数,第15个到第18个字符为年第25个到第29个字符为温度,其中第25位是符号+/-0067011990999991950051507+0000+0043011990999991950051512+0022+0043011990999991950051518-0011+0043012650999991949032412+0111+0043012650999991949032418+0078+0067011990999991937051507+0001+0043 阅读全文
posted @ 2011-11-09 18:03 John Liang 阅读(377) 评论(0) 推荐(0) 编辑
摘要: 一、HDFS的基本概念1.1、数据块(block)HDFS(Hadoop Distributed File System)默认的最基本的存储单位是64M的数据块。和普通文件系统相同的是,HDFS中的文件是被分成64M一块的数据块存储的。不同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间。1.2、元数据节点(Namenode)和数据节点(datanode)元数据节点用来管理文件系统的命名空间其将所有的文件和文件夹的元数据保存在一个文件系统树中。这些信息也会在硬盘上保存成以下文件:命名空间镜像(namespace image)及修改日志(edit lo 阅读全文
posted @ 2011-11-09 18:01 John Liang 阅读(452) 评论(0) 推荐(0) 编辑
摘要: Components of Hadoop在上一章节我们了解了如何安装及配置Hadoop。我们了解了不同节点的作用以及这些节点是如何工作的,还了解了如何配置这些节点。现在我们可以运行Hadoop了,现在我们从程序的角度了解一下Hadoop框架。首先我们讲解HDFS,HDFS用来存储你的Hadoop应用的各种数据。之后我们讲解MapReduce框架的细节。第一章时,我们已经看到了MapReduce程序,但是我们只是停留在概念层。在这一章我们将进入Java类和方法层面,当然还包括如何部署。我们还会知道如何使用不同数据格式进行读写操作。Working with files in HDFS你可以将100 阅读全文
posted @ 2011-11-09 17:54 John Liang 阅读(769) 评论(0) 推荐(0) 编辑
摘要: 之前持续关注分布式存储和分布式计算,现在是建立完整集群的时候了.在这一节,我们将使用下面的服务器名:1. master--- 主节点,主要用来运行NameNode和JobTracker服务.2. backup --- 用来运行Secondary NameNode服务.3. hadoop1,hadoop2,hadoop3…---运行DataNode和TaskTracker的从节点.修改之前伪分布式的骨架来配置这个分布式模式.复制所有这几个配置文件到所有的从服务器上,并且保证所有的从服务器的hdfs都格式化了.hdfs-site.xmlCode highlighting produced by.. 阅读全文
posted @ 2011-11-09 17:52 John Liang 阅读(323) 评论(0) 推荐(0) 编辑
摘要: Pseudo-distributed mode(伪分布式)伪分布式模式就是将所有hadoop程序运行在一台服务器上.这种模式将单机模式分割为各模块,主要还是用来debug你的程序,以便于测试内存占用量,HDFS input/output问题,已经各个deamons之间的交互等等.下面就是这种模式的配置例子:core-site.xml<?xml version=”1.0”?><?xml-stylesheet type=”text/xsl” href=”confi guration.xsl”?><!-- Put site-specifi c property overri 阅读全文
posted @ 2011-11-09 17:50 John Liang 阅读(322) 评论(0) 推荐(0) 编辑
摘要: Starting Hadoop内容简介:1. Hadoop 架构中的各个模块。2. 安装Hadoop,以及三种操作模式:单机,伪分布式,以及分布式。3. 安装基于web的Hadoop监控工具 这一章节将主要介绍如何安装Hadoop。如果你的工作不要安装Hadoop,或者已经完整安装了Hadoop,那么你也许想跳过这一章。不过通过这一章节你可以了解如何在你的开发环境中安装Hadoop,如果是这样,你可以略过一些配置的细节。在2.1章节,我们将介绍一下hadoop的各个组成部分。此后的2.2,2.3,和2.4我们将分别介绍如何安装 单机,伪分布式,以及分布式的Hadoop。2.5我们将介绍一些基于 阅读全文
posted @ 2011-11-09 17:44 John Liang 阅读(454) 评论(0) 推荐(0) 编辑
摘要: Hadoop介绍内容简介:1. 编写可扩展的,分布式的,海量数据处理的程序的基础2. 介绍hadoop与MapREduce3. 编写一个简单的MapReduce程序 今天,我们被数据所围绕,人们上传视频,手机拍照,给朋友发信息,更新facebook状态,论坛回帖,点击广告,等等.另外,机器本身也在不停的产生大量数据.甚至也许各位看官就在电脑旁读着电子书,当然,你的购买记录已经记录在书店的系统之中了.海量数据的不停增长,现在已经给各大厂商带来了极大地挑战.他们需要在以兆记的数据中挖掘出有用的信息,比如哪些网页是大众喜闻乐见的,等等信息.Google是第一个公布使用MapReduce系统来处理他们 阅读全文
posted @ 2011-11-09 17:43 John Liang 阅读(545) 评论(0) 推荐(0) 编辑
摘要: 调用文件系统(FS)Shell命令应使用 bin/hadoop fs <args>的形式。 所有的的FS shell命令使用URI路径作为参数。URI格式是scheme://authority/path。对HDFS文件系统,scheme是hdfs,对本地文件系统,scheme是file。其中scheme和authority参数都是可选的,如果未加指定,就会使用配置中指定的默认scheme。一个HDFS文件或目录比如/parent/child可以表示成hdfs://namenode:namenodeport/parent/child,或者更简单的/parent/child(假设你配置 阅读全文
posted @ 2011-11-09 17:35 John Liang 阅读(354) 评论(0) 推荐(0) 编辑
摘要: 1、hadoop 在 redhat linux下的安装过程网上有很多讲授在windows下通过Cygwin安装hadoop的,笔者认为hadoop原始设计就是在linux下安装使用的,在windows下通过Cygwin安装也无非是模拟linux环境再在这个模拟的环境上装hadoop,既然要学hadoop就真枪实弹的在linux下安装来学习,但是要搞一台真正的linux系统对一般个人来说不容易,但是我们可以用虚拟机VMware Player,就是在windows下装一个虚拟机(VMware Player 就是个很好的虚拟机),然后在虚拟机上装一个linux系统,实现和本机windows的通信,具 阅读全文
posted @ 2011-11-09 17:30 John Liang 阅读(4378) 评论(0) 推荐(0) 编辑
摘要: Hadoop包含两个部分:1、HDFS即Hadoop Distributed File System (Hadoop分布式文件系统)HDFS具有高容错性,并且可以被部署在低价的硬件设备之上。HDFS很适合那些有大数据集的应用,并且提供了对数据读写的高吞吐率。HDFS是一个master/slave的结构,就通常的部署来说,在master上只运行一个Namenode,而在每一个slave上运行一个Datanode。HDFS支持传统的层次文件组织结构,同现有的一些文件系统在操作上很类似,比如你可以创建和删除一个文件,把一个文件从一个目录移到另一个目录,重命名等等操作。Namenode管理着整个分布式 阅读全文
posted @ 2011-11-09 17:17 John Liang 阅读(414) 评论(0) 推荐(0) 编辑