windows下利用cygwin安装hadoop图文详解

原文地址http://blog.csdn.net/ruby97/article/details/7423088html

通过两天半的不懈努力,走了N次弯路,终于在本机上将hadoop安装成功,忽然在网上发现如下文章,深有体会,早发现这篇文章就不会那么坎坷了,如今转载过来,供你们参考,谢谢原博主的辛苦工做!java

注意:本文的配置环境是:node


  • CygWin最新版本2.769下载地址linux

  • Window7-64bitapache

  • JDK1.6.0_31-win64 (JRE6)下载地址ruby

  • Eclipse-Indigo..网络

  • Hadoop 0.20.2 (注意:0.20.203版本不可用,会致使tasktracker没法启动)下载地址oracle

-----------------------------------------华丽分割------------------------------------
环境安装&配置:
1.JDK,个人安装目录:C/Java,安装后视图
1333419832_9322.png

安装好了JDK,而后配置JAVA_HOME环境变量:
1333421413_6592.png
而后,把JDK下面的BIN目录追加到环境变量PATH后面。

2.CygWin,安装过程当中记得选择所需的包,这里须要的是:
Net Category下的:openssh,openssl
BaseCategory下的:sed (若须要Eclipse,必须sed)
Devel Category下的:subversion(建议安装)。具体请参考下面的图示:
1333420096_3522.png
1333420107_1304.png
1333420116_6575.jpg

安装完成后,把CygWin的bin目录以及usr/sbin 追加到系统环境变量PATH中。

3.Hadoop
把下载的hadoop-0.20.2.tar.gz解压到指定目录。我把解压后的Hadoop程序放到了Cygwin根目录下的hadoop文件夹中。具体以下图示:
(不要使用0.20.203版本的Hadoop!!!)
1333420346_3033.png

下面开始配置Hadoop。须要配置的文件:(hadoop/conf目录下)
  1. hadoop-env.shssh

  2. core-site.xmlide

  3. hdfs-site.xml

  4. mapred-site.xml

第一个文件 hadoop-env.sh
1333420666_6333.png
把里面的JAVA_HOME改掉,注意export前面的#号要去掉。
并且必需要使用linux的路径表达方式。个人jdk路径是 C:\JAVA\jdk1.6.0_31,在CygWin中对应的路径为: /cygdrive/c/java/jdk1.6.0_31

第二个文件:core-site.xml
首先删除它,而后把hadoop/src/core目录下的core-default.xml文件复制到conf目录下,并命名为core-site.xml。而后修改其中的fs.default.name变量,以下所示。
(确保端口号(个人是9100)未被占用)
1333420929_4112.png

第三个文件:hdfs-site.xml
首先把它删除,而后复制src/hdfs目录下的hdfs-default.xml到conf目录下,并更名为hdfs-site.xml
而后修改dfs.replication变量,以下图示:
该变量意思是文件系统中文件的复本数量。在单独的一个数据节点上运行时,HDFS没法将块复制到三个数据节点上。
1333421046_7812.png

第四个文件:mapred-site.xml
首先删除它,而后复制src/mapred目录下的mapred-default.xml到conf目录下,并更名为mapred-site.xml,而后修改其mapred.job.tracker变量:
(一样确保端口号未被占用)
1333421241_1480.png


----------------------------------华丽分割-------------------------------------
配置SSH服务 (首先确认安装了OpenSSH,OpenSSL两个包)
1.打开CygWin输入SSH-HOST-CONFIG
2.系统提示:should privilege separation be used ? 回答:no
3.系统提示:if sshd should be installed as service?回答:yes
4.系统提示:the value of CYGWIN environment variable 输入: ntsec
5.成功
下面是图示(我本身当时没记录,因此参考的是网络上的图片)
1333422065_3209.png

下一步,进入Window系统的服务菜单,打开Cygwin的SSHD服务:以下图所示:
1333422225_9307.png
下面继续回到CygWin环境:执行以下命令:
1.ssh-keygen而后一直回车
2.cd ~/.ssh
3. cp id_rsa_pub anthorized_keys
4.exit 退出cygwin,若不退出,可能出错
再次登陆时查看一下:
1333422494_2377.png
5运行 ssh localhost 如有提示,则回车。
6执行 ps 若看到 有/usr/bin/ssh 进程,说明成功

------------------------------------华丽分割----------------------------------
启动Hadoop
第0步:为了不jobtracker,info could only be replicated to 0 node,instead of 1错误,最好把 hadoop/conf目录下面的 masters和slaves文件所有改成127.0.0.1(原内容为:localhost)
第一步,在hadoop目录下建立目录logs,用于保存日志

第二步,格式化管理者,即namenode,建立HDFS
执行命令: bin/hadoop namenode -format,下面示表明成功
1333422914_6919.png
此时,执行ps,应该能看到ssh进程,且看不到java虚拟机进程。

第三步,启动Hadoop,执行命令: bin/start-all.sh
而后执行jps命令,你可能会看到以下图:
1333423481_9340.png
会发现Datanode ,Secondarynamenode以及TaskTracker都没有启动。网上有人说是JPS的问题,具体不是很清楚,但本文后面的文件系统可使用。Datanode能够保存数据,继续看吧。

不过此时执行PS命令,能看到5个JVM进程。
1333423578_2216.png
不知道这算不算成功,但个人Logs日志文件夹里面没有报错。

------------------------------华丽分割---------------------------------------
文件系统操做
为了验证HDFS可以正常工做咱们能够进行文件的上传操做。
执行命令:
bin/hadoop fs -mkdir In
bin/hadoop fs -put *.txt In
以上命令会在HDFS中创建In文件夹,而后把本地Hadoop目录下的全部文本文件上传到HDFS中,Hadoop目录下共用四个txt文件:
1333423855_2695.png
OK,上传的太少,不爽,再上传一部电影。好比,我要把一个视频文件movie.mpg上传到HDFS中,首先,在Hadoop根目录下创建文件夹local,而后把movie.mpg拷贝到其中
1333424020_9106.png
下面执行命令:
1333424075_6532.png
而后,查看文件系统是否有上述文件:
1333424121_5836.png
能够看到Movie.mpg在HDFS中。

一样在Eclipse中也能看到哇:
1333424182_6672.png

OK,忽然不能贴图了,我再接着写一篇吧。介绍一下常见的错误处理。
相关文章
相关标签/搜索