Chinaunix首页 | 论坛 | 博客
  • 博客访问: 601110
  • 博文数量: 83
  • 博客积分: 5453
  • 博客等级: 大校
  • 技术积分: 894
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-10 13:51
文章分类

全部博文(83)

文章存档

2015年(2)

2014年(1)

2013年(1)

2012年(3)

2011年(14)

2010年(7)

2009年(7)

2008年(12)

2007年(17)

2006年(19)

我的朋友

分类: 服务器与存储

2011-09-23 14:49:28

 

本文是作者阅读hadoop-0.20.203.0官方手册的学习笔记。


1 Standalone Operation

仅一个节点运行一个hadoop进程

  1. $ mkdir input
  2. $ cp conf/*.xml input
  3. $ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+'
  4. $ cat output/*

这个例子展示了一个在Haddoop中实现的grep程序。

“jar hadoop-examples-*.jar grep”这部分可用看做是这个grep的路径。

input是输入目录;output是结果输出目录,这个目录grep会新建一个,因此output目录要求开始时不存在。

'dfs[a-z.]+' 是grep的匹配模式。

执行过程观察log,看到大量mapred.*内容,说明这个grep程序是基于mapreduce的。

为了与OS中的本地grep区别,同时便于描述,后面简称mr-grep

注意:input,output都是本地文件系统中的目录。

此时hadoop使用本地文件系统,可以换用/mnt/output,并使用本地系统命令查看。

可使用本地grep达到相同的目的。

 

2 Pseudo-Distributed Operation

配置在手册上,不再解释。

仅一个节点上运行多个hadoop进程,或者说是在一个节点模拟分布式运行。

  1. $ bin/hadoop namenode –format
  2. $ bin/start-all.sh
  3. $ bin/hadoop fs -put conf input
  4. $ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+'
  5. $ bin/hadoop fs -cat output/*
  6. $ bin/stop-all.sh

这个例子展示了在模拟的分布式环境下mr-grep的运行情况。

“namenode –format”根据配置文件格式化文件系统,或者说初始化分布式文件系统。

“fs -put conf input”将本地文件目录conf中内容拷贝到前面所述的分布式文件系统的input目录。

“jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+”调用mr-grep在hadoop中运行,结果输出目录是分布式文件系统的output目录。

“fs -cat output/*”显示分布式文件系统output目录中文件的内容。

注意:hadoop这里的运行环境是模拟的分布式文件系统,实际与真实的分布式已经没有本质区别。

因此,不能直接使用本地命令访问到input和output。访问它们需要使用hadoop提供的fs命令,试试看“fs -ls”

阅读(2913) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~