由於用cygwin的方式在windows7上配置hadoop(使用Cygwin 的主要目的是爲了執行hadoop bin 目錄下的Linux Shell 腳本),總是出問題,索性就放棄了,恰好在網上找到一個教程,無需使用Cygwin便可配置,因此就記下來供你們參考,有誤之處請多海涵。node
(1) 將補丁包解壓。apache
(2) 將補丁包目錄下的hadoop-0.20.2-core.jar 和service 目錄複製到HADOOP_HOMEwindows
(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\libapp
InstallService.bat ..\conf\JobTracker.conf工具
InstallService.bat ..\conf\NameNode.confoop
InstallService.bat ..\conf\TaskTracker.confspa
InstallService.bat ..\conf\DataNode.conf.net
(提示輸入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便可。