研究hadoop分散式運算平臺及三台伺服器的實現

來源:互聯網
上載者:User
參考文章


HTTP://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop1/index.html


HTTP://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop2/index.html


HTTP://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop3/


HTTP://hi.baidu.com/zeorliu/blog/item/3633468235fce8a40cf4d23d.html





按照developerworks上的這幾篇文章去做,就可以把hadoop配置起來,我在這裡就不多囉嗦了,下面呢是我在配置過程中遇到問題時的一些記錄,可以參考一下。





--------------20080819------------------


安裝cygwin


HTTP://bbs.wuyou.com/viewthread.php?tid=119296&extra=page%3D6








體驗hadoop


$ cd /cygdrive/e/workspace/searchengine/hadoop/hadoop-0.18.0


$ mkdir test-in 


$ cd test-in


#在 test-in 目錄下創建兩個文字檔, WordCount 程式將統計其中各個單詞出現次數


$ echo "hello world bye world" >file1.txt  


$ echo "hello hadoop goodbye hadoop" >file2.txt


$ cd ..


$ bin/hadoop jar hadoop-0.18.0-examples.jar wordcount test-in test-out


#執行完畢,下面查看執行結果:


$ cd test-out


$ cat part-00000


bye     1


goodbye  1


hadoop  2


hello    2


world   2





-------------------------20080822


偽分散式運行模式





這種模式也是在一台單機上運行,但用不同的 JAVA 進程模仿分散式運行中的各類結點 ( NameNode, DataNode, JobTracker, TaskTracker, Secondary NameNode ),請注意分散式 運行中的這幾個結點的區別:





從分散式存儲的角度來說,集群中的結點由一個 NameNode 和若干個 DataNode 組成, 另有一個 Secondary NameNode 作為 NameNode 的備份。 從分散式應用的角度來說,集群中的結點由一個 JobTracker 和若干個 TaskTracker 組成,JobTracker 負責任務的調度,TaskTracker 負責並存執行任務。 TaskTracker 必須運行在 DataNode 上,這樣便於資料的本地計算。 JobTracker 和 NameNode 則無須在同一台機器上。





(1) 按代碼清單2修改 conf/hadoop-site.xml。 注意 conf/hadoop-default.xml 中是 Hadoop 缺省的參數,你可以通過讀此檔瞭解 Hadoop 中有哪些參數可供配置,但不要修改此檔。 可通過修改 conf/hadoop-site.xml 改變缺省參數值,此檔中設置的參數值會覆蓋 conf/hadoop-default.xml 的同名參數。





<configuration>


  <property>


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


    <value>localhost:9000</value>


  </property>


  <property>


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


    <value>localhost:9001</value>


  </property>


  <property>


    <name>dfs.replication</name>


    <value>1</value>


  </property>


</configuration>





(2)配置 SSH,如代碼清單3所示:


$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa


$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys





$ cd /cygdrive/c/hadoop-0.16.0


$ bin/hadoop namenode –format





$ bin/start-all.sh 


$ ps –ef





$ bin/hadoop dfs -put ./test-in input 


#將本地檔案系統上的 ./test-in 目錄拷到 HDFS 的根目錄上,目錄名改為 input


#執行 bin/hadoop dfs –help 可以學習各種 HDFS 命令的使用。


$ bin/hadoop jar hadoop-0.18.0-examples.jar wordcount input output


#查看執行結果:


#將檔從 HDFS 拷到本地檔案系統中再查看:


$ bin/hadoop dfs -get output output


$ cat output/*


#也可以直接查看


$ bin/hadoop dfs -cat output/*


$ bin/stop-all.sh #停止 hadoop 進程





故障診斷





(1) 執行 $ bin/start-all.sh 啟動 Hadoop 進程後,會啟動5個 java 進程, 同時會在 /tmp 目錄下創建五個 pid 檔記錄這些進程 ID 號。 通過這五個檔,可以得知 namenode, datanode, secondary namenode, jobtracker, tasktracker 分別對應于哪一個 JAVA 進程。 當你覺得 Hadoop 工作不正常時,可以首先查看這5個 java 進程是否在正常運行。





(2) 使用 web 介面。 訪問 HTTP://localhost:50030 可以查看 JobTracker 的運行狀態。 訪問 HTTP://localhost:50060 可以查看 TaskTracker 的運行狀態。 訪問 HTTP://localhost:50070 可以查看 NameNode 以及整個分散式檔案系統的狀態,流覽分散式檔案系統中的檔以及 log 等。





(3) 查看 ${HADOOP_HOME}/logs 目錄下的 log 檔,namenode, datanode, secondary namenode, jobtracker, tasktracker 各有一個對應的 log 檔 ,每一次運行的計算任務也有對應用 log 檔。 分析這些 log 檔有助於找到故障原因。








---------------------20080825---------------------


下載所有版本,取0.18做為研究版本,需要下載jdk1.6來編譯,才能通過








---------------------20080826---------------------------


安裝IBM MapReduce Tools for Eclipse


1)配置Hadoop Home Directory ,注意這個目錄下面需要有*core.jar包


2)配置運行,start Hadoop Server,需要指定cygwin的目錄方式,才能找到hadoop home





用192.168.1.91~93做測試,91為linux1,92為linux2,93為linux3.


linux1通過可信任的ssh方式來登錄linux2,linux3,來控制tasktracker和datanode





hadoop目錄:/home/kevin/hadoop-0.18


jdk目錄:/home/kevin/jdk1.6.0_10





>>>>>設定檔


masters內容如下:


linux1





slaves內容如下:


linux2


linux3





hadoop-site.xml內容如下:





<?xml version="1.0"?>


<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>





<!-- Put site-specific property overrides in this file. -->


<configuration>


<property>


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


<value>hdfs://linux1:9000/</value>


<description>The name of the default file system. Either the literal string


"local" or a host:port for DFS.</description>


</property>


<property>


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


<value>hdfs://linux1: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>


<property>


<name>dfs.name.dir</name>


<value>/home/kevin/hadoopfs/name</value>


<description>Determines where on the local filesystem the DFS name node


should store the name table. If this is a comma-delimited list of directories


then the name table is replicated in all of the directories,


for redundancy. </description>


</property>


<property>


<name>dfs.data.dir</name>


<value>/home/kevin/hadoopfs/data</value>


<description>Determines where on the local filesystem an DFS data node


should store its blocks. If this is a comma-delimited list of directories,


then data will be stored in all named directories, typically on different devices.


Directories that do not exist are ignored.</description>


</property>


<property>


<name>dfs.replication</name>


<value>2</value>


<description>Default block replication. The actual number of replications


can be specified when the file is created. The default is used if replication


is not specified in create time.</description>


</property>


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.