Hadoop入门实验
一、实验目的
了解Hadoop的MapeReduce工作原理
二、实验内容
实现基于单机的伪分布式运行模拟
三、实验需要准备的软件和源
1、Jdk1.6以上 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
2、Cygwin 下载地址:http://www.cygwin.com/
3、稳定版hadoop 下载地址:http://hadoop.apache.org/common/releases.html#Download
四、实验步骤
1、了解Hadoop工作机制
a、Hadoop整体框架运行机制介绍
请参见http://hi.baidu.com/wongxuelei/blog/item/c1642050cfb56d481138c2fd.html
b、Hadoop中MapReduce部分执行流程
请参见http://www.blogjava.net/shenh062326/archive/2011/01/14/342959.html
c、Hadoop在线中文技术文档
请参见http://hadoop.apache.org/common/docs/r0.18.2/cn/
个人意见:
a和b说的非常详细,刚入门可以大体了解Hadoop的HDFS和MapeReduce工作框架,等做完实验后再回过头来看这个会更清楚;c上有实例的说明和代码。
2、安装JDK到本地机器
安装目录最好不要有空格(如果有在配置Hadoop的JAVA_HOME时有点麻烦,下面会具体介绍)
3、安装Cygwin
请参见《Hadoop开发者入门》第11页 ——>在Windows上安装Hadoop教程
个人意见:
a、注意选择上面说的需在Cygwin中安装的包;
b、上面说到的http://www.cygwin.cn好像链接不上了,目前内陆最快的是源有
http://mirrors.163.com/cygwin/ http://mirrors.sohu.com/cygwin/ 会到30 k/s左右,其他的速度一般只有3~5 k/s;
c、如果没装成功,最好运行regedit.exe进入注册表,删除Cygwin文件,目录所在位置如图1;
d、环境变量配置仅需把平时我们陪JDK的方法配好,Cygwin仅需把bin所在目录加入,usr下的不用配;
e、安装好sshd后,该服务可以在装好的Cygwin中输入net start sshd命令启动。
图1 、Cygwin所在注册表位置

4、安装Hadoop
a、下载Hadoop的稳定版本,我选择的是hadoop-0.18.3.tar.gz(最新版本不太好用),然后解压到任意盘下;
b、配置Hadoop用于在单机环境上运行的配置文件在最后,来源http://hi.baidu.com/shirdrn/blog/item/33c762fecf9811375c600892.html
注意事项:
a、在配置完JAVA_HOME后,如果路径有空格,运行$ bin/hadoop namenode -format命令也可能会出错,最好的办法是将Windows下的JDK映射到Cygwin中,命令如下:
LN -s /cygdrive/c/Program\ Files/Java/<jre name> /usr/local/<jre name>
其中
/cygdrive/c/Program\ Files/Java/<jre name>表示在Windows中的JDK路径,
/usr/local/<jre name>表示你想映射到的Cygwin路径。
然后在把JAVA_HOME配置成 export JAVA_HOME="/usr/local/<jre name>"
b、运行“ $ bin/hadoop dfs -put ./input input”命令时可能会出现让你把hadoop-site.xml中的“localhost:9000”改成“ hdfs:\\localhost:9000”的问题。未解决,据网上了解说是因为单机运行的问题。
来源http://hi.baidu.com/shirdrn/blog/item/33c762fecf9811375c600892.html
|
首先进行Hadoop配置: 1、conf/hadoop-env.sh文件中最基本需要指定JAVA_HOME,例如我的如下:
如果路径中存在空格,需要使用双引号。 2、只需要修改conf/hadoop-site.xml文件即可,默认情况下,hadoop-site.xml并没有被配置,如果是基于单机运行,就会按照hadoop-default.xml中的基本配置选项执行任务。 将hadoop-site.xml文件修改为如下所示:
实现过程 1、认证配置 启动cygwin,同时使用下面的命令启动ssh:
如图所示:
接着,需要对身份加密认证这一部分进行配置,这也是非常关键的,因为基于分布式的多个Datanode结点需要向Namenode提供任务执行报告信息,如果每次访问Namenode结点都需要密码验证的话就麻烦了,当然我要说的就是基于无密码认证的方式的配置,可以参考我的其他文章。 生成RSA公钥的命令如下:
生成过程如图所示:
上面执行到如下步骤时需要进行设置:
直接按回车键即可,按照默认的选项将生成的RSA公钥保存在/home/SHIYANJUN/.ssh/id_rsa文件中,以便结点之间进行通讯认证。 继续执行,又会提示进行输入选择密码短语passphrase,在如下这里:
直接按回车键,而且一定要这么做,因为空密码短语就会在后面执行过程中免去结点之间通讯进行的认证,直接通过RSA公钥(事实上,我们使用的是DSA认证,当然RSA也可以进行认证,继续看后面)认证。 RSA公钥主要是对结点之间的通讯信息加密的。如果RSA公钥生成过程如上图,说明正确生成了RSA公钥。 接着生成DSA公钥,使用如下命令:
生成过程与前面的RSA类似,如图所示:
然后,需要将DSA公钥加入到公钥授权文件authorized_keys中,使用如下命令:
如图所示,没有任何信息输出:
到此,就可以进行Hadoop的运行工作了。 2、Hadoop处理的数据文件准备 我使用的是hadoop-0.16.4版本,直接拷贝到G:\根目录下面,同时,我的cygwin直接安装在G:\Cygwin里面。 在目录G:\hadoop-0.16.4中创建一个input目录,里面准备几个TXT文件,我准备了7个,文件中内容就是使用空格分隔的多个英文单词,因为是运行WordCount这个例子,后面可以看到我存入了多少内容。 3、运行过程 下面,切换到G:\hadoop-0.16.4目录下面
其中通过cygdrive(位于Cygwin根目录中)可以直接映射到Windows下的各个逻辑磁盘分区中。 在执行任务中,使用HDFS,即Hadoop的分布式文件系统,因此这时要做的就是格式化这个文件系统,使用下面命令可以完成:
格式化过程如图所示:
此时,应该启动Namenode、Datanode、SecondaryNamenode、JobTracer,使用这个命令启动:
启动过程如图所示:
如果你没有配置前面ssh的无密码认证,或者配置了但是输入了密码短语,那么到这里就会每启动一个进程就提示输入密码,试想,如果有N多进程的话,那岂不是要命了。 然后,需要把上面我们在本地的input目录中准备的文件复制到HDFS中的input目录中,以便在分布式文件系统管理这些待处理的数据文件,使用下面命令:
执行上述命令如果没有信息输出就复制成功。 现在,才可以执行Hadoop自带的WordCount列子了,使用下面命令开始提交任务,进入运行:
最后面两个参数分别为数据输入目录和数据处理完成后的输出目录,这里,不能在你的G:\hadoop-0.16.4目录中存在output这个目录,否则会报错的。 运行过程如图所示:
通过上图,可以看出在运行一个Job的过程中,WordCount工具执行任务的进度情况,非常详细。 最后查看执行任务后,处理数据的结果,使用的命令行如下所示:
输出结果如图所示:
最后,停止Hadoop进程,使用如下命令:
如图所示:
以上就是全部的过程了。 |
5、hadoop自带example的代码和分析
http://www.cnblogs.com/panderen/archive/2011/05/17/2048651.html
Hadoop入门实验的更多相关文章
- Hadoop入门学习笔记---part4
紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操 ...
- Hadoop入门学习笔记---part3
2015年元旦,好好学习,天天向上.良好的开端是成功的一半,任何学习都不能中断,只有坚持才会出结果.继续学习Hadoop.冰冻三尺,非一日之寒! 经过Hadoop的伪分布集群环境的搭建,基本对Hado ...
- Hadoop入门学习笔记---part2
在<Hadoop入门学习笔记---part1>中感觉自己虽然总结的比较详细,但是始终感觉有点凌乱.不够系统化,不够简洁.经过自己的推敲和总结,现在在此处概括性的总结一下,认为在准备搭建ha ...
- Hadoop入门学习笔记---part1
随着毕业设计的进行,大学四年正式进入尾声.任你玩四年的大学的最后一次作业最后在激烈的选题中尘埃落定.无论选择了怎样的选题,无论最后的结果是怎样的,对于大学里面的这最后一份作业,也希望自己能够尽心尽力, ...
- 初识Hadoop入门介绍
初识hadoop入门介绍 Hadoop一直是我想学习的技术,正巧最近项目组要做电子商城,我就开始研究Hadoop,虽然最后鉴定Hadoop不适用我们的项目,但是我会继续研究下去,技多不压身. < ...
- 汇编语言程序入门实验一:在dos下对用户输入作出应答
汇编语言程序入门实验一:在dos下对用户输入作出应答 1,背景 成功预言了今天要上计算机操作系统上机实验课,昨天预习后,今天的两个上机实验做得很成功.但是也有一些问题.问题1:学校的系统目前是wind ...
- 汇编语言程序入门实验二:在dos下建立子目录操作
汇编语言程序入门实验二:在dos下建立子目录操作 1,背景 在读此文,并读懂前,建议读者先阅读这两篇博客 1,在dos环境下汇编语言程序设计入门(输出hello world)和masm32的下载.安装 ...
- 大数据:Hadoop入门
大数据:Hadoop入门 一:什么是大数据 什么是大数据: (1.)大数据是指在一定时间内无法用常规软件对其内容进行抓取,管理和处理的数据集合,简而言之就是数据量非常大,大到无法用常规工具进行处理,如 ...
- 一.hadoop入门须知
目录: 1.hadoop入门须知 2.hadoop环境搭建 3.hadoop mapreduce之WordCount例子 4.idea本地调试hadoop程序 5.hadoop 从mysql中读取数据 ...
随机推荐
- freemarker 模板中定义变量
在模板中能够定义三种类型的变量: 简单变量:它能从模板中的不论什么位置来訪问,或者从使用 include 指令引入的模板訪问. 能够使用 assign 或 macro 指令来创建或替换这些变量. 局部 ...
- 百度地图 layer弹出地图 获取坐标
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Python IDLE如何清屏
金gordon 原文 IDLE如何清屏 在学习和使用python的过程中,少不了要与Python IDLE打交道.但使用 Python IDLE 都会遇到一个常见而又懊恼的问题——要怎么清屏? 答案是 ...
- maven打包到本地库
mvn install:install-file -DgroupId=com.alipay -DartifactId=com.alipay.core -Dversion=20180104135026 ...
- 【10.58%】【codeforces 721C】Journey
time limit per test3 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- SSH连接Linux的Server超时
SSH连接Linux的Server超时 http://blog.csdn.net/cheng830306/article/details/21796865
- Struts2与Spring的整合
今天倒腾了半天,终于是把这个两个框架整合到一起了.还是要写一下总结,同时给大家一些帮助. 开发环境:myeclipse 9.0(不好用!)tomcat6.0 1.准备工作 需要导入的包:struts2 ...
- springmvc-Controller类的方法返回String不跳转
买了本书,打算系统的学习一下spring,做了一下书中的练习,出现了一个问题,Controller类的方法返回String,但是页面不跳转,而是直接把字符串的内容显示到页面上. @RequestMap ...
- [DevExpress]DevExpress 中 汉化包 汉化方法
第一步: 在Debug 下加入 zh-CN 汉化包(自行下载) 第二步: 在 Program.cs中加入下面代码 : System.Threading.Thread.CurrentThread.Cur ...
- Codeforces Round #443 (Div. 2) C: Short Program - 位运算
传送门 题目大意: 输入给出一串位运算,输出一个步数小于等于5的方案,正确即可,不唯一. 题目分析: 英文题的理解真的是各种误差,从头到尾都以为解是唯一的. 根据位运算的性质可以知道: 一连串的位运算 ...








