偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Hadoop2.2.0多節(jié)點(diǎn)分布式安裝及測(cè)試

開(kāi)發(fā) 前端 分布式 Hadoop
眾所周知,hadoop在10月底release了最新版2.2。很多國(guó)內(nèi)的技術(shù)同仁都馬上在網(wǎng)絡(luò)上推出了自己對(duì)新版hadoop的配置心得。

眾所周知,hadoop在10月底release了最新版2.2。很多國(guó)內(nèi)的技術(shù)同仁都馬上在網(wǎng)絡(luò)上推出了自己對(duì)新版hadoop的配置心得。這其中主要分為兩類(lèi):

1.單節(jié)點(diǎn)配置

這個(gè)太簡(jiǎn)單了,簡(jiǎn)單到只要懂點(diǎn)英語(yǔ),照著網(wǎng)上說(shuō)的做就ok了。我這里不談這個(gè),有興趣的童鞋可以自己去問(wèn)度娘和谷哥~

2.多節(jié)點(diǎn)配置

這個(gè)就是我要重點(diǎn)說(shuō)明的,老實(shí)說(shuō)網(wǎng)絡(luò)上說(shuō)的的確是多節(jié)點(diǎn),但不是真正的分布式部署~ 我們?yōu)槭裁匆胔adoop?因?yàn)閔adoop是一個(gè)分布式系統(tǒng)基礎(chǔ)架構(gòu),我們可以在不了解分布式底層細(xì)節(jié)的情況下,開(kāi)發(fā)分布式程序。充分利用集群的威力進(jìn)行高速運(yùn)算和存儲(chǔ)。 如果只是多節(jié)點(diǎn),但是程序還在一個(gè)節(jié)點(diǎn)運(yùn)行,其它節(jié)點(diǎn)沒(méi)有參與程序運(yùn)行活動(dòng)。 那和你在網(wǎng)吧里,自己一個(gè)人看片子和其他人無(wú)交集有什么區(qū)別? 所以網(wǎng)上提供的都是多節(jié)點(diǎn)偽分布式的配置~

接下來(lái)我會(huì)貢獻(xiàn)出自己這幾天弄的一些心得,或許有人看了開(kāi)頭覺(jué)得我寫(xiě)的和網(wǎng)上那些差不多,但是真正的區(qū)別我會(huì)在之后列出來(lái),就看誰(shuí)有耐心看完我寫(xiě)的東西啦~霍霍~

準(zhǔn)備

我用的linux系統(tǒng)是ubuntu 12.04 LTS server版(就是沒(méi)有桌面顯示的版本)。 虛擬機(jī)用的是VMWare Workstation10,ssh客戶端是開(kāi)源的putty,還有ftp客戶端軟件是cuteFTP(雖然可以在linux系統(tǒng)里用vim對(duì)文件進(jìn)行編輯修改,但我覺(jué)得有客戶端直接在windows系統(tǒng)里修改文件比較方便和高效)。 tomcat版本是6.0.29,jdk版本是1.7.45。虛擬機(jī)里ubuntu的網(wǎng)絡(luò)設(shè)置我用的是UAT模式,也就是說(shuō)和外部window系統(tǒng)的網(wǎng)絡(luò)配置是共享的,除了IP地址不一樣,其他都雷同。

安裝tomcat和jdk什么我就不用說(shuō)了。還有初始的分辨率是600x800,需要重調(diào)我也不說(shuō)了。至于安裝vsftpd和openssh,我更加不說(shuō)了。度娘和谷哥都知道。

這里就列我弄的兩個(gè)ubuntu系統(tǒng)。hadoop里把主節(jié)點(diǎn)系統(tǒng)叫為master,從節(jié)點(diǎn)系統(tǒng)叫為slave。master只能有一 個(gè),slave可以有許多個(gè)。就如一個(gè)老板可以有很多員工為他打工一樣。(當(dāng)然在很多情況下,還會(huì)有個(gè)做備份的master,防止master出問(wèn)題時(shí) 候,有個(gè)替補(bǔ)直接頂上)

為了行文方便,后面我就直接用master和slave稱(chēng)呼這兩個(gè)。(網(wǎng)上都喜歡用三節(jié)點(diǎn)做例子,一個(gè)master兩個(gè)slave,我簡(jiǎn)化了一下,就一個(gè)master和一個(gè)slave,反正都是以此類(lèi)推的東西,搞簡(jiǎn)單點(diǎn))

我的系統(tǒng)原始信息:

  hostname IP address
master hadoop 192.168.72.130
slave hadoop1 192.168.72.128

hostname是自己改的,IP地址是你安裝完你的ubuntu后,電腦在UAT模式下自動(dòng)生成的IP地址。請(qǐng)根據(jù)你自己情況記錄這些信息。還有hostname如何永久地改成hadoop和hadoop1,請(qǐng)問(wèn)度娘和谷哥。

每個(gè)ubuntu里分別加入專(zhuān)為hadoop使用的帳號(hào)

命令:

addgroup hadoop adduser ingroup hadoop wujunshen

這個(gè)wujunshen是我在用VMWare安裝ubuntu時(shí)候,讓我自己設(shè)定的帳號(hào)名字,大家可以自行設(shè)定。但是hadoop這個(gè)用戶組名最好不要改。

有人會(huì)問(wèn) ubuntu里非root賬戶登錄后,輸入命令開(kāi)頭不都要打sudo么?這個(gè)其實(shí)也可以設(shè)置,再次提醒請(qǐng)問(wèn)度娘和谷哥。這里哥給個(gè)當(dāng)年自己記錄的博文鏈接: http://darkranger.iteye.com/admin/blogs/768608

注意:兩個(gè)ubuntu的hadoop帳號(hào)名要一樣,不一樣就算你配置好了,測(cè)試時(shí)候也不成功的。我看了一下hadoop的代碼,它好像是在hadoop代碼里寫(xiě)死了讀取帳號(hào)名的值。(shell不太會(huì),只看了個(gè)大概) 有人說(shuō)要在系統(tǒng)里設(shè)置%HADOOP_HOME%為你安裝hadoop的路徑,就可以帳號(hào)名不一樣了。 我沒(méi)試驗(yàn)過(guò),因?yàn)槲矣X(jué)得測(cè)試這個(gè)有點(diǎn)無(wú)聊了,或許《生活大爆炸》里Sheldon會(huì)這么做。:)

建立兩個(gè)系統(tǒng)ssh通信互相信任關(guān)系

要在兩個(gè)系統(tǒng)上每一個(gè)進(jìn)行以下操作。(如果slave有很多個(gè),這樣做是很浪費(fèi)時(shí)間的,一般都要用個(gè)shell自動(dòng)化腳本來(lái)建立信任關(guān)系。這里只是示例,麻煩各位手打或copy了。)

進(jìn)入wujunshen帳號(hào),輸入命令

ssh-keygen -t rsa -P "" cat .ssh/id_rsa.pub >>.ssh/authorized_keys (出現(xiàn)兩個(gè)問(wèn)題,第一個(gè)問(wèn)題回車(chē)就行,第二個(gè)輸入y回車(chē),千萬(wàn)不要直接回車(chē),否則不會(huì)生成key)  

注意:如果出現(xiàn)錯(cuò)誤:-bash: .ssh/authorized_keys: No such file or directory 這是由于新建好的用戶帳號(hào),比如我這里是wujunshen這個(gè)帳號(hào),默認(rèn)沒(méi)有.ssh目錄,需要自己建立。

mkdir -p ~/.ssh

接下來(lái)還有一步,我用cuteFTP做的,覺(jué)得自己牛逼的可以用linux的拷貝粘貼命令搞。

在每個(gè)ubuntu下找到剛才生成的authorized_keys文件,我這里路徑是: /home/wujunshen/.ssh/authorized_keys

修改該文件,讓此文件包含生成的rsa字符串(有關(guān)RSA加密算法的由來(lái),你還是可以去問(wèn)度娘和谷哥,那是個(gè)傳奇的故事)和兩個(gè)ubuntu的hostname,比如我這里是:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEBNUjKbZQOQsc6iNawm5VxXk+Kx5MXS1A6ZX/xtAfAI3jurVTgNHz6T2exf/dHP3aoaK49vl6EeMg4hZ7qwxldeERMXNBu5m0y/JyRupX9RfHRjJyqSXRdJ1WjE2ySPtXdLNPjKDvzjf61dSP/iMXeemlZfZV2VNqJiLTlpG3OvjraICUXCXMMB4h72Qm59iIHZ4iRI2v5VMmp+CeGEqHba0O8UUkpSpqC8vZCFJKL+IfCFups9OGrKIT854/Xc+vPSd89jA3RLubJThE/F/8QczqSBHXYrLeUMir3lFEPqLe7U4jk5n83/3fAsagaUyXBCWGm7LanLgXsqMfKBxD wujunshen@hadoop1 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+umV0w7qcQyHJzfqRc+mHE+eCWw8Ns/uU05CF4fEJnGkys+0Itwsh+edwt8K4oHZ8rK0THO1ip2oNXHzVJ8aJ7rpeI19N0BubCahhGbVNqzgyGgvbnz3+xD/La47YNBzjHF4AxTu+Dj51vOp1yRaiTwhu93o9PP18x2Ai7aNQEap7pGpBwogbfSWDBvZNq9PJYinjzhnVqJ7bctJe+1ufme7bX+vyu1hrdtfpwXgW5GiXQ6uvYH6ExiTSWlLFMyDgD63APm1P2Hs1hlR1gNE3SC4q34mfExhoxY3JJgfbP0x2rt8PfdWk5Lzxtaylj85bmZi/9xDvXdoqjtSv4Mxb wujunshen@hadoop

保證每個(gè)ubuntu系統(tǒng)的authorized_keys文件都包含wujunshen@hadoop1和wujunshen@hadoop以及它們的rsa字符串.

然后在其中一個(gè)ubuntu上進(jìn)行測(cè)試,比如我這里在master里輸入

ssh hadoop1  

去訪問(wèn)slave,這樣就不需要輸入密碼就能訪問(wèn)hadoop1,然后我輸入

ssh hadoop  

回到master。

結(jié)果如下:

wujunshen@hadoop:~$ ssh hadoop1 Welcome to Ubuntu 12.04.3 LTS (GNU/Linux 3.8.0-29-generic i686) * Documentation:  https://help.ubuntu.com/ Last login: Wed Nov 27 19:29:55 2013 from hadoop wujunshen@hadoop1:~$ ssh hadoop Welcome to Ubuntu 12.04.3 LTS (GNU/Linux 3.8.0-29-generic i686) * Documentation:  https://help.ubuntu.com/  Last login: Wed Nov 27 19:30:03 2013 from hadoop1 wujunshen@hadoop:~$

截圖:

enter image description here

注意:如果ssh hadoop或ssh hadoop1 出現(xiàn)錯(cuò)誤: Host key verification failed

解決方法:到 /home/wujunshen/.ssh目錄下找到known_hosts文件,刪除known_hosts文件。命令

rm known_hosts  

#p#

安裝

去官網(wǎng)下載hadoop-2.2.0.tar.gz

然后在兩個(gè)ubuntu里進(jìn)行以下操作。

解壓壓縮包在/home/wujunshen目錄下

命令:

tar zxf hadoop-2.2.0.tar.gz  

解開(kāi)之后是個(gè)hadoop-2.2.0文件夾,改名為hadoop

命令:

mv hadoop-2.2.0 hadoop  

安裝結(jié)束。(安裝很簡(jiǎn)單,但你要想用起來(lái),接下來(lái)是重頭戲)

配置

以下操作,master和slave都是一樣的。

在/home/wujunshen/hadoop/etc/hadoop下找 hadoop-env.sh,修改此文件 找到export JAVA_HOME這一列,后面改成自己的jdk安裝目錄,比如我這里是/usr/lib/jdk1.7.0_45

改成

export JAVA_HOME=/usr/lib/jdk1.7.0_45  

在同一路徑下找 core-site.xml,修改它在 < configuration >中添加:

  1. <property> 
  2.  <name>hadoop.tmp.dir</name> 
  3.  <value>/home/wujunshen/hadoop/tmp/hadoop-${user.name}</value> 
  4.  <description>A base for other temporarydirectories.</description> 
  5.  </property> 
  6.  <property> 
  7.  <name>fs.default.name</name> 
  8.  <value>hdfs://192.168.72.130:8010</value> 
  9.  <description>The name of the default file system.  A URI whose 
  10.    scheme and authority determine the FileSystem implementation.  The 
  11.    uri's scheme determines the config property (fs.SCHEME.impl) naming 
  12.    the FileSystem implementation class. The uri's authority is used to 
  13.    determine the host, port, etc. for a filesystem.</description> 
  14. </property>   

注意

  1. /home/wujunshen/hadoop下缺省是沒(méi)有tmp文件夾的,要用命令: mkdir /home/wujunshen/hadoop/tmp創(chuàng)建
  2. hdfs://192.168.72.130:8010 里的IP地址就是master 的IP地址

同一路徑下修改 mapred-site.xml

因?yàn)槿笔∈菦](méi)有這個(gè)文件的,要用模板文件造一個(gè),命令為:

  1. mv /home/wujunshen/hadoop/etc/hadoop/mapred-site.xml.template /home/hduser/hadoop/etc/hadoop/mapred-site.xml   

在 < configuration >中添加:

  1. <property> 
  2. <name>mapred.job.tracker</name> 
  3. <value>192.168.72.130:54311</value> 
  4. <description>The host and port that the MapReduce job tracker runs 
  5.  at.  If "local", thenjobs are run in-process as a single map 
  6.  and reduce task. 
  7.  </description> 
  8.  </property> 
  9.  
  10. <property> 
  11. <name>mapred.map.tasks</name> 
  12. <value>10</value> 
  13. <description>As a rule of thumb, use 10x the number of slaves(i.e., number of tasktrackers).           
  14. </description> 
  15. </property> 
  16.  
  17. <property> 
  18. <name>mapred.reduce.tasks</name> 
  19. <value>2</value> 
  20. <description>As a rule of thumb, use 2x the number of slaveprocessors (i.e., number of tasktrackers). 
  21. </description> 
  22. </property> 

注意:< value >192.168.72.130:54311< /value >里的IP地址就是master 的IP地址

同一路徑下修改 hdfs-site.xml, 在 < configuration >中添加:

  1. <property> 
  2. <name>dfs.replication</name> 
  3. <value>1</value> 
  4. <description>Default block replication. 
  5.  Theactual number of replications can be specified when the file is created. 
  6.  Thedefault is used if replication is not specified in create time. 
  7.  </description> 
  8. </property>  

注意:< value >1< /value >里的數(shù)字1表明的是dfs文件備份個(gè)數(shù), 如果你只有3個(gè)slave,但是你卻指定值為4,那么這是不會(huì)生效的,因?yàn)槊總€(gè)salve上只能存放一個(gè)備份文件。 如果你設(shè)置了100個(gè)slave,那么這個(gè)就寫(xiě)100。 我這里slave就1個(gè),就寫(xiě)了1。 網(wǎng)上那些因?yàn)槎际侨?jié)點(diǎn),一個(gè)master,兩個(gè)slave,所以都寫(xiě)2,但網(wǎng)上很少有人會(huì)說(shuō)要根據(jù)實(shí)際slave的個(gè)數(shù)修改。

同一路徑下修改slaves文件 增加所有slaves的hostname。比如我這里slave就一個(gè),hostname是hadoop1,所以只有一個(gè)hadoop1,該文件內(nèi)容只為

  1. hadoop1   

運(yùn)行

所有操作只需要在master運(yùn)行即可。系統(tǒng)會(huì)自動(dòng)登錄到slave上。

初次運(yùn)行Hadoop的時(shí)候需要初始化Hadoop文件系統(tǒng) ,在master上輸入命令

  1. cd /home/wujunshen/hadoop/bin 
  2. ./hdfs namenode -format   

執(zhí)行成功,你會(huì)在日志中(倒數(shù)幾行)找到如下成功的提示信息:

  1. common.Storage: Storage directory /home/wujunshen/hadoop/tmp/hadoop-wujunshen/dfs/name has been successfully formatted.   

再去啟動(dòng)hadoop,命令:

  1. cd home/wujunshen/hadoop/sbin/ 
  2. ./start-dfs.sh 
  3. ./start-yarn.sh   

#p#

注意:你也可以直接運(yùn)行./start-all.sh,不用分開(kāi)啟動(dòng)dfs和yarn.第一次運(yùn)行start-all會(huì)出現(xiàn)一個(gè)問(wèn)題,輸入yes就行了。

查看運(yùn)行結(jié)果 執(zhí)行你的jdk運(yùn)行目錄下的jps,比如我這里是 /usr/lib/jdk1.7.0_45/bin/

輸入命令:

  1. /usr/lib/jdk1.7.0_45/bin/jps 

在hadoop上結(jié)果為:

  1. 6419 ResourceManager 
  2. 6659 Jps 
  3. 6106 NameNode 
  4. 6277 SecondaryNameNode  

在hadoop1結(jié)果為:

  1. 3930 SecondaryNameNode 
  2. 4222 Jps 
  3. 3817 DataNode 
  4. 3378 NodeManager   

或執(zhí)行命令

  1. cd /home/wujunshen/hadoop/bin 
  2. ./hdfs dfsadmin -report   

結(jié)果:

  1. Configured Capacity: 51653570560 (48.11 GB) 
  2. Present Capacity: 46055575552 (42.89 GB) 
  3. DFS Remaining: 46055550976 (42.89 GB) 
  4. DFS Used: 24576 (24 KB) 
  5. DFS Used%: 0.00% 
  6. Under replicated blocks: 0 
  7. Blocks with corrupt replicas: 0 
  8. Missing blocks: 0 
  9.  
  10. ------------------------------------------------- 
  11. Datanodes available: 1 (1 total, 0 dead) 
  12.  
  13. Live datanodes: 
  14. Name: 192.168.72.128:50010 (hadoop1) 
  15. Hostname: hadoop1 
  16. Decommission Status : Normal 
  17. Configured Capacity: 51653570560 (48.11 GB) 
  18. DFS Used: 24576 (24 KB) 
  19. Non DFS Used: 5597995008 (5.21 GB) 
  20. DFS Remaining: 46055550976 (42.89 GB) 
  21. DFS Used%: 0.00% 
  22. DFS Remaining%: 89.16% 
  23. Last contact: Wed Nov 27 23:56:32 PST 2013 

截圖:

enter image description here

注意:有時(shí)候會(huì)發(fā)現(xiàn)hadoop1上的datanode沒(méi)有出現(xiàn),這個(gè)時(shí)候以我的體會(huì),最好是把/home/wujunshen/hadoop下的tmp文件夾刪除,然后重新建,重新初始化hadoop文件系統(tǒng),重啟hadoop,然后執(zhí)行兩種查看方式再看看

測(cè)試

兩種測(cè)試方法,實(shí)際是運(yùn)行了兩個(gè)示例程序,一個(gè)是wordcount,另外一個(gè)是randomwriter

1.執(zhí)行下列命令:

  1. cd /home/wujunshen 
  2. wget http://www.gutenberg.org/cache/epub/20417/pg20417.txt 
  3. cd hadoop 
  4. bin/hdfs dfs -mkdir /tmp 
  5. bin/hdfs dfs -copyFromLocal /home/wujunshen/pg20417.txt /tmp 
  6. bin/hdfs dfs -ls /tmp 
  7. bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /tmp/ /tmp-output   

2.執(zhí)行下列命令:

  1. cd  /home/wujunshen/hadoop 
  2. bin/hdfs dfs -mkdir /input 
  3. bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar randomwriter input   

總結(jié)

如果你能看到這里,而且按照我之前說(shuō)的已經(jīng)運(yùn)行成功了。那么恭喜你,你實(shí)現(xiàn)了hadoop多節(jié)點(diǎn)偽分布式的配置。對(duì)的,你沒(méi)看錯(cuò)?。?!就是偽分布式~ 可能有人不服氣會(huì)說(shuō):怎么到這里就是偽分布式了呢?不是都OK的么?那么我請(qǐng)你仔細(xì)看看你測(cè)試中選擇的兩種示例程序啟動(dòng)的job,如圖是運(yùn)行第二個(gè)randomwriter 程序的job:

enter image description here

看到紅框了伐?全是Local!??!也就是說(shuō)不管你執(zhí)行哪個(gè)示例程序,啟動(dòng)的job都只是在master這個(gè)節(jié)點(diǎn)本地運(yùn)行的job。哪里有讓slave節(jié)點(diǎn)參與了?

再說(shuō),看看wordcount這個(gè)單詞就知道是個(gè)計(jì)算單詞的示例程序,如果只有master一個(gè)節(jié)點(diǎn)計(jì)算,那么這能算分布式多節(jié)點(diǎn)參與計(jì)算么? 所以各位朋友,請(qǐng)接著耐心地看下去,看我如何施展魔法讓hadoop真正的進(jìn)行分布式計(jì)算?。?!

#p#

真.配置

之前配置里所說(shuō)的那些文件修改還是要的。這里我們?cè)賹?duì)其中一些文件進(jìn)行修改。

在/home/wujunshen/hadoop/etc/hadoop 下找到 yarn-env.sh,修改它

找到設(shè)置JAVA_HOME的那一列 改成:

  1. export JAVA_HOME=/usr/lib/jdk1.7.0_45   

在/home/wujunshen/hadoop/etc/hadoop 下修改mapred-site.xml 在 < configuration >中添加(原先的配置還留著):

  1. <property> 
  2. <name>mapreduce.framework.name</name> 
  3. <value>yarn</value> 
  4. </property> 
  5. <property> 
  6. <name>mapreduce.jobhistory.address</name> 
  7. <value>192.168.72.130:10020</value> 
  8. </property> 
  9. <property> 
  10. <value>192.168.72.130:19888</value> 
  11. </property>  

在/home/wujunshen/hadoop/etc/hadoop 下修改yarn-site.xml 在 < configuration >中添加:

  1. <property> 
  2.  <name>yarn.resourcemanager.address</name> 
  3.  <value>hadoop:8032</value> 
  4.  </property> 
  5.  
  6. <property> 
  7.  <description>The address of the scheduler interface.</description> 
  8.  <name>yarn.resourcemanager.scheduler.address</name> 
  9.  <value>hadoop:8030</value> 
  10. </property> 
  11. <property> 
  12.  <description>The address of the RM web application.</description> 
  13.  <name>yarn.resourcemanager.webapp.address</name> 
  14.  <value>hadoop:8088</value> 
  15. </property> 
  16. <property> 
  17. <name>yarn.resourcemanager.resource-tracker.address</name> 
  18. <value>hadoop:8031</value> 
  19. </property> 
  20. <property> 
  21. <description>The address of the RM admin interface.</description> 
  22. <name>yarn.resourcemanager.admin.address</name> 
  23. <value>hadoop:8033</value> 
  24. </property> 
  25. <property> 
  26. <description>The address of the RM admin interface.</description> 
  27. <name>yarn.nodemanager.address</name> 
  28. <value>hadoop:10000</value> 
  29. </property> 
  30. <property> 
  31. <name>yarn.nodemanager.aux-services</name> 
  32. <value>mapreduce_shuffle</value> 
  33. </property> 
  34. <property> 
  35. <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> 
  36. <value>org.apache.hadoop.mapred.ShuffleHandler</value> 
  37. </property>   

注意:這里很多value都是hadoop打頭的,我一開(kāi)始修改這些文件都是填寫(xiě)master的IP地址,我后來(lái)試驗(yàn)了一下,其實(shí)用master的hostname,也就是hadoop也可以的。

好了重復(fù)測(cè)試?yán)锬莾蓚€(gè)示例程序,這里我運(yùn)行了randomwriter程序,因?yàn)橹耙呀?jīng)創(chuàng)建過(guò)input文件夾,現(xiàn)在執(zhí)行命令會(huì)報(bào)錯(cuò)說(shuō)input已存在,很簡(jiǎn)單,后面加個(gè)1就行,命令變成

  1. cd  /home/wujunshen/hadoop 
  2. bin/hdfs dfs -mkdir /input1 
  3. bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar randomwriter input1 

重復(fù)執(zhí)行這些命令的話,就把后面改成2,3,4就好了。反正是例子,隨意一點(diǎn),不用像工作中要取個(gè)很正式的名字。

結(jié)果如下:

  1. 13/11/28 19:37:23 INFO mapreduce.Job: Running job: job_1385696103815_0001 
  2. 13/11/28 19:37:43 INFO mapreduce.Job: Job job_1385696103815_0001 running in uber mode : false 
  3. 13/11/28 19:37:43 INFO mapreduce.Job:  map 0% reduce 0% 
  4. 13/11/28 19:51:05 INFO mapreduce.Job:  map 10% reduce 0% 
  5. 13/11/28 19:51:11 INFO mapreduce.Job:  map 20% reduce 0% 
  6. 13/11/28 19:51:13 INFO mapreduce.Job:  map 30% reduce 0% 
  7. 13/11/28 19:51:19 INFO mapreduce.Job:  map 40% reduce 0% 
  8. 13/11/28 19:51:21 INFO mapreduce.Job:  map 50% reduce 0% 
  9. 13/11/28 19:51:40 INFO mapreduce.Job:  map 60% reduce 0% 
  10. 13/11/28 20:03:37 INFO mapreduce.Job:  map 70% reduce 0% 
  11. 13/11/28 20:03:48 INFO mapreduce.Job:  map 80% reduce 0% 
  12. 13/11/28 20:03:49 INFO mapreduce.Job:  map 90% reduce 0% 
  13. 13/11/28 20:03:51 INFO mapreduce.Job:  map 100% reduce 0% 
  14. 13/11/28 20:03:53 INFO mapreduce.Job: Job job_1385696103815_0001 completed successfully 
  15. 13/11/28 20:03:53 INFO mapreduce.Job: Counters: 30 
  16.     File System Counters 
  17.             FILE: Number of bytes read=0 
  18.             FILE: Number of bytes written=789520 
  19.             FILE: Number of read operations=0 
  20.             FILE: Number of large read operations=0 
  21.             FILE: Number of write operations=0 
  22.             HDFS: Number of bytes read=1270 
  23.             HDFS: Number of bytes written=10772863128 
  24.             HDFS: Number of read operations=40 
  25.             HDFS: Number of large read operations=0 
  26.             HDFS: Number of write operations=20 
  27.     Job Counters 
  28.             Killed map tasks=5 
  29.             Launched map tasks=15 
  30.             Other local map tasks=15 
  31.             Total time spent by all maps in occupied slots (ms)=9331745 
  32.             Total time spent by all reduces in occupied slots (ms)=0 
  33.     Map-Reduce Framework 
  34.             Map input records=10 
  35.             Map output records=1021605 
  36.             Input split bytes=1270 
  37.             Spilled Records=0 
  38.             Failed Shuffles=0 
  39.             Merged Map outputs=0 
  40.             GC time elapsed (ms)=641170 
  41.             CPU time spent (ms)=806440 
  42.             Physical memory (bytes) snapshot=577269760 
  43.             Virtual memory (bytes) snapshot=3614044160 
  44.             Total committed heap usage (bytes)=232574976 
  45.     org.apache.hadoop.examples.RandomWriter$Counters 
  46.             BYTES_WRITTEN=10737514428 
  47.             RECORDS_WRITTEN=1021605 
  48.     File Input Format Counters 
  49.             Bytes Read=0 
  50.     File Output Format Counters 
  51.             Bytes Written=10772863128 
  52. Job ended: Thu Nov 28 20:03:53 PST 2013 
  53. The job took 1594 seconds. 

#p#

可以看到這個(gè)時(shí)候Job名字打頭已經(jīng)不是local了,而是job了。而且可以登錄http://192.168.72.130:8088查看運(yùn)行的job狀態(tài)

如圖:
enter image description here

上圖還是這個(gè)job處于running狀態(tài)時(shí)的信息。

完成時(shí)信息如下圖:
enter image description here

現(xiàn)在我們?cè)賵?zhí)行那個(gè)wordcount程序,這里和randomwriter類(lèi)似。

命令是

  1. cd  /home/wujunshen/hadoop 
  2. bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /tmp/ /tmp-output100(為啥是tmp-output100,之前在說(shuō)randomwriter示例程序時(shí)候已經(jīng)說(shuō)過(guò)) 

結(jié)果:

  1. 3/11/29 00:01:40 INFO client.RMProxy: Connecting to ResourceManager at hadoop/192.168.72.130:8032 
  2. 13/11/29 00:01:41 INFO input.FileInputFormat: Total input paths to process : 1 
  3. 13/11/29 00:01:41 INFO mapreduce.JobSubmitter: number of splits:1 
  4. 13/11/29 00:01:41 INFO Configuration.deprecation: user.name is deprecated. Instead, use mapreduce.job.user.name 
  5. 13/11/29 00:01:41 INFO Configuration.deprecation: mapred.jar is deprecated. Instead, use mapreduce.job.jar 
  6. 13/11/29 00:01:41 INFO Configuration.deprecation: mapred.output.value.class is deprecated. Instead, use mapreduce.job.output.value.class 
  7. 13/11/29 00:01:41 INFO Configuration.deprecation: mapreduce.combine.class is deprecated. Instead, use mapreduce.job.combine.class 
  8. 13/11/29 00:01:41 INFO Configuration.deprecation: mapreduce.map.class is deprecated. Instead, use mapreduce.job.map.class 
  9. 13/11/29 00:01:41 INFO Configuration.deprecation: mapred.job.name is deprecated. Instead, use mapreduce.job.name 
  10. 13/11/29 00:01:41 INFO Configuration.deprecation: mapreduce.reduce.class is deprecated. Instead, use mapreduce.job.reduce.class 
  11. 13/11/29 00:01:41 INFO Configuration.deprecation: mapred.input.dir is deprecated. Instead, use mapreduce.input.fileinputformat.inputdir 
  12. 13/11/29 00:01:41 INFO Configuration.deprecation: mapred.output.dir is deprecated. Instead, use mapreduce.output.fileoutputformat.outputdir 
  13. 13/11/29 00:01:41 INFO Configuration.deprecation: mapred.map.tasks is deprecated. Instead, use mapreduce.job.maps 
  14. 13/11/29 00:01:41 INFO Configuration.deprecation: mapred.output.key.class is deprecated. Instead, use mapreduce.job.output.key.class 
  15. 13/11/29 00:01:41 INFO Configuration.deprecation: mapred.working.dir is deprecated. Instead, use mapreduce.job.working.dir 
  16. 13/11/29 00:01:42 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1385696103815_0009 
  17. 13/11/29 00:01:42 INFO impl.YarnClientImpl: Submitted application application_1385696103815_0009 to ResourceManager at hadoop/192.168.72.130:8032 
  18. 13/11/29 00:01:42 INFO mapreduce.Job: The url to track the job: http://hadoop:8088/proxy/application_1385696103815_0009/ 
  19. 13/11/29 00:01:42 INFO mapreduce.Job: Running job: job_1385696103815_0009 
  20. 13/11/29 00:01:53 INFO mapreduce.Job: Job job_1385696103815_0009 running in uber mode : false 
  21. 13/11/29 00:01:53 INFO mapreduce.Job:  map 0% reduce 0% 
  22. 13/11/29 00:02:03 INFO mapreduce.Job:  map 100% reduce 0% 
  23. 13/11/29 00:02:18 INFO mapreduce.Job:  map 100% reduce 50% 
  24. 13/11/29 00:02:19 INFO mapreduce.Job:  map 100% reduce 100% 
  25. 13/11/29 00:02:20 INFO mapreduce.Job: Job job_1385696103815_0009 completed successfully 
  26. 13/11/29 00:02:20 INFO mapreduce.Job: Counters: 43 
  27.     File System Counters 
  28.             FILE: Number of bytes read=267032 
  29.             FILE: Number of bytes written=771667 
  30.             FILE: Number of read operations=0 
  31.             FILE: Number of large read operations=0 
  32.             FILE: Number of write operations=0 
  33.             HDFS: Number of bytes read=674677 
  34.             HDFS: Number of bytes written=196192 
  35.             HDFS: Number of read operations=9 
  36.             HDFS: Number of large read operations=0 
  37.             HDFS: Number of write operations=4 
  38.     Job Counters 
  39.             Launched map tasks=1 
  40.             Launched reduce tasks=2 
  41.             Data-local map tasks=1 
  42.             Total time spent by all maps in occupied slots (ms)=7547 
  43.             Total time spent by all reduces in occupied slots (ms)=25618 
  44.     Map-Reduce Framework 
  45.             Map input records=12760 
  46.             Map output records=109844 
  47.             Map output bytes=1086547 
  48.             Map output materialized bytes=267032 
  49.             Input split bytes=107 
  50.             Combine input records=109844 
  51.             Combine output records=18040 
  52.             Reduce input groups=18040 
  53.             Reduce shuffle bytes=267032 
  54.             Reduce input records=18040 
  55.             Reduce output records=18040 
  56.             Spilled Records=36080 
  57.             Shuffled Maps =2 
  58.             Failed Shuffles=0 
  59.             Merged Map outputs=2 
  60.             GC time elapsed (ms)=598 
  61.             CPU time spent (ms)=4680 
  62.             Physical memory (bytes) snapshot=267587584 
  63.             Virtual memory (bytes) snapshot=1083478016 
  64.             Total committed heap usage (bytes)=152768512 
  65.     Shuffle Errors 
  66.             BAD_ID=0 
  67.             CONNECTION=0 
  68.             IO_ERROR=0 
  69.             WRONG_LENGTH=0 
  70.             WRONG_MAP=0 
  71.             WRONG_REDUCE=0 
  72.     File Input Format Counters 
  73.             Bytes Read=674570 
  74.     File Output Format Counters 
  75.             Bytes Written=196192   

可以看到j(luò)ob名字也是以job打頭的一個(gè)名字。

注意:這里有可能會(huì)碰到錯(cuò)誤:

  1. java.io.FileNotFoundException: Path is not a file: /tmp/hadoop-yarn   

解決方法很簡(jiǎn)單,命令是:

  1. cd  /home/wujunshen/hadoop 
  2. bin/hdfs dfs -mkdir /tmp 
  3. bin/hdfs dfs -copyFromLocal /home/wujunshen/pg20417.txt /tmp 
  4. bin/hdfs dfs -ls /tmp  

(如果之前已經(jīng)運(yùn)行過(guò)以上命令就沒(méi)必要再輸入這些命令了。我順便講一下這幾個(gè)命令,其實(shí)hadoop是在ubuntu的文件系統(tǒng)中劃出了一塊作為它自己的 文件系統(tǒng),所謂的hdfs全稱(chēng)就是hadoop file system,但是這個(gè)文件系統(tǒng)中的文件和文件夾是無(wú)法用ubuntu的命令找到的,也無(wú)法在win7,win8中用FTP客戶端cuteFTP找到。因 為這是虛擬的文件系統(tǒng),現(xiàn)實(shí)中不存在。所以如果要在這個(gè)虛擬化的文件系統(tǒng)中進(jìn)行文件和文件夾創(chuàng)建,還有拷貝和查看等操作,必須開(kāi)頭是以bin/hdfs dfs打頭的,這樣就能在這個(gè)虛擬的文件系統(tǒng)中進(jìn)行普通系統(tǒng)的操作,當(dāng)然后面要有個(gè)減號(hào),可以看到mkdir /tmp,copyFromLocal /home/wujunshen/pg20417.txt /tmp和ls /tmp就是普通文件系統(tǒng)操作命令)

  1. bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /tmp/pg20417.txt /tmp-output101   

#p#

出現(xiàn)該錯(cuò)誤的原因是在運(yùn)行上條命令時(shí)候,在虛擬文件系統(tǒng)hdfs的tmp文件夾下自動(dòng)創(chuàng)建了一個(gè)/tmp/hadoop-yarn,而我們是對(duì) pg20417.txt 這個(gè)文本中的word個(gè)數(shù)進(jìn)行計(jì)算,要找的是file而不是path,所以我們改成/tmp/pg20417.txt, 讓wordcount 程序知道自己要找的是個(gè)file而不是path,而且還知道自己要找的是哪個(gè)file。

登錄http://192.168.72.130:8088查看運(yùn)行的job狀態(tài)

enter image description here

可以看到我試驗(yàn)的各種成功和失敗的job信息

真.總結(jié)

其實(shí)hadoop中有個(gè)很重要的東西就是yarn。在真.配置里修改的那些有關(guān)yarn的配置文件是讓hadoop變成真正的分布式系統(tǒng)的關(guān)鍵。 在這里我簡(jiǎn)單地對(duì)yarn介紹一下:

yarn原意為“紗線”,想想我們剛才對(duì)它進(jìn)行了配置讓我們實(shí)現(xiàn)了真正的分布式配置,我頓時(shí)覺(jué)得用紗線這個(gè)名字還挺形象的,呵呵。 它是hadoop的一個(gè)資源管理器。它的資源管理和執(zhí)行框架都是按master/slave范例實(shí)現(xiàn)——節(jié)點(diǎn)管理器(NM)運(yùn)行、監(jiān)控每個(gè)節(jié)點(diǎn),并向資源管理器報(bào)告資源的可用性狀態(tài)。 特定應(yīng)用的執(zhí)行由Master控制,負(fù)責(zé)將一個(gè)應(yīng)用分割成多個(gè)Job,并和資源管理器協(xié)調(diào)執(zhí)行所需的資源。資源一旦分配好,Master就和節(jié)點(diǎn)管理器一起安排、執(zhí)行、監(jiān)控獨(dú)立的Job。 yarn提供了一種新的資源管理模型和執(zhí)行方式,用來(lái)執(zhí)行MapReduce任務(wù)。因此,在最簡(jiǎn)單的情況下,現(xiàn)有的MapReduce應(yīng)用仍然能照原樣運(yùn)行(需要重新編譯),yarn只不過(guò)能讓開(kāi)發(fā)人員更精確地指定執(zhí)行參數(shù)。

好了,我終于寫(xiě)完了。大家隨便看看吧~

題外話

我蠻喜歡hadoop這個(gè)黃色小象的logo,貼出來(lái)給大家養(yǎng)養(yǎng)眼 enter image description here

另外不知道大家在登錄時(shí)有沒(méi)有注意到右上角的登錄帳號(hào),見(jiàn)下圖紅框:

enter image description here

這個(gè)dr. who可是大大有名啊~它是目前人類(lèi)歷史上最長(zhǎng)的電視連續(xù)劇,英國(guó)科幻劇《神秘博士》的劇名。前不久google上還紀(jì)念過(guò)這部電視劇開(kāi)播50周年。新版 的dr. who從2005年開(kāi)始也開(kāi)播了快10年了。至于它的外傳劇集《火炬木小組》在國(guó)內(nèi)年輕人之中更加有名。(火炬木小組絕對(duì)是個(gè)坑,從2006年開(kāi)始播,到 現(xiàn)在也只有四季,平均每?jī)赡瓿鲆患?,第一,第二季還一季20多集,從第三季開(kāi)始居然只有五六集。而且到現(xiàn)在也沒(méi)說(shuō)會(huì)不會(huì)拍第五季,不過(guò)看第四季最后一集應(yīng) 該有續(xù)集。這片子主角杰克上校扮演者在美劇《綠箭俠》里演一號(hào)反派。第四季里那個(gè)會(huì)說(shuō)上海話的黑人在夏天《星際迷航》最新電影版里也出來(lái)過(guò),就是被可汗脅 迫炸樓的那位。)

原文鏈接:http://www.ituring.com.cn/article/63927

 

責(zé)任編輯:陳四芳 來(lái)源: 圖靈社區(qū)
相關(guān)推薦

2023-05-09 08:15:00

Linux節(jié)點(diǎn)Windows

2012-09-19 14:09:20

Hadoop開(kāi)源

2017-02-28 09:48:30

2011-04-18 14:43:23

分布式測(cè)試分布式測(cè)試

2014-07-15 11:15:44

hadoop分布式部署

2017-08-10 10:17:32

Hadoop分布式搭建

2019-09-26 15:43:52

Hadoop集群防火墻

2014-06-18 16:47:57

初志云存儲(chǔ)云計(jì)算

2013-06-08 14:34:42

Hadoop 2.0

2011-08-12 10:58:51

Hadoop

2010-06-03 19:46:44

Hadoop

2010-06-04 18:45:43

Hadoop分布式文件

2012-10-11 14:03:56

FastDFS分布式文件系統(tǒng)

2012-05-21 16:28:29

LinuxHadoop

2017-10-25 18:25:40

Hadoop偽分布式環(huán)境部署

2015-08-03 15:48:42

Hadoop大數(shù)據(jù)

2011-09-28 11:22:52

Hadoop

2011-07-15 17:48:27

Platform

2012-02-23 09:59:05

Hadoop分布式應(yīng)用

2020-03-31 08:05:23

分布式開(kāi)發(fā)技術(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)