無需Cygwin!Windows7 Hadoop0.20.2安裝配置(單節點)

    由於用cygwin的方式在windows7上配置hadoop(使用Cygwin 的主要目的是爲了執行hadoop bin 目錄下的Linux Shell 腳本),總是出問題,索性就放棄了,恰好在網上找到一個教程,無需使用Cygwin便可配置,因此就記下來供你們參考,有誤之處請多海涵。node

  • 須要配置JDK環境,版本號要注意,通常1.6以上。
  • 下載hadoop-0.20.2.tar.gz軟件包,解壓至目錄好比F:\apache\hadoop-0.20.2,設置環境變量HADOOP_HOME爲hadoop安裝目錄
    • 使用hadoop 補丁,將hadoop 相關進程做爲Windows 服務執行,並使之能夠在Windows 命令行中直接執行hadoop 命令。
                    補丁包:Hadoop-0.20.2-patched.zip  site:https://issues.apache.org/jira/browse/HADOOP-6767

                    (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

    • 設置HADOOP_USER 環境變量(系統變量):HADOOP_USER=  hadoop(hadoop爲當前登陸Windows 的用戶賬號名稱)
    • 打開Window 命令行提示符(在Windows 7 中要以管理員身份執行)。進入HADOOP_HOME 的service\bin 目錄建立服務,執行下列命令:

                        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),確認上述服務安裝成功。

  • 接下來,須要修改hadoop 的配置文件,它們位於conf 子目錄下,分別是hadoop-env.sh、core-site.xml、hdfs-site.xml 和mapred-site.xml 共四個文件。
    • 修改hadoop-env.sh

                    只須要將JAVA_HOME 修改爲JDK 的安裝目錄便可,請注意JDK 必須是1.6 或以上版本。

    • 修改core-site.xml

                    爲簡化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

                    爲簡化hdfs-site.xml 配置,將D:\hadoop\run\src\hdfs 目錄下的hdfs-default.xml 文件複製到                                           D:\hadoop\run\conf 目錄下,並將hdfs-default.xml 文件名改爲hdfs-site.xml。不須要再作其它修改。

    • 修改mapred-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>

  • 格式化HDFS 文件系統:

          進入HADOOP_HOME\bin 目錄,執行:hadoop.bat namenode -format

  • 編寫服務啓動腳本start-all.bat:在 HADOOP_HOME\bin 目錄下,新建文件:start-all.bat  輸入內容爲:

             @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

  • 進入HADOOP_HOME\bin 目錄,執行命令start-all.bat

          在瀏覽器中經過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便可。
相關文章
相關標籤/搜索