会飞的鱼分享 http://blog.sciencenet.cn/u/shifeng3098 转型期……

博文

Windows平台上安装Hadoop-0.20.203.0版本方法

已有 5905 次阅读 2011-10-4 22:06 |个人分类:未分类|系统分类:科研笔记|关键词:hadoop,cygwin,jdk1.6.x| hadoop, cygwin

Windows平台上安装Hadoop-0.20.203.0版本方法

目的

这篇文档的目的旨在说明在Windows平台上、利用Cygwin模拟Linux环境下,完成单机上Hadoop-0.20.203.0版的安装与使用。同时也旨在解决你在安装hadoop过程中出现JAVA_HOME is not set或是bin/java No such file or directory错误的问题。

先决条件
1支持平台。

Win32平台是作为开发平台支持的。由于分布式操作尚未在Win32平台上充分测试,所以还不作为一个生产平台被支持。

2所需软件

2.1   JavaTM1.6.x,必须安装且版本要为1.6及以上,建议选择Sun公司发行的Java版本。

2.2   Cygwin,提供Shell支持。本文使用最新版1.7.x,要选择安装OpensshOpenssl等。

2.3   Hadoop-0.20.203.0 最新的稳定版。

安装支持软件
1安装Java

安装下载的Java 1.6.x,使用jdk-6u27-windows-i586.exe安装,安装路径比如为:C:Javajdk1.6.0_27。安装完成后,配置环境变量如下:

设置JAVA_HOME变量值为:C:Javajdk1.6.0_27

设置CLASSPATH 变量值为:

.;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar

       path变量中添加路径,添加%JAVA_HOME%bin;%JAVA_HOME%jrebin

2安装Cygwin

安装Cygwin,可以从官网上下载最新的cygwin1.7.9-1进行安装。本人把下载的setup.exe放在C:Cygwin-localPackage文件夹中,该文件用于存储安装选项网络下载的源文件,双击setup.exe进行安装。安装流程如下:

 

1                                 2

注:图2 中选择 install from internet

 

                3                                   4

注:图3确定安装路径如C:cygwin;图4选择下载文件存放的路径如C:Cygwin-localPackage

 

               5                                     6

6 选择下载安装文件的站点,本文选择默认的第一个站点。

 

                7                                    8 

7  选择你要安装的软件,基本功能已经默认选择,但请添加Net 类中的OpensshOpenssl,如上图8。如果你想使用cygwingcc/g++gfortran之类的编译器及其他工具,可以选择安装。

选择好要安装的包后,直接下一步下一步可完成安装Cygwin环境。

3配置Cygwin

cygwin安装路径添加到windowspath变量中,其中将C:cygwinbin; C:cygwinusrsbin; C:cygwinusri686-pc-cygwinbin添加到path变量中。

另外,在Cygwin中找不到某个工具时可添加安装,直接双击之前的setup.exe即可。

4无密码ssh配置
4.1 安装ssh 服务

进入Cygwin中,输入ssh命令后回车,确认是否安装了ssh。然后输入命令:ssh-host-config回车,第一次询问时回答no,然后yes下去,直到要求输入The value of CYGWIN for daemon,此时输入ntsec。到此打开系统服务,在windows系统服务中会看到Cygwin sshd服务,启动服务。退出cygwin。具体操作如下图:

 

                9                                   10

  

             11                                    12

             13

4.2 无密码ssh配置

再次登录cygwin,输入命令:ssh-keygen回车,一直yes,会在cygwin环境的个人用户目录下生成.ssh文件夹,里面包含口令文件。使用命令:cd .ssh回车,切换到.ssh目录,使用ls命令可以看到当前目录下的文件。再使用命令:cat id_rsa.pub >> authorized_keys回车即可完成无密码ssh的配置。

4.3 无密码ssh登录

再次使用命令ssh localhost 回车,可以不用密码登录ssh了。

下载和配置Hadoop
1下载Hadoop软件

hadoop官网上下载hadoop-0.20.203.0版本,当然也可以到这个网址下载http://archive.apache.org/dist/hadoop/core/,将下载的文件解压,本文将解压包放到了C:cygwinhomeAdministratorhadoop目录下,这个目录也是hadoop的主目录。

2配置Hadoop运行的文件

这一步也是最关键的一步,哥在这里花了相当的时间,这一点问题的解决也是我撰写本文的主要目的。

2.1编辑conf/hadoop-env.sh文件

编辑 hadoop目录下的conf/hadoop-env.sh文件,至少需要将JAVA_HOME设置为Java安装根路径。先将原来的# export JAVA_HOME=/usr/lib/j2sdk1.5-sun行的#符号去掉,#为注释符,然后将JAVA_HOME改为你的jdk安装的路径。这里关键的一点是在cygwin环境下windowsc:路径已经被映射为/cygdrive,所以JAVA_HOME的路径就为/cygdrive/c/Java/jdk1.6.0_27

具体该行修改为:export JAVA_HOME=/cygdrive/c/Java/jdk1.6.0_27

2.2 添加HADOOP_HOME变量值到PATH

另外本文还做了如下修改在# Command specific options appended to HADOOP_OPTS when specified 行的后面添加了hadoop的主工作目录,并将该目录添加到了Cygwinpath变量中。

添加的两行为:

export HADOOP_HOME=/cygdrive/c/cygwin/home/Administrator/hadoop

export PATH=$PATH:$HADOOP_HOME/bin

具体的hadoop 主目录与你的放置hadoop软件位置所决定。

2.3 配置conf/core-site.xmlhdfs-site.xmlmapred-site.xml文件

2.3.1 core-site.xml文件中添加内容后如下:

<configuration>

    <property>

        <name>hadoop.tmp.dir</name>

        <value>d:tmp</value>      //没有这个目录要自己创建

        <description>

            A base for other temoporary directoies.

        </description>

    </property>

    <property>

        <name>fs.default.name</name>

        <value>hdfs://localhost:9000</value>

        <description>

            The name of the default file system.A url whose

            scheme and authority determine the FileSystem implementation.  The

            uri's scheme determines the config property (fs.SCHEME.impl) naming

            the FileSystem implementation class.  The uri's authority is used to

            determine the host, port, etc. for a filesystem.

        </description>

    </property>

</configuration>

2.3.2 hdfs-site.xml文件添加内容后如下:

<configuration>

    <property>

        <name>dfs.replication</name>

        <value>1</value>

    </property>

</configuration>

2.3.3 mapred-site.xml文件添加内容后如下:

<configuration>

    <property>

        <name>mapred.job.tracker</name>

        <value>localhost:9001</value>

    </property>

</configuration>

3尝试运行Hadoop

尝试运行Hadoop。在cygwin中,使用cd命令切换当前工作目录到Hadoop的主目录下,运行命令:bin/hadoop namenode –format 回车。幸运的话程序会运行并格式化分布式文件系统。如下图所示:(撰写本文是已经执行过格式化命令,所示图可能与第一次之行格式化有些不同)

4可能出现的错误及如何解决
 4.1 可能错误

如果上步试运行操作没有出现:bin/java No such file or directory 的提示,那么你的单节点上部署安装Hadoop已经成功了,然而,有些事情并非如此顺利。而我在安装过程中确实出现了bin/java No such file or directory 的提示,当时始终认为是conf/hadoop-env.sh脚本文件中的JAVA_HOME变量值设置错误,曾尝试无数次把JAVA_HOME变量值设置为/cygdrive/c/Java/jdk1.6.0_27或是"C:Javajdk1.6.0_27"都不能解决问题。

但是,到底是什么原因导致这个错误出现,最终不能启动运行hadoop?

4.2 解决方法

答案是修改后的conf/hadoop-env.sh脚本文件中的字符编码是windows的而不是unix式的,导致配置文件中的JAVA_HOME变量无效。

解决方法是在hadoop目录下,运行命令:dos2unix conf/hadoop-env.sh 命令,将hadoop-env.sh文件中的windows字符转为unix字符即可。

4.3 运行测试

重新运行命令bin/hadoop namenode –format 回车,到此ok,完成安装。

启动hadoop软件
1 启动Hadoop软件

cygwin用户目录下,输入命令 cd hadoop 回车,将工作目录切换到hadoop主目录下。输入命令 bin/start-all.sh 回车,启动hadoop 回车。如图所示:

2 浏览查看namenode 节点分布式文件系统使用状况。

在浏览器中输入:http://localhost:50070

浏览NameNodeJobTracker的网络接口,它们的地址默认为:

NameNode http://localhost:50070/

JobTracker http://localhost:50030/

3 关闭Hadoop

输入命令 bin/stop-all.sh 回车,关闭。

 

直接从word中复制、粘贴过来的,想看图的详细一点的就下载附件。

获到百度文库下载  

 http://wenku.baidu.com/view/c040bca2284ac850ad02428f.html



http://blog.sciencenet.cn/blog-288615-493280.html


0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2020-2-26 05:55

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部