hadoop學習(二)hadoop集群的啟動


一、完全分布式集群環境的搭建

  1、配置hosts文件:將三台集群服務器的主機名與IP的對應關系互相配置到對方的hosts文件中,以便對方服務器能通過主機名尋找IP,hosts文件在/etc目錄下。

  2、建立hadoop運行賬號,這個就不說了。

  3、配置ssh免密碼連入,配置這個地方可能會出現問題,具體細節看上一篇博客。

  4、下載並解壓hadoop安裝包,需要說明的是最好是先chmod更改一下權限,使用tar xzvf 包名 來解壓。

  5、在namenode節點上配置hadoop:

    (1)修改~/hadoop-0.20.2/conf目錄下的core-size.xml文件內容,用來配置namenode節點IP和斷口,如下:

      <configuration>

        <property>

          <name>fs.default.name</name>

          <value>hdfs://namenode服務器ip地址:9000</value>

        </property>

      </configuration>

    (2)修改~/hadoop-0.20.2/conf目錄下的hdfs-site.xml文件內如,用來配置備份數據的份數,如下:

      <configuration>

        <property>

          <name>dfs.replication</name>

          <value>2(數據備份兩台服務器)</value>

        </property>

      </configuration>

    (3)修改~/hadoop-0.20.2/conf目錄下的mapred-site.xml文件內容,用來配置jobtracker服務器的IP和斷口,如下:

      <configuration>

        <property>

          <name>mapred.job.tracker</name>

          <value>jobtracker服務器的IP地址:9001</value>

        </property>

      </configuration>

    (4)修改~/hadoop-0.20.2/conf目錄下的masters和slaves文件,masters文件中寫namenode節點和jobtracker節點的主機名,slaves文件中寫datanode和tasktracker的主機名。

    (5)修改~/hadoop-0.20.2/conf目錄下的hadoop-env.sh文件,修改hadoop的jkd環境變量,找到export JAVA_HOME這一行,取消注釋,更改jdk安裝路徑。

    (6)將修改完成后的hadoop-0.20.2目錄復制到另外兩台datanode節點上,我是復制安裝包過去解壓,namenode上配置好了之后,將其conf目錄復制過去覆蓋即可。

    (7)格式化分布式文件系統:

       A、cd ~/hadoop-0.20.2/

       B、bin/hadoop namenode -format

       C、當有“successfully formatted”等字符出現時,表面格式化成功。

    (8)在namenode節點的hadoop解壓目錄下執行命令:bin/start-all.sh,即可啟動namenode進程、jobtracker進程、secondarynamenode進程、datanode進程、tasktracker進程。在namenode節點下使用:~/jdk1.6.0_45/bin/jps命令,可以看到啟動了NameNode進程、JobTracker進程、econdaryNameNode進程和Jps進程。在datanode節點下使用該命令,可以看到啟動了DataNode進程、TaskTracker進程和Jps進程。

 

二、完成分布式搭建后出現的問題。

  按照上面的步驟,是搭建成功了的,使用JPS命令,也看到對應的守護進程啟動了的。可以第二天過來再次用start-all.sh腳本啟動進程的時候發現悲劇了,namenode進程和jobtracker進程沒有起來,SecondaryNamenode進程倒是跑起來了。在看datanode節點,發現DataNode進程和TaskTracker進程倒是起來了。然后就是逐步解決問題,步驟如下:

  1、NameNode節點沒有啟動,用hadoop namenode -format命令格式化namenode節點,之后再次啟動,發現NameNode進程啟動了,但是JobTracker進程沒有啟動。

  2、繼續,刪除/tmp目錄下的文件,因為進程啟動后會生成一些文件默認存放在/tmp目錄下,然后刪除~/hadoop-0.20.2/data目錄下的所有內容,使用stop-all.sh腳本關閉所有進程后再次啟動所有進程,發現NameNode進程和JobTracker進程起來了,再到datanode節點下看看,發現DataNode節點沒有起來,悲劇!!

  3、繼續排錯,發現好像是因為格式化namenode次數過多,datanode節點上存放的還是之前的namenodeID,所以刪除datanode節點下~/hadoop-0.20.2/data目錄下所有內容,再次重啟namenode節點上的守護進程,namenode沒問題,datanode也沒問題,ok終於搞定。

 

三、注意事項:      

  1、可以不用配置hosts文件,在master、slave文件中給出具體IP就行。

  2、在真實集群環境中,使用以下幾步替換上面的幾個步驟:

    (1)使用DNS服務器的域名解析功能來替代修改hosts文件。

    (2)使用NFS實現密鑰共享,替換ssh免密碼登錄。

    (3)使用awk工具編寫腳本,批量復制hadoop。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM