最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

Windows下使用Hadoop安装与测试实例

来源:动视网 责编:小OO 时间:2025-10-01 17:51:01
文档

Windows下使用Hadoop安装与测试实例

Windows下使用Hadoop0.20.2实例1.1Windows下使用Hadoop的环境配置(1)安装Hadoop前,首先需要安装Cygwin首先下载Cygwin(http://cygwin.com/install.html),当setup.exe下载成功后,直接运行,在弹出的“CygwinNetReleaseSetupProgram”的对话框中直接点击“下一步”,选择“downloadsource”如下:选择“InstallfromInternet”,进入下图所示对话框:设置Cygwin
推荐度:
导读Windows下使用Hadoop0.20.2实例1.1Windows下使用Hadoop的环境配置(1)安装Hadoop前,首先需要安装Cygwin首先下载Cygwin(http://cygwin.com/install.html),当setup.exe下载成功后,直接运行,在弹出的“CygwinNetReleaseSetupProgram”的对话框中直接点击“下一步”,选择“downloadsource”如下:选择“InstallfromInternet”,进入下图所示对话框:设置Cygwin
  Windows下使用Hadoop0.20.2实例

1.1 Windows 下使用Hadoop 的环境配置

(1)安装Hadoop 前,首先需要安装Cygwin

首先下载Cygwin(http://cygwin.com/install.html),当setup.exe 下载成功后,直接运行,在弹出的“Cygwin Net Release Setup Program”的对话框中直接点击“下一步”,选择“download source”如下:

选择“Install from Internet”,进入下图所示对话框:

设置Cygwin 的安装目录,Install For 选择“All Users”,Default Text File Type

选择“Unix/binary”。“下一步”之后,设置Cygwin 安装包存放目录:

设置“Internet Connection”的方式,选择“Direct Connection”:

之后选择“Download site”:

选择最好选.cn结尾的,若无可以随意选择,若安装失败可多尝试几个。

“下一步”之后,可能会弹出下图的“Setup Alert”对话框,直接“确定”即可。

在上图所示的对话框过程中,可能会弹出如下图所示的“Setup Alert”对话框,直接点击“确定”即可。

进入“Select Packages”对话框,必须保证“Net Category”下的“OpenSSL”被安装:

安装中需要选中Net category 中的openssh,如下图所示:

如果还打算在eclipse上编译Hadoop,则还必须安装“Base Category”下的“sed”,如下图所示:

另外,安装“Editors Category”下的vim,以方便在Cygwin上直接修改配置文件;“Devel Category”下的subversion 建议安装,如下图所示:

安装完成后进行环境变量的配置。

(2)安装JDK

(3)配置Windows 系统变量

新建系统变量CYGWIN,变量值为ntsec

编辑系统变量里的Path 变量,将JDK的bin目录、Cygwin的bin目录以及Cygwin的usr\sbin目录加入到Path变量中。

(e:\\cygwin,e:\\cygwin\sbin)

新建系统变量JAVA_HOME,变量指向JRE安装目录。

(4)安装配置ssh

启动cygwin,执行命令:$ ssh-host-config。

当询问"Should privilege separation be used"时,输入no;当询问"Do you want to install sshd as a service? "选yes;当提示"Enterthe value of CYGWIN for the daemon:[]"时,选择ntsec。(好像没出现ntsec)

当看到“Have fun”时,一般表示sshd 服务安装成功了。

输入命令$ net start sshd,启动SSH,或者在Windows 服务项里启动CYGWIN sshd。

注意:

SSH无法启动的解决方法:

解决方案:

按上图配置命令的提示说明,需要执行mkpasswd 和 mkgroup重新生成权限信息

依次执行下面命令

$ mkpasswd -l > /etc/passwd

$ mkgroup -l > /etc/group

$ cygrunsrv -R sshd     删除ssd服务

$ ssh-host-config -y     重新配置

$ cygrunsrv -S sshd      启动服务。

sshd服务启动成功。

(注意:sshd在cyg_server帐户下运行)

然后执行$ ssh-keygen来生成密钥对,然后一直回车键确定。这样会把生产的密钥对保存在.ssh 目录下。使用命令将RSA 公钥加入到公钥授权文件authorized_keys 中:

$ cd  /home/Administrator/.ssh

$ cat  id_rsa.pub >> authorized_keys

最后执行$ ssh localhost,就可以实现无需密码的SSH 连接。

完成上述操作后,执行exit命令先退出Cygwin窗口。

执行ssh localhost时,会有如下图所示的提示,输入yes,然后回车即可:

如果不是第一次执行则会出现如下对话框:

成功启动ssh服务。

1.2 安装Hadoop

将Hadoop安装包(在此使用的是hadoop-0.20.2,相关apache软件下载地址:http://archive.apache.org/dist/)解压到你自己选择的目录(e:\\hadoop),然后需要修改hadoop 的配置文件,它们位于conf 子目录下,分别是hadoop-env.sh、core-site.xml、hdfs-site.xml 和mapred-site.xml 共四个文件。

1.2.1修改hadoop-env.sh

只需要将JAVA_HOME 修改成JDK 的安装目录即可,需要注意两点:

(1) JDK 必须是1.6 或以上版本;

(2) 设置JDK 的安装目录时,路径不能是Windows 风格的目录例如:C:\jdk1.7,而是LINUX 风格: /cygdrive/c/jdk1.7。     

因此在hadoop-env.sh 中设定JDK 的安装目录:

export JAVA_HOME=/cygdrive/c/jdk1.7(注意删除-sun和export前面的注释“#”)

1.2.2 修改core-site.xml

为简化core-site.xml 配置,将src\\core 目录下的core-default.xml文件复制到conf 目录下,并将core-default.xml文件名改成core-site.xml。

修改:

hadoop.tmp.dir

/hadoop/tmp

A base for other temporary directories.

fs.default.name

hdfs://localhost:9000

1.2.3 修改hdfs-site.xml

为简化hdfs-site.xml 配置,将src\\hdfs 目录下的hdfs-default.xml文件复制到conf 目录下,并将hdfs-default.xml 文件名改成hdfs-site.xml。

修改:

dfs.replication

1

1.2.4 修改mapred-site.xml

为简化mapred-site.xml 配置,将src\\mapred 目录下的mapreddefault.xml 文件复制到conf 目录下,并将mapred-default.xml 文件名改成mapred-site.xml。

修改:

mapred.job.tracker

localhost:9001

到此修改完成,然后启动hadoop。

1.3 启动hadoop

在Cygwin 中,进入hadoop 的bin 目录,运行./hadoop namenode -format做格式化处理(仅第一次需要),再运行./start-all.sh 启动hadoop,在启动成功之后,可以执行./hadoop fs -ls /命令,查看hadoop 的根目录,如下图所示:

首先我们要先启动sshd服务,然后登录:

然后启动hadoop:

我们可以验证是否启动成功:(./hadoop dfsadmin -report)

也可以这样查看:

http://127.0.0.1:50030/

http://127.0.0.1:50070/

最后,使用 /bin/hadoop dfsadmin -safemode leave   命令使Hadoop退出安全模式。

有时在启动的时候会遇到一些问题,可能会出现

这时需要关闭系统./stop-all.sh ,然后删除hadoop/tmp下所有文件与目录,重新格式化并启动系统。至此,我们的Hadoop安装成功。

1.4 Hadoop运行wordcount实例

运行WordCount 实例。在本地文件系统上建立e:/hadoop/run/input目录,放入若干文件,文件为由多个单词组成(单词由空格分隔)的文本。

将文件复制到HDFS 的目录下,命名为input,并运行:

$ bin/hadoop  dfs  -put  run/input  input

没有内容输出就说明上传至文件系统成功。

运行:$ bin/hadoop jar hadoop-0.20.2-examples.jar wordcount  input  output

      $ bin/hadoop jar WordCount.jar  input  output2

      (WordCount.jar 为自定义类,参见后面插件部分)

    另需注:

WordCount.jar\\META-INF\\MANIFET.MF:(内容)

Manifest-Version: 1.0

Ant-Version: Apache Ant 1.7.1

Created-By: 10.0-b23 (Sun Microsystems Inc.)

Main-Class: com/cyberware/WordCount

output 为数据处理完成后输出目录, 默认在Hadoop 根目录下。任务执行完,用以下命令查看分布式文件系统上数据处理的结果:

$ bin/hadoop  dfs  -cat  output /*          或

$ bin/hadoop fs -cat hdfs://localhost:9000/user/2012-20120728zh/administrator

/input/file1.txt

至此,完成wordcount实例的运行。

1.5使用eclipse编写Hadoop应用程序

在此,用eclipse编写了一个简单的程序。

1)在eclipse下创建一个java工程DFSOperator,并创建相应的类。

2)配置编译参数

配置“Build Path”,选中“DFSOperator”,单击右键,点击下图所示菜单“Build Path -> Configure Build Path”,进入“Java Build Path”配置界面。选择“Libraries”标签页,点击右侧的“Add External JAR”按钮,将安装好的“hadoop-0.20.2-core.jar”添加进来。

3)编辑源代码

4)编译生成jar包

右键“DFSOperator”项目,选择“Build Project”,编译项目工程,编译“DFSOperator.java”后,生成下图所示的DFSOperator.class 文件:

右键项目,选择“Export”,导出“JAR file”,也就是jar包。然后将导出的jar 文件上传到Hadoop Master 节点。

5)运行

导出的jar文件放到hadoop的bin文件下,进入Hadoop 的bin 目录,用以下命令进行测试运行:

(1) ls:查看当前目录,检查dfs_operator.jar是否存在;

(2) ./hadoop fs -ls /:查看Hadoop根目录下是否存在dfs_operator.txt文件;

(3) ./hadoop jar ./dfs_operator.jar DFSOperator:运行dfs_operator.jar,以生成dfs_operator.txt 文件;

(4) ./hadoop fs -ls /:再查看Hadoop根目录下是否存在dfs_operator.txt文件;

(5) ./hadoop fs -cat /dfs_operator.txt:检查dfs_operator.txt文件的内容。

该程序完成的功能简单,但从中可以学到如何在Windows下利用eclipse进行Hadoop编程。

1.6 使用IBM MapReduce Tools for Eclipse进行Hadoop编程(完成wordcount)

使用 IBM MapReduce Tools for Eclipse,使用这个Eclipse plugin可以简化开发和部署 Hadoop 并行程序的过程。基于这个plugin,可以在 Eclipse 中创建一个 Hadoop MapReduce 应用程序,并且提供了一些基于 MapReduce 框架的类开发的向导,可以打包成 JAR 文件,部署一个 Hadoop MapReduce 应用程序到一个 Hadoop 服务器(本地和远程均可),可以通过一个专门的视图 ( perspective ) 查看 Hadoop 服务器、Hadoop 分布式文件系统( DFS )和当前运行的任务的状态。

1)安装插件IBM MapReduce Tools for Eclipse

安装插件,然后点击 Eclipse 主菜单上 Windows->Preferences,然后在左侧选择 Hadoop Home Directory,设定Hadoop 主目录:

2)创建MapReduce Project

点击Eclipse主菜单上File->New->Project,在弹出的对话框中选择MapReduce Project。然后就可以一个普通的Eclipse Java project那样,添加入Java类。

编码后导出jar包,与创建java Project相同。导出jar包后,在hadoop下运行。

至此完成wordcount。

IBM MapReduce tools 还提供了几个实用的向导 ( wizard ) 工具,帮助创建单独的Mapper类,Reducer类,MapReduce Driver类,在编写比较复杂的 MapReduce程序时,将这些类出来是非常有必要的,也有利于在不同的计算任务中重用自己编写的各种Mapper类和Reducer类。 

附录:

用IBM的MapReduce Tools for Eclipse插件简化Hadoop开发和部署

使用Cygwin模拟Linux环境,配置ssh以及认证就非常麻烦了,不过真要是走一遍那个流程,会学会不少东西的啊。

IBM的MapReduce Tools for Eclipse插件,极大地简化了这些配置,你可以想运行一个Java类一样轻松进行开发、调试和部署。

下载IBM的MapReduce Tools for Eclipse插件,地址是http://www.alphaworks.ibm.com/tech/mapreducetools,下载完成后,解压缩,将plugins目录下的文件夹拷贝到Eclipse目录下的plugins目录下,启动Eclipse,进行一番简单地配置就能进行Hadoop的开发、调试和部署了。

hadoop-0.20.2下自带的eclise插件已过时。

解决方案:

 1、下载正确的插件:https://issues.apache.org/jira/secure/attachment/12460491/hadoop-eclipse-plugin-0.20.3-SNAPSHOT.jar

 2、重命名:将下载的插件重命名为"hadoop-0.20.2-eclipse-plugin.jar"

 3、替换原来的插件(D:\\Myeclipse10\\MyEclipse 10\\dropins下)。

 4、重启eclipse

配置过程:

启动Eclipse,选择Window—>Preferences,弹出如图所示的对话框:

设置Hadoop Main Directory为自己下载的Hadoop发行包的解压包所在目录。设置完成后单击“OK”完成。

新建一个 Project ,选择MapReduce Project,如图所示:

继续进行创建,选择填写工程名后,完成一个MapReduce Project工程的创建,可以进行Hadoop程序的开发了。

比如,我直接把Hadoop自带的WordCount类程序一点不动地拷贝过来,修改包名。

然后进行运行时配置,选择Run As—>Open Debug Dialog选项,在Arguments选项卡中设置:

在其中填写两个目录,分别为数据输入目录和输出目录,中间用空格分隔:

e:\\hadoop\run\input  e:\\hadoop\run\output  (注意output需要先删除)

然后,就可以像运行一个Java程序一样运行了,控制台上打印出执行任务的信息,如下所示:

08/09/21 22:35:47 INFO jvm.JvmMetrics: Initializing JVM Metrics with processName=JobTracker, sessionId=

08/09/21 22:35:47 WARN mapred.JobClient: No job jar file set. User classes may not be found. See JobConf(Class) or JobConf#setJar(String).

08/09/21 22:35:47 INFO mapred.FileInputFormat: Total input paths to process : 7

08/09/21 22:35:48 INFO mapred.JobClient: Running job: job_local_1

08/09/21 22:35:48 INFO mapred.MapTask: numReduceTasks: 1

08/09/21 22:35:49 INFO mapred.JobClient: map 0% reduce 0%

08/09/21 22:35:50 INFO mapred.LocalJobRunner: file:/G:/hadoop-0.16.4/in/a.txt:0+1957

08/09/21 22:35:50 INFO mapred.TaskRunner: Task 'job_local_1_map_0000' done.

08/09/21 22:35:50 INFO mapred.TaskRunner: Saved output of task 'job_local_1_map_0000' to file:/G:/hadoop-0.16.4/myout

08/09/21 22:35:50 INFO mapred.MapTask: numReduceTasks: 1

08/09/21 22:35:50 INFO mapred.JobClient: map 100% reduce 0%

08/09/21 22:35:51 INFO mapred.LocalJobRunner: file:/G:/hadoop-0.16.4/in/b.txt:0+10109

08/09/21 22:35:51 INFO mapred.TaskRunner: Task 'job_local_1_map_0001' done.

08/09/21 22:35:51 INFO mapred.TaskRunner: Saved output of task 'job_local_1_map_0001' to file:/G:/hadoop-0.16.4/myout

08/09/21 22:35:51 INFO mapred.MapTask: numReduceTasks: 1

08/09/21 22:35:51 INFO mapred.LocalJobRunner: file:/G:/hadoop-0.16.4/in/c.txt:0+1957

08/09/21 22:35:51 INFO mapred.TaskRunner: Task 'job_local_1_map_0002' done.

08/09/21 22:35:51 INFO mapred.TaskRunner: Saved output of task 'job_local_1_map_0002' to file:/G:/hadoop-0.16.4/myout

08/09/21 22:35:51 INFO mapred.MapTask: numReduceTasks: 1

08/09/21 22:35:51 INFO mapred.LocalJobRunner: file:/G:/hadoop-0.16.4/in/d.txt:0+1987

08/09/21 22:35:51 INFO mapred.TaskRunner: Task 'job_local_1_map_0003' done.

08/09/21 22:35:51 INFO mapred.TaskRunner: Saved output of task 'job_local_1_map_0003' to file:/G:/hadoop-0.16.4/myout

08/09/21 22:35:52 INFO mapred.MapTask: numReduceTasks: 1

08/09/21 22:35:52 INFO mapred.LocalJobRunner: file:/G:/hadoop-0.16.4/in/e.txt:0+1957

08/09/21 22:35:52 INFO mapred.TaskRunner: Task 'job_local_1_map_0004' done.

08/09/21 22:35:52 INFO mapred.TaskRunner: Saved output of task 'job_local_1_map_0004' to file:/G:/hadoop-0.16.4/myout

08/09/21 22:35:52 INFO mapred.MapTask: numReduceTasks: 1

08/09/21 22:35:52 INFO mapred.LocalJobRunner: file:/G:/hadoop-0.16.4/in/f.txt:0+1985

08/09/21 22:35:52 INFO mapred.TaskRunner: Task 'job_local_1_map_0005' done.

08/09/21 22:35:52 INFO mapred.TaskRunner: Saved output of task 'job_local_1_map_0005' to file:/G:/hadoop-0.16.4/myout

08/09/21 22:35:52 INFO mapred.MapTask: numReduceTasks: 1

08/09/21 22:35:53 INFO mapred.LocalJobRunner: file:/G:/hadoop-0.16.4/in/g.txt:0+1957

08/09/21 22:35:53 INFO mapred.TaskRunner: Task 'job_local_1_map_0006' done.

08/09/21 22:35:53 INFO mapred.TaskRunner: Saved output of task 'job_local_1_map_0006' to file:/G:/hadoop-0.16.4/myout

08/09/21 22:35:53 INFO mapred.LocalJobRunner: file:/G:/hadoop-0.16.4/in/b.txt:0+10109

08/09/21 22:35:54 INFO mapred.JobClient: map 28% reduce 0%

08/09/21 22:35:54 INFO mapred.LocalJobRunner: file:/G:/hadoop-0.16.4/in/c.txt:0+1957

08/09/21 22:35:54 INFO mapred.LocalJobRunner: reduce > reduce

08/09/21 22:35:54 INFO mapred.TaskRunner: Task 'reduce_xk6d4v' done.

08/09/21 22:35:54 INFO mapred.TaskRunner: Saved output of task 'reduce_xk6d4v' to file:/G:/hadoop-0.16.4/myout

08/09/21 22:35:55 INFO mapred.JobClient: Job complete: job_local_1

08/09/21 22:35:55 INFO mapred.JobClient: Counters: 9

08/09/21 22:35:55 INFO mapred.JobClient:   Map-Reduce Framework

08/09/21 22:35:55 INFO mapred.JobClient:     Map input records=7

08/09/21 22:35:55 INFO mapred.JobClient:     Map output records=39

08/09/21 22:35:55 INFO mapred.JobClient:     Map input bytes=21909

08/09/21 22:35:55 INFO mapred.JobClient:     Map output bytes=36511

08/09/21 22:35:55 INFO mapred.JobClient:     Combine input records=39

08/09/21 22:35:55 INFO mapred.JobClient:     Combine output records=21

08/09/21 22:35:55 INFO mapred.JobClient:     Reduce input groups=7

08/09/21 22:35:55 INFO mapred.JobClient:     Reduce input records=21

08/09/21 22:35:55 INFO mapred.JobClient:     Reduce output records=7 

和使用Cygwin模拟时的运行过程信息是一致的。

有了这个MapReduce Tools 插件,可真是太方便了。

中文格式支持:

1,UTF-8无BOM格式;

2,UTF-8格式,

其他将乱码!

文档

Windows下使用Hadoop安装与测试实例

Windows下使用Hadoop0.20.2实例1.1Windows下使用Hadoop的环境配置(1)安装Hadoop前,首先需要安装Cygwin首先下载Cygwin(http://cygwin.com/install.html),当setup.exe下载成功后,直接运行,在弹出的“CygwinNetReleaseSetupProgram”的对话框中直接点击“下一步”,选择“downloadsource”如下:选择“InstallfromInternet”,进入下图所示对话框:设置Cygwin
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top