Windows环境使用Cygwin安装Hadoop(亲测可用)

来源:互联网 发布:怎么创建自己软件 编辑:程序博客网 时间:2024/06/05 15:12

网上看了各种各样的安装教程,自己安装的过程中遇到了各种各样的坑,最后终于安装成功,现在将安装过程总结如下:

主要过程是参照 http://blog.csdn.net/ruby97/article/details/7423088 中间做了部分修改


以下为原博文内容,(修改内容用大红字在括号中标出):

经过一整天的折腾,参考了网上很多资料,我机器上的Hadoop似乎是配置成功了。下面分享一下详细的配置过程。也祝愿大家在配置的过程中少走弯路。

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

  • CygWin最新版本2.769下载地址
  • Window7-64bit
  • JDK1.6.0_31-win64 (JRE6)下载地址
  • Eclipse-Indigo..
  • Hadoop 0.20.2 (注意:0.20.203版本不可用,会导致tasktracker无法启动)下载地址
  • (这个链接无法访问了,我在ChinaUnix.net下载中心找到的相关0.20.2版本)
-----------------------------------------华丽分割------------------------------------
环境安装&配置:
1.JDK,我的安装目录:C/Java,安装后视图


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

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




安装完成后,把CygWin的bin目录以及usr/sbin 追加到系统环境变量PATH中。
(我并没有添加usr/sbin,貌似没有影响)

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


(按照下面的修改就行了)
下面开始配置Hadoop。需要配置的文件:(hadoop/conf目录下)
  1. hadoop-env.sh
  2. core-site.xml
  3. hdfs-site.xml
  4. mapred-site.xml
第一个文件 hadoop-env.sh

把里面的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)未被占用)


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


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



----------------------------------华丽分割-------------------------------------
配置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.成功
下面是图示(我自己当时没记录,所以参考的是网络上的图片)


下一步,进入Window系统的服务菜单,打开Cygwin的SSHD服务:如下图所示:


(我因为安装过一次Cygwin然后又删了,启动服务就一直报

错误1069:由于登录失败而无法启动服务

,这里提供一下重新安装服务的方法,开始试了用户的密码,一直出错,后来试了用"admin"作为密码,就可以启动服务了,不知为何)

首先卸载ssh服务。以管理员的权限启动cygwin的终端,在cygwin终端下输入:

net stop sshd

cygrunsrv -E sshd

cygrunsrv -R sshd


(然后 重新安装服务 )
注意下面这个问题的答案是ntsec tty:  Query: Enter the value of CYGWIN for the daemon: [] ntsec tty



下面继续回到CygWin环境:执行如下命令:
1.ssh-keygen然后一直回车
2.cd ~/.ssh
3.     cp id_rsa_pub anthorized_keys(这一步我并没有成功但是好像没有什么影响)
4.exit 退出cygwin,若不退出,可能出错
再次登录时查看一下:

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,下面示代表成功(新版的Hadoop的bin目录里是没有这些东西的,都在sbin目录里,试了好久没安好,所以用旧版本来安,这里会出错的地方一般就是JAVA_HOME没有写对)
此时,执行ps,应该能看到ssh进程,且看不到java虚拟机进程。

第三步,启动Hadoop,执行命令: bin/start-all.sh

(运行到这里后

验证是否成功安装


打开浏览器,输入网址:http://localhost:50030     然后回车,如果能访问则安装成功。访问截图如下:


  


以上为其他教程里面看到的验证成功方式,反正我访问以上路径是会看到这个页面)




然后执行jps命令,你可能会看到如下图:

会发现Datanode ,Secondarynamenode以及TaskTracker都没有启动。网上有人说是JPS的问题,具体不是很清楚,但本文后面的文件系统可以使用。Datanode可以保存数据,继续看吧。

不过此时执行PS命令,能看到5个JVM进程。

不知道这算不算成功,但我的Logs日志文件夹里面没有报错。

------------------------------华丽分割---------------------------------------
文件系统操作
为了验证HDFS能够正常工作我们可以进行文件的上传操作。
执行命令:
bin/hadoop fs -mkdir In
bin/hadoop fs -put  *.txt In
以上命令会在HDFS中建立In文件夹,然后把本地Hadoop目录下的所有文本文件上传到HDFS中,Hadoop目录下共用四个txt文件:

OK,上传的太少,不爽,再上传一部电影。比如,我要把一个视频文件movie.mpg上传到HDFS中,首先,在Hadoop根目录下建立文件夹local,然后把movie.mpg拷贝到其中

下面执行命令:

然后,查看文件系统是否有上述文件:

可以看到Movie.mpg在HDFS中。

同样在Eclipse中也能看到哇:


OK,突然不能贴图了,我再接着写一篇吧。介绍一下常见的错误处理。

阅读全文
0 0
原创粉丝点击