说明及前期准备
为什么要在windows下配置hadoop?
- 最适合运行hadoop的平台是linux,毕竟hadoop的文件系统是基于linux的文件系统构建的。因此可选的hadoop运行方案有:真机下的Linux运行,虚拟机下的Linux运行,Windows中安装Cygwin运行。
- 内存够大,CPU速度够快,想体验原生Linux环境又不想脱离开Windows可以借助虚拟机运行hadoop。
- Cygwin为我们模拟了一个Linux环境(去官网查看更多的介绍),在Windows中使用Cygwin的好处是不用安装Linux虚拟机,可以直接在Windows中执行伪Linux命令,对于常在Windows下工作的用户而言是个不错的选择,也便于针对hadoop开发Map/Reduce应用。
去官网把下面的东西搞到
- 下载并安装jdk(Windows版本的),建议使用最新的1.7版;
- 去Cygwin官网下载setup.exe安装程序;
- 去hadoop官网下载稳定版本1.0.4的bin.tar.gz包
Cygwin安装配置
安装Cygwin不要让安装路径中出现空格,比如不要安装到C:\Program Files\Cygwin。
在下面的安装界面中搜索并安装一下软件(默认是skip的):ssh(hadoop需要),vim(编辑配置文件),wget(下载用)。
Cygwin中的ssh服务配置
具体的配置方法就不详细叙述了,参考一下链接进行配置:http://blog.chinaunix.net/uid-25603759-id-252295.html
为Cygwin添加Windows jdk目录的软连接
hadoop还不能很好地处理路径中的空格,所以如果你安装jdk的路径中包含空格,需要额外处理一下,没有空格的话跳过此步。
我们使用软连接的方式解决空格问题:
打开cygwin的控制台,输入以下命令(视具体路径而定)
Hadoop单节点(Single Node)配置
1. 首先将下载的hadoop放到你的主目录(cygwin安装目录下的home/用户名)中,使用tar –xzvf hadoop_1.0.4.bin.tar.gz将hadoop解压。
2. 转到hadoop的conf目录,使用vi编辑hadoop-env.sh运行环境相关配置,去掉export JAVA_HOME前面的#注释,修改为本机对应的jdk目录。
注意:JAVA_HOME的设置,如果已经设置了jdk目录的软连接,直接填写软连接的目录,可避免路径中包含空格的问题,如:/usr/local/jdk1.7.0_09
3. 分配配置以下3个文件:
conf/core-site.xml:
<configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> </configuration>conf/hdfs-site.xml:
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>conf/mapred-site.xml:
<configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> </configuration>
4. 设置ssh免登陆:在Cygwin中使用如下命令设置不需要密码的dsa秘钥对。
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
设置完成后使用ssh localhost测试能否登陆到本机,如果无法连接请查看ssh服务的配置是否正确。
运行Hadoop
1. 首先要格式化hadoop文件系统(只需第一使用的时候,或是hadoop出现重大的难以修复的故障是才格式化)
$ bin/hadoop namenode –format
2. 启动hadoop
$ bin/start-all.sh
3. 测试hadoop是否正常启动
访问namenode节点:http://localhost:50070/
访问jobtracker节点:http://localhost:50030/
如果以上2个节点都能正常访问说明hadoop已经正常启动了,如果不能正常访问可以查看${HADOOP_HOME}/logs目录下的日志,找到错误原因。