因为用cygwin的方式在windows7上配置hadoop(使用Cygwin 的主要目的是为了执行hadoop bin 目录下的Linux Shell 脚本),老是出问题,索性就放弃了,刚好在网上找到一个教程,无需使用Cygwin即可配置,所以就记下来供大家参考,有误之处请多海涵。
(1) 将补丁包解压。
(2) 将补丁包目录下的hadoop-0.20.2-core.jar 和service 目录复制到HADOOP_HOME
(3) 将补丁包bin 目录下的:cpappend.bat、hadoop.bat 复制到HADOOP_HOME\bin
(4) 将补丁包lib 目录下的:commons-compress-1.0.jar、commons-io-1.4.jar、jna-3.2.2.jar 复制到 HADOOP_HOME\lib
InstallService.bat ..\conf\JobTracker.conf
InstallService.bat ..\conf\NameNode.conf
InstallService.bat ..\conf\TaskTracker.conf
InstallService.bat ..\conf\DataNode.conf
(提示输入HADOOP_USER 用户的密码。应看到如下输出:wrapper | Hadoop XXXXXXX installed.)
打开Windows 服务工具(执行命令services.msc),确认上述服务安装成功。
只需要将JAVA_HOME 修改成JDK 的安装目录即可,请注意JDK 必须是1.6 或以上版本。
为简化core-site.xml 配置,将D:\hadoop\run\src\core 目录下的core-default.xml 文件复制到
D:\hadoop\run\conf 目录下, 并将core-default.xml 文件名改成core-site.xml 。修改fs.default.name 的值, 如下所示:
<property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> <description>The name of the default file system. A URI 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>
为简化hdfs-site.xml 配置,将D:\hadoop\run\src\hdfs 目录下的hdfs-default.xml 文件复制到 D:\hadoop\run\conf 目录下,并将hdfs-default.xml 文件名改成hdfs-site.xml。不需要再做其它修改。
为简化mapred-site.xml 配置,将D:\hadoop\run\src\mapred 目录下的mapred-default.xml文件复制到 D:\hadoop\run\conf 目录下,并将mapred-default.xml 文件名改成mapred-site.xml
<property> <name>mapred.job.tracker</name> <value>localhost:9001</value> <description>The host and port that the MapReduce job tracker runs at. If "local", then jobs are run in-process as a single map and reduce task. </description> </property>
进入HADOOP_HOME\bin 目录,执行:hadoop.bat namenode -format
@echo off
net start namenode
net start datanode
net start jobtracker
net start tasktracker
编写服务停止脚本stop-all.bat:在 HADOOP_HOME\bin 目录下,新建文件:stop-all.bat 输入内容为:
@echo off
net stop tasktracker
net stop jobtracker
net stop datanode
net stop namenode
在浏览器中通过Web 界面查看namenode:http://localhost:50070/
在浏览器中通过Web 界面查看jobtracker:http://localhost:50030/
我在启动服务的过程中遇到了问题,即NameNode无法启动,解决方案:
在 HADOOP_HOME/conf/ hadoop-env.sh 里面,修改配置如下: export HADOOP_PID_DIR=/home/hadoop/pids pid文件默认在/tmp目录下,而/tmp是会被系统定期清理的,所以Pid文件被删除后就no namenode to stop core-site.xml添加hadoop.tmp.dir :
<property> <name>hadoop.tmp.dir</name> <value>/home/XXX/hadoop/namenode</value> </property>最后重新执行hadoop.bat namenode format命令,然后start-all.bat即可。