锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲欧美日韩区,国产精品一二三,国产精品自在欧美一区http://www.shnenglu.com/jack-wang/archive/2010/04/01/111246.html灝忕帇灝忕帇Thu, 01 Apr 2010 01:47:00 GMThttp://www.shnenglu.com/jack-wang/archive/2010/04/01/111246.htmlhttp://www.shnenglu.com/jack-wang/comments/111246.htmlhttp://www.shnenglu.com/jack-wang/archive/2010/04/01/111246.html#Feedback2http://www.shnenglu.com/jack-wang/comments/commentRss/111246.htmlhttp://www.shnenglu.com/jack-wang/services/trackbacks/111246.html鏉ヨ嚜startup鐨勫瀭鐩存悳绱㈠紩鎿?a title=http://www.kosmix.com/ >http://www.kosmix.com/鐨勫紑婧愰」鐩紝鍙堜竴涓紑婧愮殑綾諱技google mapreduce 鐨勫垎甯冨紡鏂囦歡緋葷粺錛屽彲浠ュ簲鐢ㄥ湪璇稿鍥劇墖瀛樺偍銆佹悳绱㈠紩鎿庛佺綉鏍艱綆椼佹暟鎹寲鎺樿繖鏍烽渶瑕佸鐞嗗ぇ鏁版嵁閲忕殑緗戠粶搴旂敤涓備笌hadoop闆嗘垚寰椾篃姣旇緝濂斤紝榪欐牱鍙互鍏呭垎鍒╃敤浜唄adoop涓浜涚幇鎴愮殑鍔熻兘錛屽熀浜嶤++銆?/p>
Introduction

Applications that process large volumes of data (such as, search engines, grid computing applications, data mining applications, etc.) require a backend infrastructure for storing data. Such infrastructure is required to support applications whose workload could be characterized as:

  • Primarily write-once/read-many workloads
  • Few millions of large files, where each file is on the order of a few tens of MB to a few tens of GB in size
  • Mostly sequential access

We have developed the Kosmos Distributed File System (KFS), a high performance distributed file system to meet this infrastructure need.

The system consists of 3 components:

  1. Meta-data server: a single meta-data server that provides a global namespace
  2. Block server: Files are split into blocks orchunksand stored on block servers. Blocks are also known as chunk servers. Chunkserver store the chunks as files in the underlying file system (such as, XFS on Linux)
  3. Client library: that provides the file system API to allow applications to interface with KFS. To integrate applications to use KFS, applications will need to be modified and relinked with the KFS client library.

KFS is implemented in C++. It is built using standard system components such as, TCP sockets, aio (for disk I/O), STL, and boost libraries. It has been tested on 64-bit x86 architectures running Linux FC5.

While KFS can be accessed natively from C++ applications, support is also provided for Java applications. JNI glue code is included in the release to allow Java applications to access the KFS client library APIs.

Features
  • Incremental scalability: New chunkserver nodes can be added as storage needs increase; the system automatically adapts to the new nodes.
  • Availability: Replication is used to provide availability due to chunk server failures. Typically, files are replicated 3-way.
  • Per file degree of replication: The degree of replication is configurable on a per file basis, with a max. limit of 64.
  • Re-replication: Whenever the degree of replication for a file drops below the configured amount (such as, due to an extended chunkserver outage), the metaserver forces the block to be re-replicated on the remaining chunk servers. Re-replication is done in the background without overwhelming the system.
  • Re-balancing: Periodically, the meta-server may rebalance the chunks amongst chunkservers. This is done to help with balancing disk space utilization amongst nodes.
  • Data integrity: To handle disk corruptions to data blocks, data blocks are checksummed. Checksum verification is done on each read; whenever there is a checksum mismatch, re-replication is used to recover the corrupted chunk.
  • File writes: The system follows the standard model. When an application creates a file, the filename becomes part of the filesystem namespace. For performance, writes are cached at the KFS client library. Periodically, the cache is flushed and data is pushed out to the chunkservers. Also, applications can force data to be flushed to the chunkservers. In either case, once data is flushed to the server, it is available for reading.
  • Leases: KFS client library uses caching to improve performance. Leases are used to support cache consistency.
  • Chunk versioning: Versioning is used to detect stale chunks.
  • Client side fail-over: The client library is resilient to chunksever failures. During reads, if the client library determines that the chunkserver it is communicating with is unreachable, the client library will fail-over to another chunkserver and continue the read. This fail-over is transparent to the application.
  • Language support: KFS client library can be accessed from C++, Java, and Python.
  • FUSE support on Linux: By mounting KFS via FUSE, this support allows existing linux utilities (such as, ls) to interface with KFS.
  • Tools: A shell binary is included in the set of tools. This allows users to navigate the filesystem tree using utilities such as, cp, ls, mkdir, rmdir, rm, mv. Tools to also monitor the chunk/meta-servers are provided.
  • Deploy scr墨pts: To simplify launching KFS servers, a set of scr墨pts to (1) install KFS binaries on a set of nodes, (2) start/stop KFS servers on a set of nodes are also provided.
  • Job placement support: The KFS client library exports an API to determine the location of a byte range of a file. Job placement systems built on top of KFS can leverage this API to schedule jobs appropriately.
  • Local read optimization: When applications are run on the same nodes as chunkservers, the KFS client library contains an optimization for reading data locally. That is, if the chunk is stored on the same node as the one on which the application is executing, data is read from the local node.
KFS with Hadoop

KFS has been integrated with Hadoop using Hadoop’s filesystem interfaces. This allows existing Hadoop applications to use KFS seamlessly. The integration code has been submitted as a patch to Hadoop-JIRA-1963 (this will enable distribution of the integration code with Hadoop). In addition, the code as well as instructions will also be available for download from the KFS project page shortly. As part of the integration, there is job placement support for Hadoop. That is, the Hadoop Map/Reduce job placement system can schedule jobs on the nodes where the chunks are stored.

鍙傝冭祫鏂欙細

  • distribute file system

http://lucene.apache.org/hadoop/

http://www.danga.com/mogilefs/

http://www.lustre.org/

http://oss.sgi.com/projects/xfs/

 

http://www.megite.com/discover/filesystem

http://swik.net/distributed+cluster

  • cluster&high availability

http://www.gluster.org/index.php

http://www.linux-ha.org/

http://openssi.org

http://kerrighed.org/

http://openmosix.sourceforge.net/

 

http://www.linux.com/article.pl?sid=06/09/12/1459204

http://labs.google.com/papers/mapreduce.html



灝忕帇 2010-04-01 09:47 鍙戣〃璇勮
]]>
璋鋒瓕鎶鏈滀笁瀹濃濅箣涓鐨凣oogle鏂囦歡緋葷粺鍜孠osmos 鏂囦歡緋葷粺http://www.shnenglu.com/jack-wang/archive/2010/02/26/108503.html灝忕帇灝忕帇Fri, 26 Feb 2010 09:17:00 GMThttp://www.shnenglu.com/jack-wang/archive/2010/02/26/108503.htmlhttp://www.shnenglu.com/jack-wang/comments/108503.htmlhttp://www.shnenglu.com/jack-wang/archive/2010/02/26/108503.html#Feedback0http://www.shnenglu.com/jack-wang/comments/commentRss/108503.htmlhttp://www.shnenglu.com/jack-wang/services/trackbacks/108503.html杞細http://blog.csdn.net/boyplayee/archive/2010/02/22/5318092.aspx

璋鋒瓕鎶鏈?#8220;涓夊疂”涔嬩竴鐨凣oogle鏂囦歡緋葷粺鍜孠osmos 鏂囦歡緋葷粺 鏀惰棌
    铏界劧閽堝澶ц妯″垎甯冨紡瀛樺偍緋葷粺錛孏oogle灝嗘帹闄堝嚭鏂幫紝鎺ㄦ柊鐨勭悊鐢辨湁寰堝錛屽"single-master design,…… but it was certainly unacceptable for latency-sensitive applications, such as video serving."銆傚弬鑰冦奊oogle File System II: Dawn of the Multiplying Master Nodes銆嬪拰銆奊FS:Evolution on Fast-forward銆嬨備絾鏄疓FS姣曠珶涓哄叾鏈嶅姟浜?0騫存椂闂達紝榪炴潕寮澶嶅崥澹篃瀹gО姣忎釜璁$畻鏈哄鐢熼兘鏈夊繀瑕佸瀛﹁繖濂楃郴緇熴?/p>

      鏈瘒涔熶竴璧瘋皥璋圞osmos鏂囦歡緋葷粺錛屼紶闂籊oogle鐨勪袱涓叡鍚屽垱濮嬩漢浣╁鍜屽竷鏋楁湁涓や釜澶у鍚岀獥錛屾槸涓や釜鍗板害浜?鍚嶅彨Anand Rajaraman鍜孷enky Harinarayan錛岀湅鍒癎oogle鑾峰緱宸ㄥぇ鎴愬姛涔嬪悗錛屽氨鍔ㄦ墜鍋氫簡涓竴涓柊鐨勬悳绱㈠紩鎿嶤loudStore (鍘熷厛涓鐩村彨Kosmos filesystem錛岀幇鍦ㄦ惌涓婁簡浜戣綆楃殑欏洪杞︽敼浜嗗ご琛?銆傚湪鍋氳繖涓悳绱㈠紩鎿庣殑榪囩▼涓紝浠栦滑瀹炵幇浜嗕竴涓被浼糋FS鐨勬枃浠剁郴緇烱FS(寰堝鐞嗗康閮戒粠GFS閭i噷鎼繃鏉ワ紝姣斿constant monitoring, error detection, fault tolerance, and automatic recovery)銆傚洜涓篏FS鐨勮鏂囧彧鏄璁★紝鑰孠FS鏄紑婧愮殑錛屼袱鑰呯粨鍚堢湅鏁堟灉鍙兘姣旇緝濂姐?/p>

     棣栧厛錛岀湅榪囪胺姝屽伐紼嬪笀鍐欏湴榪欑瘒銆奣he Google File System銆嬬殑鑳戒笉鑳藉仛涓嬮潰榪欓亾璇佹槑棰橈細鑰冭檻涓涓嫢鏈?000涓妭鐐圭殑GFS闆嗙兢錛屽畾鎬?涓嶅畾閲?璇佹槑錛氬湪鏈?00涓妭鐐瑰け鏁堢殑鎯呭喌涓嬶紝鍓╀笅鐨?00涓妭鐐逛粛鐒惰兘澶熷畬鎴愬伐浣滐紝鍗硃erformance涓嬮檷鐨勬儏鍐典笅錛宻calability,reliability,availability絳変繚鎸佽壇濂姐?/p>

 

鏈枃鎯抽槓閲婅胺姝屾枃浠剁郴緇熺殑涓浜涜璁$悊蹇點?/p>

涓 鏋舵瀯錛?/p>

涓嬪浘涓鴻胺姝屾枃浠剁郴緇熺殑緇撴瀯鍥撅紝涓涓狦FS闆嗙兢鍖呭惈涓涓富鏈嶅姟鍣ㄥ拰澶氫釜鍧楁湇鍔″櫒, 榪欐槸涓涓崟涓涓繪湇鍔″櫒妯″瀷錛?/p>

 

      姒傛嫭涓涓嬪潡(chunk)鐨勪竴浜涗俊鎭細鍧楀昂瀵告槸64MB錛涙枃浠惰鍒嗗壊鎴愬浐瀹氬昂瀵哥殑鍧楋紝鍦ㄦ瘡涓潡鍒涘緩鐨勬椂鍊欙紝鏈嶅姟鍣ㄥ垎閰嶇粰瀹冧竴涓笉鍙樼殑銆佸敮涓鐨?4浣嶇殑鍧楀彞鏌勫瀹冭繘琛屾爣璇嗭紱姣忎釜鍧楅兘浼氬鍒跺埌澶氫釜鍧楁湇鍔″櫒涓娿?/p>

      涓繪湇鍔″櫒淇濆瓨涓夌涓昏綾誨瀷鐨刴etadata錛氭枃浠跺拰鍧楃殑鍛藉悕絀洪棿錛屾枃浠跺埌鍧楃殑鏄犲皠錛屼互鍙婃瘡涓潡鍓湰鐨勪綅緗紝瀹冮氳繃鍏ㄥ眬鐨勪俊鎭簿紜‘瀹氬潡鐨勪綅緗互鍙婅繘琛屽鍒跺喅瀹氥備富鏈嶅姟鍣ㄧ殑涓昏宸ヤ綔鏈夛細涓繪湇鍔″櫒鍦ㄥ悗鍙板懆鏈熸壂鐚嚜宸辯殑鏁翠釜鐘舵侊紝鐢ㄦ潵鍦ㄥ潡鏈嶅姟鍣ㄩ棿瀹炵幇鍧楃殑鍨冨溇鏀墮泦鐨勫姛鑳斤紝鐢ㄦ潵瀹炵幇鍧楁湇鍔″櫒澶辨晥鐨勬椂澶嶅埗鏂板壇鏈殑鍔熻兘錛岀敤鏉ュ疄鐜拌礋杞藉潎琛$殑鍧楃Щ鍔ㄧ殑鍔熻兘錛屼互鍙婄敤鏉ュ疄鐜扮粺璁$‖鐩樹嬌鐢ㄦ儏鍐電殑鍔熻兘絳夈?/p>

      鍧楁湇鍔″櫒淇濆瓨鐫鍧楋紝騫舵牴鎹寚瀹氱殑鍧楀彞鏌勫拰瀛楄妭鍖洪棿鏉ヨ鍐欏潡鏁版嵁銆?/p>

      瀹㈡埛绔笉閫氳繃涓繪湇鍔″櫒璇誨啓鏁版嵁銆傚弽涔嬶紝瀹㈡埛绔悜涓繪湇鍔″櫒璇㈤棶瀹冨簲璇ヨ仈緋葷殑鍧楁湇鍔″櫒銆傚鎴風鐭湡緙撳瓨榪欎簺淇℃伅錛屽悗緇殑鎿嶄綔鐩存帴璺熷潡鏈嶅姟鍣ㄨ繘琛屻?/p>

      璇誨彇嫻佺▼:棣栧厛錛屽埄鐢ㄥ浐瀹氱殑鍧楀昂瀵革紝瀹㈡埛绔妸鏂囦歡鍚嶅拰紼嬪簭鎸囧畾鐨勫瓧鑺傚亸縐昏漿鎹㈡垚鏂囦歡鐨勫潡绱㈠紩銆傜劧鍚庯紝瀹冩妸鏂囦歡鍚嶅拰鍧楃儲寮曞彂閫佺粰涓繪湇鍔″櫒銆備富鏈嶅姟鍣ㄥ洖絳旂浉搴旂殑鍧楀彞鏌勫拰鍓湰浠殑浣嶇疆銆傚鎴風鐢ㄦ枃浠跺悕鍜屽潡绱㈠紩浣滀負閿肩紦瀛樿繖浜涗俊鎭?/p>

      姝ょ郴緇熷彲闈犳ф柟闈㈢浉鍏崇殑涓浜涜璁★紝涓嬮潰姒傝鍙欒堪涓涓嬶紝鍚庨潰浼氭湁璇︾粏鎻忚堪錛?/p>

      1涓繪湇鍔″櫒涓嶆寔涔呭寲淇濆瓨鍧楃殑浣嶇疆淇℃伅銆備富鏈嶅姟鍣ㄥ湪鑷繁鍚姩浠ュ強鍧楁湇鍔″櫒鍔犲叆闆嗙兢鐨勬椂鍊欙紝璇㈤棶鍧楁湇鍔″櫒瀹冩墍鍖呭惈鐨勫潡鐨勪俊鎭紝鐒跺悗瀹氭湡鐨勫績璺充俊鎭洃鎺у潡鏈嶅姟鍣ㄧ殑鐘舵併?/p>

      2 鍚嶇О絀洪棿鍜屾枃浠跺潡鏄犲皠鐨刴etadata錛屼細鐢╨og鐨勬柟寮忎繚瀛樺湪涓繪湇鍔″櫒鐨勭‖鐩樹笂鐨勬搷浣滄棩蹇楀唴錛屽茍鍦ㄨ繙紼嬬殑鏈哄櫒鍐呭鍒朵竴涓壇鏈備嬌鐢╨og錛屽彲浠ユ洿鏂頒富鏈嶅姟鍣ㄧ殑鐘舵侊紝鑰屼笖涓嶇敤鎷呭績鏈嶅姟鍣ㄥ穿婧冨甫鏉ョ殑鏁版嵁涓嶄竴鑷寸殑椋庨櫓銆?/p>

      3. 涓繪湇鍔″櫒閫氳繃閲嶆斁operation log鎭㈠鍏舵枃浠剁郴緇熴俹peration log鏄痬etadata鍞竴鐨勬寔涔呭寲瀛樺偍璁板綍錛岃搗鍒頒簡瀹氫箟鍚屾鎿嶄綔欏哄簭鐨勯昏緫鏃墮棿綰跨殑浣滅敤銆傛枃浠跺拰鍧楀強鍏剁増鏈兘鏄敮涓鍜屾寔涔呭湴鐢變粬浠垱寤烘椂鐨勯昏緫鏃墮棿鏍囪瘑鐨勩傝繘琛屾仮澶嶄粎闇瑕佹渶鏂扮殑checkpoint鍜岀浉搴旂殑鏃ュ織鏂囦歡銆傛棩蹇楀闀垮埌涓涓壒瀹氬昂瀵哥殑鏃跺欙紝涓繪湇鍔″櫒姹囨葷殑鐘舵佷負涓涓猚heckpoint銆?/p>

4鏂囦歡鍛藉悕絀洪棿鐨勪慨鏀癸紙渚嬪錛屾枃浠跺垱寤猴級鏄師瀛愭х殑銆備粬浠粎鍙椾富鏈嶅姟鍣ㄧ殑鎺у埗錛氬懡鍚嶇┖闂撮攣瀹氫繚璇佷簡鍘熷瓙鎬у拰姝g‘鎬э紱涓繪湇鍔″櫒鐨勬搷浣滄棩蹇楀畾涔変簡榪欎簺鎿嶄綔鐨勫叏灞鎬婚『搴忋傚湪淇敼鎿嶄綔鎴愬姛鍚庯紝閮ㄤ歡鏁呴殰浠嶅彲浠ヤ嬌鏁版嵁鍙楀埌鐮村潖銆侴FS閫氳繃master鍜宑hunkserver闂村畾鏈熺殑handshake錛屽熷姪鏍¢獙鍜屾潵媯嫻嬪鏁版嵁鐨勭牬鍧忋備竴鏃︽嫻嬪埌錛屽氨浠庝竴涓湁鏁堢殑鍓湰灝藉揩閲嶆柊瀛樺偍銆傚彧鏈夊湪GFS媯嫻嬪墠錛屾墍鏈夌殑鍓湰閮藉け鏁堬紝榪欎釜鍧楁墠浼氫涪澶便?/p>

5…………….

 

浜?緋葷粺浜や簰

榪欎竴鑺傝璁哄鎴鋒満錛屾湇鍔″櫒鍜屽潡鏈嶅姟鍣ㄤ笁鑰呭浣曚氦浜掍互瀹炵幇鏁版嵁鎿嶄綔錛屽師瀛愬寲鐨勮褰曡拷鍔犲強蹇収銆?/p>

2.1 leases and mutation order

Mutations鏄竴涓細鏀瑰彉鍧楀唴瀹規垨鑰呭厓鏁版嵁鐨勬搷浣滐紝渚嬪鍐欏叆鎴栬呰褰曡拷鍔犮傛瘡涓彉鏇存墽琛屽湪鍧楃殑鎵鏈夊壇鏈笂銆備嬌鐢╨eases鏉ヤ繚鎸佸涓壇鏈棿鍙樻洿欏哄簭鐨勪竴鑷存э紝leases鏈哄埗鐨勮璁℃槸涓轟簡鏈灝忓寲涓繪湇鍔″櫒鐨勭鐞嗚礋杞姐傜敱浜嶮aster棣栧厛grants涓涓富鍧楋紙鍗沖壇鏈腑鐨勪竴涓潡lease錛夛紝鎵浠ュ叏灞鐨刴utation order灝卞艦鎴愪簡錛氶鍏堢敱涓繪湇鍔″櫒閫夋嫨鐨刲ease鐢熸垚欏哄簭鍐沖畾錛岀劧鍚庣敱lease涓富鍧楀垎閰嶇殑搴忓垪鍙峰喅瀹氥傚啀鐢ㄥ浘鏉ヨ鏄庡啓鍏ユ搷浣滅殑鎺у埗嫻佺▼錛?/p>

 

      1瀹㈡埛鏈哄悜涓繪湇鍔″櫒璇㈤棶鍝竴涓潡鏈嶅姟鍣ㄤ繚瀛樹簡褰撳墠鐨刲ease錛屼互鍙婂叾瀹冨壇鏈殑浣嶇疆銆傚鏋滄病鏈変竴涓潡鏈嶅姟鍣ㄦ湁lease錛屼富鏈嶅姟鍣ㄥ氨閫夋嫨涓涓壇鏈粰瀹冧竴涓猯ease錛堟病鏈夎鏄劇ず鍑烘潵錛夈?/p>

      2涓繪湇鍔″櫒鍥炲涓誨潡鐨勬爣璇嗙浠ュ強鍏朵粬鍓湰鐨勪綅緗傚鎴鋒満涓轟簡鍚庣畫鐨勬搷浣滅紦瀛樿繖涓暟鎹傚彧鏈変富鍧椾笉鍙敤錛屾垨鑰呬富鍧楀洖澶嶈瀹冨凡緇忎笉鍐嶆嫢鏈塴ease鐨勬椂鍊欙紝瀹㈡埛鏈烘墠闇瑕侀噸鏂拌窡涓繪湇鍔″櫒鑱旂粶銆?/p>

      3瀹㈡埛鏈烘妸鏁版嵁鎺ㄩ佸埌鎵鏈夌殑鍓湰涓娿傚鎴鋒満鍙互鐢ㄤ換鎰忕殑欏哄簭鎺ㄩ併傛瘡涓潡鏈嶅姟鍣ㄤ細鎶婅繖浜涙暟鎹繚瀛樺湪瀹冪殑鍐呴儴LRU緙撳啿鍐咃紝鐩村埌鏁版嵁琚嬌鐢ㄦ垨鑰呰繃鏈熴傞氳繃鎶婃暟鎹祦鍜屾帶鍒舵祦鍒嗙錛屾垜浠彲浠ュ熀浜庣綉緇滆礋杞界姸鍐靛鏄傝吹鐨勬暟鎹祦榪涜瑙勫垝錛屼互鎻愰珮鎬ц兘錛岃屼笉鐢ㄥ幓綆″摢涓潡鏈嶅姟鍣ㄦ槸涓誨潡銆?/p>

      4鎵鏈夌殑鍓湰閮借紜宸茬粡寰楀埌鏁版嵁鍚庯紝瀹㈡埛鏈哄彂閫佸啓璇鋒眰鍒頒富鍧椼傝繖涓姹傛爣璇嗕簡鏃╁墠鎺ㄩ佸埌鎵鏈夊壇鏈殑鏁版嵁銆備富鍧椾負鏀跺埌鐨勬墍鏈夋搷浣滃垎閰嶈繛緇殑搴忓垪鍙鳳紝榪欎簺鍙兘鏉ヨ嚜涓嶅悓鐨勫鎴鋒満銆傚畠渚濈収搴忓垪鍙風殑欏哄簭鎶婅繖浜涙搷浣滃簲鐢ㄥ埌瀹冭嚜宸辯殑鏈湴鐘舵佷腑銆?/p>

      5涓誨潡鎶婂啓璇鋒眰浼犻掑埌鎵鏈夌殑浜岀駭鍓湰銆傛瘡涓簩綰у壇鏈緷鐓т富鍧楀垎閰嶇殑搴忓垪鍙風殑欏哄簭搴旂敤榪欎簺鎿嶄綔銆?/p>

      6鎵鏈変簩綰у壇鏈洖澶嶄富鍧楄鏄庝粬浠凡緇忓畬鎴愭搷浣溿?/p>

      7涓誨潡鍥炲瀹㈡埛鏈恒備換浣曞壇鏈駭鐢熺殑閿欒閮戒細鎶ュ憡緇欏鎴鋒満銆傞敊璇殑鎯呭喌涓嬶紝涓誨潡鍜屼竴浜涗簩綰у壇鏈彲鑳芥垚鍔熺殑鍐欏叆浜嗘暟鎹傦紙濡傛灉涓誨潡鍐欏叆澶辮觸錛屾搷浣滃氨涓嶄細琚垎閰嶅簭鍒楀彿錛屼篃涓嶄細琚紶閫掋傦級瀹㈡埛绔姹傝紜涓哄け璐ワ紝宸茬粡淇敼鐨勫尯鍩熶繚鎸佷笉涓鑷寸殑鐘舵併傛垜浠殑瀹㈡埛鏈轟唬鐮侀氳繃閲嶅澶辮觸鐨勬搷浣滄潵澶勭悊榪欐牱鐨勯敊璇傚湪瀹屽叏浠庡ご寮濮嬪啓鍏ヤ箣鍓嶏紝鍙兘浼氬厛浠庢楠?鍒版楠?榪涜鍑犳灝濊瘯銆?/p>

 2.2 鏁版嵁嫻?/p>

      鏁版嵁嫻佸拰鎺у埗嫻佸垎寮銆傛帶鍒舵祦浠庡鎴鋒満鍒頒富鍧楃劧鍚庡啀鍒版墍鏈変簩綰у壇鏈殑鍚屾椂錛屾暟鎹『搴忔帹閫佸埌涓涓簿蹇冮夋嫨鐨勭閬撳艦寮忕殑鍧楁湇鍔″櫒閾俱傜壒鐐癸細鐢↖P鍦板潃灝卞彲浠ヨ綆楀嚭鑺傜偣鐨勮繙榪戯紱鐢ㄥ湪TCP榪炴帴涓婄閬撳寲鏁版嵁浼犺緭鏉ユ渶灝忓寲寤惰繜銆?/p>

2.3 鍘熷瓙鎬х殑璁板綍榪藉姞

      GFS鎻愪緵浜嗕竴涓師瀛愭х殑娣誨姞鎿嶄綔錛歳ecord append銆傚湪浼犵粺鐨勫啓鎿嶄綔涓紝client鎸囧畾琚啓鏁版嵁鐨勫亸縐諱綅緗紝鍚戝悓涓涓尯闂寸殑騫跺彂鐨勫啓鎿嶄綔鏄笉榪炵畫鐨勶細鍖洪棿鏈夊彲鑳藉寘鍚潵鑷涓猚lient鐨勬暟鎹鐗囥傚湪record append涓紝 client鍙槸鎸囧畾鏁版嵁銆侴FS鍦ㄥ叾閫夊畾鐨勫亸縐誨嚭灝嗘暟鎹嚦灝戝師瀛愭х殑鍔犲叆鏂囦歡涓嬈★紝騫跺皢鍋忕Щ榪斿洖緇檆lient銆?/p>

鍦ㄥ垎甯冨紡鐨勫簲鐢ㄤ腑錛屼笉鍚屾満鍣ㄤ笂鐨勮澶歝lient鍙兘浼氬悓鏃跺悜涓涓枃浠舵墽琛屾坊鍔犳搷浣滐紝娣誨姞鎿嶄綔琚綣佷嬌鐢ㄣ傚鏋滅敤浼犵粺鐨剋rite鎿嶄綔錛屽彲鑳介渶瑕侀澶栫殑銆佸鏉傜殑銆佸紑閿杈冨ぇ鐨勫悓姝ワ紝渚嬪閫氳繃鍒嗗竷寮忛攣綆$悊銆傚湪鎴戜滑鐨勫伐浣滈噺涓紝榪欎簺鏂囦歡閫氬父浠ュ涓敓浜ц呭崟涓秷璐硅呴槦鍒楃殑鏂瑰紡鎴栧寘鍚粠澶氫釜涓嶅悓 client鐨勭患鍚堢粨鏋溿?/p>

      Record append鍜屽墠闈㈣鐨剋rite鎿嶄綔鐨勬帶鍒舵祦宸笉澶氾紝鍙槸鍦╬rimary涓婂浜嗕竴浜涢昏緫鍒ゆ柇銆傞鍏堬紝client灝嗘暟鎹彂閫佸埌鏂囦歡鏈鍚庝竴鍧楃殑鎵鏈夊壇鏈笂銆傜劧鍚庡悜primary鍙戦佽姹傘侾rimary媯鏌ユ坊鍔犳搷浣滄槸鍚︿細瀵艱嚧璇ュ潡瓚呰繃鏈澶х殑瑙勬ā錛?4M錛夈傚鏋滆繖鏍鳳紝瀹冨皢璇ュ潡鎵╁厖鍒版渶澶ц妯★紝騫跺憡璇夊叾瀹冨壇鏈仛鍚屾牱鐨勪簨錛屽悓鏃墮氱煡client璇ユ搷浣滈渶瑕佸湪涓嬩竴涓潡涓婇噸鏂板皾璇曘傚鏋滆褰曟弧瓚蟲渶澶ц妯$殑瑕佹眰錛宲rimary灝變細灝嗘暟鎹坊鍔犲埌瀹冪殑鍓湰涓婏紝騫跺憡璇夊叾瀹冪殑鍓湰鍦ㄥ悓鏍風殑鍋忕Щ澶勫啓鏁版嵁錛屾渶鍚巔rimary鍚慶lient鎶ュ憡鍐欐搷浣滄垚鍔熴傚鏋滃湪浠諱綍涓涓壇鏈笂record append鎿嶄綔澶辮觸錛宑lient灝嗛噸鏂板皾璇曡鎿嶄綔銆傝繖鏃跺欙紝鍚屼竴涓潡鐨勫壇鏈彲鑳藉寘鍚笉鍚岀殑鏁版嵁錛屽洜涓烘湁鐨勫彲鑳藉鍒朵簡鍏ㄩ儴鐨勬暟鎹紝鏈夌殑鍙兘鍙鍒朵簡閮ㄥ垎銆侴FS涓嶈兘淇濊瘉鎵鏈夌殑鍓湰姣忎釜瀛楄妭閮芥槸涓鏍風殑銆傚畠鍙繚璇佹瘡涓暟鎹綔涓轟竴涓師瀛愬崟鍏冭鍐欒繃鑷沖皯涓嬈°傝繖涓槸榪欐牱寰楀嚭鐨勶細鎿嶄綔瑕佹槸鎴愬姛錛屾暟鎹繀欏誨湪鎵鏈夌殑鍓湰涓婄殑鍚屾牱鐨勫亸縐誨琚啓榪囥傝繘涓姝ワ紝浠庤繖浠ュ悗錛屾墍鏈夌殑鍓湰鑷沖皯鍜岃褰曚竴鏍烽暱錛屾墍浠ュ悗緇殑璁板綍灝嗚鎸囧畾鍒版洿楂樼殑鍋忕Щ澶勬垨鑰呬竴涓笉鍚岀殑鍧椾笂錛屽嵆浣垮彟涓涓壇鏈垚浜唒rimary銆傛牴鎹竴鑷存т繚璇侊紝鎴愬姛鐨剅ecord append鎿嶄綔鐨勫尯闂存槸宸插畾涔夌殑銆傝屽彈鍒板共鎵扮殑鍖洪棿鏄笉涓鑷寸殑銆?/p>

 2.4蹇収

      蹇収鎿嶄綔鍑犱箮鍦ㄧ灛闂存瀯閫犱竴涓枃浠跺拰鐩綍鏍戠殑鍓湰錛屽悓鏃跺皢姝e湪榪涜鐨勫叾浠栦慨鏀規搷浣滃瀹冪殑褰卞搷鍑忚嚦鏈灝忋?/p>

鎴戜滑浣跨敤copy-on-write鎶鏈潵瀹炵幇snapshot銆傚綋master鍙楀埌涓涓猻napshot璇鋒眰鏃訛紝瀹冮鍏堣鎾ゆ秷灝嗚snapshot鐨勬枃浠朵笂鍧椾笂鐨刲ease銆傝繖浣垮緱浠諱綍涓涓悜榪欎簺鍧楀啓鏁版嵁鐨勬搷浣滈兘蹇呴』鍜宮aster浜や簰浠ユ壘鍒版嫢鏈塴ease鐨勫壇鏈傝繖灝辯粰master涓涓垱寤鴻繖涓潡鐨勫壇鏈殑鏈轟細銆?/p>

鍓湰琚挙閿鎴栫粓姝㈠悗錛宮aster鍦ㄧ鐩樹笂鐧昏鎵ц鐨勬搷浣滐紝鐒跺悗澶嶅埗婧愭枃浠舵垨鐩綍鏍戠殑metadata浠ュ瀹冪殑鍐呭瓨鐘舵佸疄鏂界櫥璁扮殑鎿嶄綔銆傝繖涓柊鍒涘緩鐨剆napshot鏂囦歡鍜屾簮鏂囦歡錛堝叾metadata錛夋寚鍚戠浉鍚岀殑鍧楋紙chunk錛夈?/p>

       Snapshot涔嬪悗錛屽鎴風涓嬈″悜chunk c鍐欑殑鏃跺欙紝瀹冨彂涓涓姹傜粰master浠ユ壘鍒版嫢鏈塴ease鐨勫壇鏈侻aster娉ㄦ剰鍒癱hunk c鐨勫紩鐢ㄨ鏁版瘮1澶э紝瀹冨歡榪熷鐢ㄦ埛鐨勫搷搴旓紝閫夋嫨涓涓猚hunk handle C’,鐒跺悗瑕佹眰姣忎竴鏈塩hunk c鐨勫壇鏈殑chunkserver鍒涘緩涓涓潡C’銆傛瘡涓猚hunkserver鍦ㄦ湰鍦板垱寤篶hunk C’閬垮厤浜嗙綉緇滃紑閿銆備粠榪欎互鍚庡拰瀵瑰埆鐨勫潡鐨勬搷浣滄病鏈変粈涔堝尯鍒?/p>

 

3.Mast鎿嶄綔

MASTER鎵ц鎵鏈夊悕瀛楃┖闂寸殑鎿嶄綔錛岄櫎姝や箣澶栵紝浠栬繕鍦ㄧ郴緇熻寖鍥寸鐞嗘暟鎹潡鐨勫鍒訛細鍐沖畾鏁版嵁鍧楃殑鏀劇疆鏂規錛屼駭鐢熸柊鏁版嵁鍧楀茍灝嗗叾澶囦喚錛屽拰鍏朵粬緋葷粺鑼冨洿鐨勬搷浣滃崗鍚屾潵紜繚鏁版嵁澶囦喚鐨勫畬鏁存э紝鍦ㄦ墍鏈夌殑鏁版嵁鍧楁湇鍔″櫒涔嬮棿騫寵 璐熻澆騫舵敹鍥炴病鏈変嬌鐢ㄧ殑瀛樺偍絀洪棿銆?/p>

3.1 鍚嶅瓧絀洪棿綆$悊鍜屽姞閿?/p>

      涓庝紶緇熸枃浠剁郴緇熶笉鍚岀殑鏄紝GFS娌℃湁涓庢瘡涓洰褰曠浉鍏崇殑鑳藉垪鍑哄叾鎵鏈夋枃浠剁殑鏁版嵁緇撴瀯錛屽畠涔熶笉鏀寔鍒悕錛坲nix涓殑紜繛鎺ユ垨絎﹀彿榪炴帴錛夛紝涓嶇鏄鏂囦歡鎴栨槸鐩綍銆侴FS鐨勫悕瀛楃┖闂撮昏緫涓婃槸浠庢枃浠跺厓鏁版嵁鍒拌礬寰勫悕鏄犲皠鐨勪竴涓煡鐢ㄨ〃銆?/p>

MASTER鍦ㄦ墽琛屾煇涓搷浣滃墠閮借鑾峰緱涓緋誨垪閿侊紝渚嬪錛屽畠瑕佸/d1/d2…/dn/leaf鎵ц鎿嶄綔錛屽垯瀹冨繀欏昏幏寰?d1錛?d1/d2錛?#8230;錛?/d1/d2/…/dn鐨勮閿侊紝/d1/d2…/dn/leaf鐨勮閿佹垨鍐欓攣錛堝叾涓璴eaf鍙互浣挎枃浠朵篃鍙互鏄洰褰曪級銆侻ASTER鎿嶄綔鐨勫茍琛屾у拰鏁版嵁鐨勪竴鑷存у氨鏄氳繃榪欎簺閿佹潵瀹炵幇鐨勩?/p>

3.2 澶囦喚瀛樺偍鏀劇疆絳栫暐

涓涓狦FS闆嗙兢鏂囦歡緋葷粺鍙兘鏄灞傚垎甯冪殑銆備竴鑸儏鍐典笅鏄垚鍗冧笂涓囦釜鏂囦歡鍧楁湇鍔″櫒鍒嗗竷浜庝笉鍚岀殑鏈烘灦涓婏紝鑰岃繖浜涙枃浠跺潡鏈嶅姟鍣ㄥ張琚垎甯冧簬涓嶅悓鏈烘灦涓婄殑瀹㈡埛鏉ヨ闂傚洜姝わ紝涓嶅悓鏈烘灦涓婄殑涓ゅ彴鏈哄櫒涔嬮棿鐨勯氫俊鍙兘閫氳繃涓涓垨澶氫釜浜ゆ崲鏈恒傛暟鎹潡鍐椾綑閰嶇疆絳栫暐瑕佽揪鍒板涓洰鐨勶細鏈澶х殑鏁版嵁鍙潬鎬у拰鍙敤鎬э紝鏈澶х殑緗戠粶甯﹀鍒╃敤鐜囥傚洜姝わ紝濡傛灉浠呬粎鎶婃暟鎹殑鎷瘋礉緗簬涓嶅悓鐨勬満鍣ㄤ笂寰堥毦婊¤凍榪欎袱涓姹傦紝蹇呴』鍦ㄤ笉鍚岀殑鏈烘灦涓婅繘琛屾暟鎹浠姐傝繖鏍峰嵆浣挎暣涓満鏋惰姣佹垨鏄帀綰匡紝涔熻兘紜繚鏁版嵁鐨勬甯鎬嬌鐢ㄣ傝繖涔熶嬌鏁版嵁浼犺緭錛屽挨鍏舵槸璇繪暟鎹紝鍙互鍏呭垎鍒╃敤甯﹀錛岃闂埌澶氫釜鏈烘灦錛岃屽啓鎿嶄綔錛屽垯涓嶅緱涓嶆秹鍙婂埌鏇村鐨勬満鏋躲?/p>

3.3 浜х敓銆侀噸澶嶅埗銆侀噸騫寵 鏁版嵁鍧?/p>

      褰揗ASTER浜х敓鏂扮殑鏁版嵁鍧楁椂錛屽浣曟斁緗柊鏁版嵁鍧楋紝瑕佽冭檻濡備笅鍑犱釜鍥犵礌錛氾紙1錛夊敖閲忔斁緗湪紓佺洏鍒╃敤鐜囦綆鐨勬暟鎹潡鏈嶅姟鍣ㄤ笂錛岃繖鏍鳳紝鎱㈡參鍦板悇鏈嶅姟鍣ㄧ殑紓佺洏鍒╃敤鐜囧氨浼氳揪鍒板鉤琛°傦紙2錛夊敖閲忔帶鍒跺湪涓涓湇鍔″櫒涓婄殑“鏂板垱寤?#8221;鐨勬鏁般傦紙3錛夌敱浜庝笂涓灝忚妭璁ㄨ鐨勫師鍥狅紝鎴戜滑闇瑕佹妸鏁版嵁鍧楁斁緗簬涓嶅悓鐨勬満鏋朵笂銆?/p>

      MASTER鍦ㄥ彲鐢ㄧ殑鏁版嵁鍧楀浠戒綆浜庣敤鎴瘋瀹氱殑鏁扮洰鏃墮渶瑕佽繘琛岄噸澶嶅埗銆傝繖縐嶆儏鍐墊簮浜庡縐嶅師鍥狅細鏈嶅姟鍣ㄤ笉鍙敤錛屾暟鎹鐮村潖錛岀鐩樿鐮村潖錛屾垨鑰呭浠芥暟鐩淇敼銆傛瘡涓闇瑕侀噸澶嶅埗鐨勬暟鎹潡鐨勪紭鍏堢駭鏍規嵁浠ヤ笅鍑犻」紜畾錛氱涓鏄幇鍦ㄧ殑鏁扮洰璺濈洰鏍囩殑璺濈錛屽浜庤兘闃誨鐢ㄦ埛紼嬪簭鐨勬暟鎹潡錛屾垜浠篃鎻愰珮瀹冪殑浼樺厛綰с傛渶鍚庯紝 MASTER鎸夌収浜х敓鏁版嵁鍧楃殑鍘熷垯澶嶅埗鏁版嵁鍧楋紝騫舵妸瀹冧滑鏀懼埌涓嶅悓鐨勬満鏋跺唴鐨勬湇鍔″櫒涓娿?/p>

       MASTER鍛ㄦ湡鎬х殑騫寵 鍚勬湇鍔″櫒涓婄殑璐熻澆錛氬畠媯鏌hunk鍒嗗竷鍜岃礋杞藉鉤琛★紝閫氳繃榪欑鏂瑰紡鏉ュ~鍏呬竴涓柊鐨勬湇鍔″櫒鑰屼笉鏄妸鍏朵粬鐨勫唴瀹圭粺緇熸斁緗埌瀹冧笂闈㈠甫鏉ュぇ閲忕殑鍐欐暟鎹傛暟鎹潡鏀劇疆鐨勫師鍒欎笌涓婇潰璁ㄨ鐨勭浉鍚岋紝姝ゅ錛孧ASTER榪樺喅瀹氬摢浜涙暟鎹潡瑕佽縐婚櫎錛屽師鍒欎笂瀹冧細娓呴櫎閭d簺絀洪棽絀洪棿浣庝簬騫沖潎鍊肩殑閭d簺鏈嶅姟鍣ㄣ?/p>

3.4 鍨冨溇鏀墮泦

      鍦ㄤ竴涓枃浠惰鍒犻櫎涔嬪悗錛孏FS騫朵笉绔嬪嵆鏀跺洖紓佺洏絀洪棿錛岃屾槸絳夊埌鍨冨溇鏀墮泦紼嬪簭鍦ㄦ枃浠跺拰鏁版嵁鍧楃駭鐨勭殑媯鏌ヤ腑鏀跺洖銆?/p>

褰撲竴涓枃浠惰搴旂敤紼嬪簭鍒犻櫎涔嬪悗錛孧ASTER浼氱珛鍗寵褰曚笅榪欎簺鍙樺寲錛屼絾鏂囦歡鎵鍗犵敤鐨勮祫婧愬嵈涓嶄細琚珛鍗蟲敹鍥烇紝鑰屾槸閲嶆柊緇欐枃浠跺懡浜嗕竴涓殣钘忕殑鍚嶅瓧錛屽茍闄勪笂浜嗗垹闄ょ殑鏃墮棿鎴熾傚湪MASTER瀹氭湡媯鏌ュ悕瀛楃┖闂存椂錛屽畠鍒犻櫎瓚呰繃涓夊ぉ錛堝彲浠ヨ瀹氾級鐨勯殣钘忕殑鏂囦歡銆傚湪姝や箣鍓嶏紝鍙互浠ヤ竴涓柊鐨勫悕瀛楁潵璇繪枃浠訛紝榪樺彲浠ヤ互鍓嶇殑鍚嶅瓧鎭㈠銆傚綋闅愯棌鐨勬枃浠跺湪鍚嶅瓧絀洪棿涓鍒犻櫎浠ュ悗錛屽畠鍦ㄥ唴瀛樹腑鐨勫厓鏁版嵁鍗寵鎿﹂櫎錛岃繖灝辨湁鏁堝湴鍒囨柇浜嗕粬鍜屾墍鏈夋暟鎹潡鐨勮仈緋匯?/p>

鍦ㄤ竴涓浉浼肩殑瀹氭湡鐨勫悕瀛楃┖闂存鏌ヤ腑錛孧ASTER紜瀛ゅ効鏁版嵁鍧楋紙涓嶅睘浜庝換浣曟枃浠訛級騫舵摝闄ゅ畠鐨勫厓鏁版嵁錛屽湪鍜孧ASTER鐨勫績璺充俊鎭氦鎹腑錛屾瘡涓湇鍔″櫒鎶ュ憡浠栨墍鎷ユ湁鐨勬暟鎹潡錛孧ASTER榪斿洖鍏冩暟鎹笉鍦ㄥ唴瀛樼殑鏁版嵁鍧楋紝鏈嶅姟鍣ㄥ嵆鍙互鍒犻櫎榪欎簺鏁版嵁鍧椼?/p>

3.5 榪囨椂鏁版嵁鐨勬帰嫻?/p>

      鍦ㄦ暟鎹洿鏂版椂濡傛灉鏈嶅姟鍣ㄥ仠鏈轟簡錛岄偅涔堜粬鎵淇濆瓨鐨勬暟鎹浠藉氨浼氳繃鏃躲傚姣忎釜鏁版嵁鍧楋紝MASTER璁劇疆浜嗕竴涓増鏈彿鏉ュ尯鍒洿鏂拌繃鐨勬暟鎹潡鍜岃繃鏃剁殑鏁版嵁鍧椼?/p>

      褰揗ASTER鎺堟潈涓涓柊鐨刲ease鏃訛紝浠栦細澧炲姞鏁版嵁鍧楃殑鐗堟湰鍙峰茍浼氶氱煡鏇存柊鏁版嵁澶囦喚銆侻ASTER鍜屽浠介兘浼氳褰曚笅褰撳墠鐨勭増鏈彿錛屽鏋滀竴涓浠藉綋鏃朵笉鍙敤錛岄偅涔堜粬鐨勭増鏈彿涓嶅彲鑳芥彁楂橈紝褰揅hunkServer閲嶆柊鍚姩騫跺悜MASTER鎶ュ憡浠栫殑鏁版嵁鍧楅泦鏃訛紝MASTER灝變細鍙戠幇榪囨椂鐨勬暟鎹?/p>

      MASTER鍦ㄥ畾鏈熺殑鍨冨溇鏀墮泦紼嬪簭涓竻闄よ繃鏃剁殑澶囦喚錛屽湪姝や互鍓嶏紝澶勪簬鏁堢巼鑰冭檻錛屽湪鍚勫鎴峰強鑻卞ぇ浣匡紝浠栦細璁や負鏍規湰涓嶅瓨鍦ㄨ繃鏃剁殑鏁版嵁銆備綔涓哄彟涓涓畨鍏ㄦ帾鏂斤紝 MASTER鍦ㄧ粰瀹㈡埛鍙婂叧浜庢暟鎹潡鐨勫簲絳旀垨鏄彟澶栦竴涓鍙栨暟鎹殑鏈嶅姟鍣ㄦ暟鎹槸閮戒細甯︿笂鐗堟湰淇℃伅錛屽湪鎿嶄綔鍓嶅鎴鋒満鍜屾湇鍔″櫒浼氶獙璇佺増鏈俊鎭互紜繚寰楀埌鐨勬槸鏈鏂扮殑鏁版嵁銆?/p>

 

4銆佸閿欏拰璇婃柇

4.1 楂樺彲闈犳?

4.1.1 蹇熸仮澶?

涓嶇濡備綍緇堟鏈嶅姟錛孧ASTER鍜屾暟鎹潡鏈嶅姟鍣ㄩ兘浼氬湪鍑犵閽熷唴鎭㈠鐘舵佸拰榪愯銆傚疄闄呬笂錛屾垜浠笉瀵規甯哥粓姝㈠拰涓嶆甯哥粓姝㈣繘琛屽尯鍒嗭紝鏈嶅姟鍣ㄨ繘紼嬮兘浼氳鍒囨柇鑰岀粓姝€傚鎴鋒満鍜屽叾浠栫殑鏈嶅姟鍣ㄤ細緇忓巻涓涓皬灝忕殑涓柇錛岀劧鍚庡畠浠殑鐗瑰畾璇鋒眰瓚呮椂錛岄噸鏂拌繛鎺ラ噸鍚殑鏈嶅姟鍣紝閲嶆柊璇鋒眰銆?

4.1.2 鏁版嵁鍧楀浠?

濡備笂鏂囨墍璁ㄨ鐨勶紝姣忎釜鏁版嵁鍧楅兘浼氳澶囦喚鍒版斁鍒頒笉鍚屾満鏋朵笂鐨勪笉鍚屾湇鍔″櫒涓娿傚涓嶅悓鐨勫悕瀛楃┖闂達紝鐢ㄦ埛鍙互璁劇疆涓嶅悓鐨勫浠界駭鍒傚湪鏁版嵁鍧楁湇鍔″櫒鎺夌嚎鎴栨槸鏁版嵁琚牬鍧忔椂錛孧ASTER浼氭寜鐓ч渶瑕佹潵澶嶅埗鏁版嵁鍧椼?

4.1.3 MASTER澶囦喚

涓虹‘淇濆彲闈犳э紝MASTER鐨勭姸鎬併佹搷浣滆褰曞拰媯鏌ョ偣閮藉湪澶氬彴鏈哄櫒涓婅繘琛屼簡澶囦喚銆備竴涓搷浣滃彧鏈夊湪鏁版嵁鍧楁湇鍔″櫒紜洏涓婂埛鏂板茍琚褰曞湪MASTER鍜屽叾澶囦喚鐨勪笂涔嬪悗鎵嶇畻鏄垚鍔熺殑銆傚鏋淢ASTER鎴栨槸紜洏澶辮觸錛岀郴緇熺洃瑙嗗櫒浼氬彂鐜板茍閫氳繃鏀瑰彉鍩熷悕鍚姩瀹冪殑涓涓浠芥満錛岃屽鎴鋒満鍒欎粎浠呮槸浣跨敤瑙勮寖鐨勫悕縐版潵璁塊棶錛屽茍涓嶄細鍙戠幇MASTER鐨勬敼鍙樸?

4.2 鏁版嵁瀹屾暣鎬?

姣忎釜鏁版嵁鍧楁湇鍔″櫒閮藉埄鐢ㄦ牎楠屽拰鏉ユ楠屽瓨鍌ㄦ暟鎹殑瀹屾暣鎬с傚師鍥狅細姣忎釜鏈嶅姟鍣ㄩ殢鏃墮兘鏈夊彂鐢熷穿婧冪殑鍙兘鎬э紝騫朵笖鍦ㄤ袱涓湇鍔″櫒闂存瘮杈冩暟鎹潡涔熸槸涓嶇幇瀹炵殑錛屽悓鏃訛紝鍦ㄤ袱鍙版湇鍔″櫒闂存嫹璐濇暟鎹茍涓嶈兘淇濊瘉鏁版嵁鐨勪竴鑷存с?

姣忎釜Chunk鎸?4kB鐨勫ぇ灝忓垎鎴愬潡錛屾瘡涓潡鏈?2浣嶇殑鏍¢獙鍜岋紝鏍¢獙鍜屽拰鏃ュ織瀛樺偍鍦ㄤ竴璧鳳紝鍜岀敤鎴鋒暟鎹垎寮銆?

鍦ㄨ鏁版嵁鏃訛紝鏈嶅姟鍣ㄩ鍏堟鏌ヤ笌琚鍐呭鐩稿叧閮ㄥ垎鐨勬牎楠屽拰錛屽洜姝わ紝鏈嶅姟鍣ㄤ笉浼氫紶鎾敊璇殑鏁版嵁銆傚鏋滄墍媯鏌ョ殑鍐呭鍜屾牎楠屽拰涓嶇錛屾湇鍔″櫒灝變細緇欐暟鎹姹傝呰繑鍥炰竴涓敊璇殑淇℃伅錛屽茍鎶婅繖涓儏鍐墊姤鍛婄粰MASTER銆傚鎴鋒満灝變細璇誨叾浠栫殑鏈嶅姟鍣ㄦ潵鑾峰彇鏁版嵁錛岃孧ASTER鍒欎細浠庡叾浠栫殑鎷瘋礉鏉ュ鍒舵暟鎹紝絳夊埌涓涓柊鐨勬嫹璐濆畬鎴愭椂錛孧ASTER灝變細閫氱煡鎶ュ憡閿欒鐨勬湇鍔″櫒鍒犻櫎鍑洪敊鐨勬暟鎹潡銆?

闄勫姞鍐欐暟鎹椂鐨勬牎楠屽拰璁$畻浼樺寲浜嗭紝鍥犱負榪欐槸涓昏鐨勫啓鎿嶄綔銆傛垜浠彧鏄洿鏂板鍔犻儴鍒嗙殑鏍¢獙鍜岋紝鍗充嬌鏈熬閮ㄥ垎鐨勬牎楠屽拰鏁版嵁宸茶鎹熷潖鑰屾垜浠病鏈夋鏌ュ嚭鏉ワ紝鏂扮殑鏍¢獙鍜屼笌鏁版嵁浼氫笉鐩哥錛岃繖縐嶅啿紿佸湪涓嬫浣跨敤鏃跺皢浼氳媯鏌ュ嚭鏉ャ?

鐩稿弽錛屽鏋滄槸瑕嗙洊鐜版湁鏁版嵁鐨勫啓錛屽湪鍐欎互鍓嶏紝鎴戜滑蹇呴』媯鏌ョ涓鍜屾渶鍚庝竴涓暟鎹潡錛岀劧鍚庢墠鑳芥墽琛屽啓鎿嶄綔錛屾渶鍚庤綆楀拰璁板綍鏍¢獙鍜屻傚鏋滄垜浠湪瑕嗙洊浠ュ墠涓嶅厛媯鏌ラ浣嶆暟鎹潡錛岃綆楀嚭鐨勬牎楠屽拰鍒欎細鍥犱負娌¤瑕嗙洊鐨勬暟鎹屼駭鐢熼敊璇?

鍦ㄧ┖闂叉椂闂達紝鏈嶅姟鍣ㄤ細媯鏌ヤ笉媧昏穬鐨勬暟鎹潡鐨勬牎楠屽拰錛岃繖鏍峰彲浠ユ鏌ュ嚭涓嶇粡甯歌鐨勬暟鎹殑閿欒銆備竴鏃﹂敊璇媯鏌ュ嚭鏉ワ紝鏈嶅姟鍣ㄤ細鎷瘋礉涓涓紜殑鏁版嵁鍧楁潵浠f浛閿欒鐨勩?

4.3 璇婃柇宸ュ叿

騫挎硾鑰岀粏鑷寸殑璇婃柇鏃ュ織浠ュ井灝忕殑浠d環鎹㈠彇浜嗗湪闂闅旂銆佽瘖鏂佹ц兘鍒嗘瀽鏂歸潰璧峰埌浜嗛噸澶х殑浣滅敤銆侴FS鏈嶅姟鍣ㄧ敤鏃ュ織鏉ヨ褰曟樉钁楃殑浜嬩歡錛堜緥濡傛湇鍔″櫒鍋滄満鍜屽惎鍔級鍜岃繙紼嬬殑搴旂瓟銆傝繙紼嬫棩蹇楄褰曟満鍣ㄤ箣闂寸殑璇鋒眰鍜屽簲絳旓紝閫氳繃鏀墮泦涓嶅悓鏈哄櫒涓婄殑鏃ュ織璁板綍錛屽茍瀵瑰畠浠繘琛屽垎鏋愭仮澶嶏紝鎴戜滑鍙互瀹屾暣鍦伴噸鐜版椿鍔ㄧ殑鍦烘櫙錛屽茍鐢ㄦ鏉ヨ繘琛岄敊璇垎鏋愩?/p>

 

 

浠ヤ笅鏄疜osmos filesystem鐨勪竴浜涚壒鎬э細

鑷姩瀛樺偍鎵╁厖錛堟坊鍔犳柊鐨刢hunckserver,緋葷粺鑷姩鎰熺煡錛?/p>

鏈夋晥鎬э紙澶嶅埗鏈哄埗淇濊瘉鏂囦歡鏈夋晥鎬э紝涓鑸枃浠朵細琚互涓夌鏂瑰紡瀛樺偍錛屽綋鍏朵腑涓涓猚hunkserver鍑虹幇閿欒鐨勬椂鍊欙紝涓嶄細褰卞搷         鏁版嵁鐨勮鍙栵級

鏂囦歡澶嶅埗綺掑害錛氬彲浠ラ厤緗枃浠跺鍒剁殑綺掑害錛屾渶澶у彲浠ヨ澶嶅埗64浠?/p>

榪樺師澶嶅埗錛氬綋鍏朵腑涓涓狢hunckserver鍑虹幇鏁呴殰鐨勬椂鍊欙紝Metaserver浼氬己鍒朵嬌鐢ㄥ叾浠栫殑chunckserver

璐熻澆騫寵 錛堢郴緇熷懆鏈熷湴媯鏌hunkservers鐨勭鐩樺埄鐢紝騫墮噸鏂板鉤琛hunkservers鐨勭鐩樺埄鐢紝HDFS鐜板湪榪樻病鏈夋敮鎸侊級

鏁版嵁瀹屾暣鎬э紙褰撹璇誨彇鏁版嵁鏃舵鏌ユ暟鎹殑瀹屾暣鎬э紝濡傛灉媯楠屽嚭閿欎嬌鐢ㄥ彟澶栫殑澶囦喚瑕嗙洊褰撳墠鐨勬暟鎹級

鏂囦歡鍐欏叆錛氬綋涓涓簲鐢ㄧ▼搴忓垱寤轟簡涓涓枃浠訛紝榪欎釜鏂囦歡鍚嶄細琚珛鍒誨啓鍏ユ枃浠剁郴緇燂紝浣嗕負浜嗘ц兘錛屽啓鍏ョ殑鏁版嵁浼氳緙撳瓨鍦╧fs瀹㈡埛绔?騫朵笖鍛ㄦ湡鎬х殑浠庣紦瀛樹腑鎶婃暟鎹洿鏂板埌chunkserver涓傚綋鐒訛紝搴旂敤紼嬪簭涔熷彲浠ュ己鍒舵妸鏁版嵁鏇存柊鍒版湇鍔″櫒涓娿備竴鏃︽暟鎹鏇存柊鍒版湇鍔″櫒錛屽氨鍙互琚湁鏁堢殑璇誨彇浜嗐?/p>

濂戠害錛堜嬌鐢ㄥ綰︽潵淇濊瘉Client緙撳瓨鐨勬暟鎹拰鏂囦歡緋葷粺涓殑鏂囦歡淇濇寔涓鑷存э級

鏀寔FUSE錛堝湪linux緋葷粺涓嬶紝鍙互閫氳繃Fuse 鏄犲皠涓涓枃浠跺す錛屼粠鑰屽彲浠ュ緢鏂逛究鐨勮鍙杒fs鐨勬枃浠訛級

鏀寔C++,Java,Python鏂瑰紡鐨勮皟鐢?/p>

鎻愪緵浜嗕赴瀵岀殑宸ュ叿紼嬪簭錛屽kfsshell,cp2kfs絳?/p>

鎻愪緵浜嗗惎鍔ㄥ拰鍋滄鏈嶅姟鐨勮剼鏈?/p>

 

 

 

 

鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛?a >http://blog.csdn.net/boyplayee/archive/2010/02/22/5318092.aspx



灝忕帇 2010-02-26 17:17 鍙戣〃璇勮
]]>
鍒嗗竷寮忔枃浠剁郴緇烳FS(moosefs)瀹炵幇瀛樺偍鍏變韓http://www.shnenglu.com/jack-wang/archive/2010/02/08/107471.html灝忕帇灝忕帇Mon, 08 Feb 2010 01:11:00 GMThttp://www.shnenglu.com/jack-wang/archive/2010/02/08/107471.htmlhttp://www.shnenglu.com/jack-wang/comments/107471.htmlhttp://www.shnenglu.com/jack-wang/archive/2010/02/08/107471.html#Feedback0http://www.shnenglu.com/jack-wang/comments/commentRss/107471.htmlhttp://www.shnenglu.com/jack-wang/services/trackbacks/107471.html鍒嗗竷寮忔枃浠剁郴緇烳FS(moosefs)瀹炵幇瀛樺偍鍏變韓
浣滆?鐢伴?sery@163.com) from: [url]http://net.it168.com/a2009/0403/270/000000270867.shtml[/url]
 
鐢變簬鐢ㄦ埛鏁伴噺鐨勪笉鏂攢鍗?鎴戝璁塊棶閲忓ぇ鐨勫簲鐢ㄥ疄鐜頒簡鍙墿灞曘侀珮鍙潬鐨勯泦緹ら儴緗詫紙鍗砽vs+keepalived鐨勬柟寮忥級錛屼絾浠嶇劧鏈夌敤鎴峰弽棣堣闂參鐨勯棶棰樸傞氳繃鎺掓煡涓湇鍔″櫒鐨勬儏鍐碉紝鍙戠幇闂鐨勬牴婧愬湪浜庡叡浜瓨鍌ㄦ湇鍔″櫒NFS銆傚湪鎴戣繖涓綉緇滅幆澧冮噷錛孨涓湇鍔″櫒閫氳繃nfs鏂瑰紡鍏變韓涓涓湇鍔″櫒鐨勫瓨鍌ㄧ┖闂達紝浣垮緱NFS鏈嶅姟鍣ㄤ笉鍫噸璐熴傚療鐪嬬郴緇熸棩蹇楋紝鍏ㄦ槸nfs鏈嶅姟瓚呮椂涔嬬被鐨勬姤閿欍備竴鑸儏鍐典笅錛屽綋nfs瀹㈡埛绔暟鐩緝灝忕殑鏃跺欙紝NFS鎬ц兘涓嶄細鍑虹幇闂錛涗竴鏃FS鏈嶅姟鍣ㄦ暟鐩繃澶氾紝騫朵笖鏄偅縐嶈鍐欓兘姣旇緝棰戠箒鐨勬搷浣滐紝鎵寰楀埌鐨勭粨鏋滃氨涓嶆槸鎴戜滑鎵鏈熷緟鐨勩備笅闈㈡槸鏌愪釜闆嗙兢浣跨敤nfs鍏變韓鐨勭ず鎰忓浘錛?img onclick='window.open("http://blog.51cto.com/viewpic.php?refimg=" + this.src)' border=0 alt="" src="http://img1.51cto.com/attachment/200904/200904091239248490014.jpg">
榪欑鏋舵瀯闄や簡鎬ц兘闂鑰屽錛岃繕瀛樺湪鍗曠偣鏁呴殰錛屼竴鏃﹁繖涓狽FS鏈嶅姟鍣ㄥ彂鐢熸晠闅滐紝鎵鏈夐潬鍏變韓鎻愪緵鏁版嵁鐨勫簲鐢ㄥ氨涓嶅啀鍙敤錛屽敖綆$敤rsync鏂瑰紡鍚屾鏁版嵁鍒板彟澶栦竴涓湇鍔″櫒涓婂仛nfs鏈嶅姟鐨勫浠斤紝浣嗚繖瀵規彁楂樻暣涓郴緇熺殑鎬ц兘姣棤甯姪銆傚熀浜庤繖鏍蜂竴縐嶉渶姹傦紝鎴戜滑闇瑕佸nfs鏈嶅姟鍣ㄨ繘琛屼紭鍖栨垨閲囧彇鍒殑瑙e喅鏂規錛岀劧鑰屼紭鍖栧茍涓嶈兘瀵瑰簲瀵規棩鐩婂澶氱殑瀹㈡埛绔殑鎬ц兘瑕佹眰錛屽洜姝ゅ敮涓鐨勯夋嫨鍙兘鏄噰鍙栧埆鐨勮В鍐蟲柟妗堜簡錛涢氳繃璋冪爺錛屽垎甯冨紡鏂囦歡緋葷粺鏄竴涓瘮杈冨悎閫傜殑閫夋嫨銆傞噰鐢ㄥ垎甯冨紡鏂囦歡緋葷粺鍚庯紝鏈嶅姟鍣ㄤ箣闂寸殑鏁版嵁璁塊棶涓嶅啀鏄竴瀵瑰鐨勫叧緋伙紙1涓狽FS鏈嶅姟鍣紝澶氫釜NFS瀹㈡埛绔級錛岃屾槸澶氬澶氱殑鍏崇郴錛岃繖鏍蜂竴鏉ワ紝鎬ц兘澶у箙鎻愬崌姣棤闂銆?/div>
 
鍒扮洰鍓嶄負姝紝鏈夋暟鍗佺浠ヤ笂鐨勫垎甯冨紡鏂囦歡緋葷粺瑙e喅鏂規鍙緵閫夋嫨錛屽lustre,hadoop,Pnfs絳夌瓑銆傛垜灝濊瘯浜哖VFS,hadoop,moosefs榪欎笁縐嶅簲鐢紝鍙傜湅浜唋ustre銆並FS絳夎澶氭妧鏈疄鏂芥柟娉曪紝鏈鍚庢垜閫夋嫨浜唌oosefs錛堜互涓嬬畝縐癕FS錛夎繖縐嶅垎甯冨紡鏂囦歡緋葷粺鏉ヤ綔涓烘垜鐨勫叡浜瓨鍌ㄦ湇鍔″櫒銆備負浠涔堣閫夊畠鍛紵鎴戞潵璇磋鎴戠殑涓浜涚湅娉曪細
1銆?nbsp; 瀹炴柦璧鋒潵綆鍗曘侻FS鐨勫畨瑁呫侀儴緗層侀厤緗浉瀵逛簬鍏朵粬鍑犵宸ュ叿鏉ヨ錛岃綆鍗曞拰瀹規槗寰楀銆傜湅鐪媗ustre 700澶氶〉鐨刾df鏂囨。錛岃浜哄ご鏄忓惂銆?/div>
2銆?nbsp; 涓嶅仠鏈嶅姟鎵╁銆侻FS妗嗘灦鍋氬ソ鍚庯紝闅忔椂澧炲姞鏈嶅姟鍣ㄦ墿鍏呭閲忥紱鎵╁厖鍜屽噺灝戝閲忕殕涓嶄細褰卞搷鐜版湁鐨勬湇鍔°傛敞錛歨adoop涔熷疄鐜頒簡榪欎釜鍔熻兘銆?/div>
3銆?nbsp; 鎭㈠鏈嶅姟瀹規槗銆傞櫎浜哅FS鏈韓鍏峰楂樺彲鐢ㄧ壒鎬у錛屾墜鍔ㄦ仮澶嶆湇鍔′篃鏄潪甯稿揩鎹風殑錛屽師鍥犲弬鐓х1鏉°?/div>
4銆?nbsp; 鎴戝湪瀹為獙榪囩▼涓緱鍒頒綔鑰呯殑甯姪錛岃繖璁╂垜寰堟槸鎰熸縺銆?/div>
MFS鏂囦歡緋葷粺鐨勭粍鎴?/div>
1銆?nbsp;鍏冩暟鎹湇鍔″櫒銆傚湪鏁翠釜浣撶郴涓礋璐g鐞嗙鐞嗘枃浠剁郴緇燂紝鐩墠MFS鍙敮鎸佷竴涓厓鏁版嵁鏈嶅姟鍣╩aster錛岃繖鏄竴涓崟鐐規晠闅滐紝闇瑕佷竴涓ц兘紼沖畾鐨勬湇鍔″櫒鏉ュ厖褰撱傚笇鏈涗粖鍚嶮FS鑳芥敮鎸佸涓猰aster鏈嶅姟鍣紝榪涗竴姝ユ彁楂樼郴緇熺殑鍙潬鎬с?/div>
2銆?nbsp;鏁版嵁瀛樺偍鏈嶅姟鍣╟hunkserver銆傜湡姝e瓨鍌ㄧ敤鎴鋒暟鎹殑鏈嶅姟鍣ㄣ傚瓨鍌ㄦ枃浠舵椂錛岄鍏堟妸鏂囦歡鍒嗘垚鍧楋紝鐒跺悗榪欎簺鍧楀湪鏁版嵁鏈嶅姟鍣╟hunkserver涔嬮棿澶嶅埗錛堝鍒朵喚鏁板彲浠ユ墜宸ユ寚瀹氾紝寤鴻璁劇疆鍓湰鏁頒負3錛夈傛暟鎹湇鍔″櫒鍙互鏄涓紝騫朵笖鏁伴噺瓚婂錛屽彲浣跨敤鐨?#8220;紓佺洏絀洪棿”瓚婂ぇ錛屽彲闈犳т篃瓚婇珮銆?/div>
3銆?nbsp;瀹㈡埛绔備嬌鐢∕FS鏂囦歡緋葷粺鏉ュ瓨鍌ㄥ拰璁塊棶鐨勪富鏈虹О涓篗FS鐨勫鎴風錛屾垚鍔熸寕鎺FS鏂囦歡緋葷粺浠ュ悗錛屽氨鍙互鍍忎互鍓嶄嬌鐢∟FS涓鏍峰叡浜繖涓櫄鎷熸х殑瀛樺偍浜嗐?/div>
 
鍏冩暟鎹湇鍔″櫒瀹夎鍜岄厤緗?/div>
鍏冩暟鎹湇鍔″櫒鍙互鏄痩inux,涔熷彲浠ユ槸unix,浣犲彲浠ユ牴鎹嚜宸辯殑浣跨敤涔犳儻閫夋嫨鎿嶄綔緋葷粺,鍦ㄦ垜鐨勭幆澧冮噷,鎴戞槸鐢╢reebsd鍋氫負MFS鍏冩暟鎹殑榪愯騫沖彴銆侴NU婧愮爜錛屽湪鍚勭綾籾nix騫沖彴鐨勫畨瑁呴兘鍩烘湰涓鑷淬?/div>
 
錛堜竴錛?nbsp;  瀹夎鍏冩暟鎹湇鍔?/div>
2銆佽В鍖?tar zxvf mfs-1.5.12.tar.gz
3銆佸垏鎹㈢洰褰?cd mfs-1.5.12
4銆佸垱寤虹敤鎴?useradd mfs –s /sbin/nologin 
5銆侀厤緗?./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
6銆佺紪璇戝畨瑁?make ; make install
 
錛堜簩錛?nbsp;  閰嶇疆鍏冩暟鎹湇鍔?/div>
鍏冩暟鎹湇鍔″櫒鐨勯厤緗枃浠舵槸mfsmaster.cfg,鎴戝湪瀹夎MFS鏃舵寚瀹氫簡鍓嶇紑錛屽洜姝よ繖涓枃浠剁殑浣嶇疆鍦?usr/local/mfs/etc/mfsmaster.cfg.鎴戜滑鎵撳紑榪欎釜閰嶇疆鏂囦歡錛岀湅鐪嬮兘鏈夊摢浜涘唴瀹癸細
灝界姣忚閮借娉ㄩ噴鎺変簡錛屼絾瀹冧滑鍗存槸閰嶇疆鏂囦歡鐨勯粯璁ゅ鹼紝瑕佹敼鍙樿繖浜涘鹼紝闇瑕佸彇娑堟敞閲婏紝鐒跺悗鏄庣‘鎸囧畾鍏跺彇鍊箋傛帴涓嬫潵璇存槑涓涓嬪叾涓竴浜涢」鐩殑鍚箟銆?/div>
鈼?nbsp;    LOCK_FILE = /var/run/mfs/mfsmaster.pid 鏂囦歡閿佹墍鍦ㄧ殑浣嶇疆錛屽畠鐨勫姛鑳芥槸閬垮厤鍚姩澶氭鍚姩鍚屼竴涓畧鎶よ繘紼嬨傜敱浜庣郴緇熶腑鏈潵涓嶅瓨鍦ㄧ洰褰?/var/run/mfs錛屽洜姝ら渶瑕佹墜鍔ㄥ垱寤?mkdir /var/run/mfs錛岀劧鍚庢洿鏀瑰叾灞炰富 chown –R mfs:mfs /var/run/mfs 榪欐牱MFS 鏈嶅姟灝辮兘瀵硅繖涓洰褰曟湁鍒涘緩/鍐欏叆 mfsmaster.pid 鏂囦歡鐨勬潈闄愪簡銆?/div>
鈼?nbsp;    DATA_PATH = /usr/local/mfs/var/mfs 鏁版嵁瀛樻斁璺緞錛屽彧鍏冩暟鎹殑瀛樻斁璺緞銆傞偅涔堣繖浜涙暟鎹兘鍖呮嫭鍝簺鍛紵榪涚洰褰曠湅鐪嬶紝澶ц嚧鍒?縐嶇被鍨嬬殑鏂囦歡錛?/div>
榪欎簺鏂囦歡涔熷悓鏍瘋瀛樺偍鍦ㄥ叾浠栨暟鎹瓨鍌ㄦ湇鍔″櫒鐨勭浉鍏崇洰褰曘?/div>
鈼?nbsp;    MATOCS_LISTEN_PORT = 9420 MATOCS--master to chunkserver錛屽嵆鍏冩暟鎹湇鍔″櫒浣跨敤9420榪欎釜鐩戝惉绔彛鏉ユ帴鍙楁暟鎹瓨鍌ㄦ湇鍔″櫒chunkserver绔殑榪炴帴銆?/div>
鈼?nbsp;    MATOCU_LISTEN_PORT = 9421 鍏冩暟鎹湇鍔″櫒鍦?421绔彛鐩戝惉錛岀敤浠ユ帴鍙楀鎴風瀵筂FS榪涜榪滅▼鎸傛帴錛堝鎴風浠fsmount鎸傛帴MFS錛?/div>
鈼?nbsp;    鍏朵粬閮ㄥ垎鐪嬪瓧闈㈡剰鎬濋兘涓嶉毦鐞嗚В銆傝繕鏈夊嚑涓笌鏃墮棿鏈夊叧鐨勬暟鍊鹼紝鍏跺崟浣嶆槸縐掋?/div>
榪欎釜閰嶇疆鏂囦歡錛屼笉蹇呭仛淇敼灝辮兘宸ヤ綔浜嗐?/div>
 
錛堜竴錛?nbsp;  鍏冩暟鎹湇鍔″櫒master鍚姩
鍏冩暟鎹湇鍔″櫒鍙互鍗曠嫭鍚姩錛屽嵆浣挎病鏈変換浣曟暟鎹瓨鍌ㄦ湇鍔″櫒錛坈hunkserver錛変篃鏄兘姝e父宸ヤ綔鐨勶紝鍥犳褰撴垜浠畨瑁呴厤緗畬MFS鍚庯紝鍗沖彲鍚姩瀹冦傛墽琛屽懡浠?/usr/local/mfs/sbin/mfsmaster start 錛屽鏋滄病鏈夋剰澶栵紝鍏冩暟鎹簱鏈嶅姟鍣ㄥ氨搴旇浣滀負涓涓畧鎶よ繘紼嬭繍琛岃搗鏉ャ傜幇鍦ㄦ垜浠彲浠ラ氳繃3涓柟闈㈡潵媯鏌ヤ竴涓婱FS master鐨勮繍琛岀姸鍐碉細
錛堝洓錛夈佸叧闂厓鏁版嵁鏈嶅姟鍣?/div>
鍏抽棴鍏冩暟鎹湇鍔″櫒錛屽姟蹇呬嬌鐢?/usr/local/mfs/sbin/mfsmaster –s 榪欑鏂瑰紡錛屽鏋滅洿鎺ヤ嬌鐢╧ill鏉姝昏繘紼嬶紝灝嗗鑷翠笅嬈″惎鍔ㄦ椂鍑虹幇鎵句笉鍒扮浉鍏蟲枃浠訛紝鑰屼笉鑳芥甯稿惎鍔ㄦ湇鍔″櫒銆傝繖涓竴瀹氳璋ㄦ厧銆傚綋鐒訛紝濡傛灉鍙戠敓浜嗚繖涓簨鎯咃紝榪樻槸鍙互閫氳繃 mfsmetastore 鏉ユ仮澶嶇殑銆?/div>
 
鏁版嵁瀛樺偍chunkserver鏈嶅姟鍣ㄧ殑瀹夎閰嶇疆
鏁版嵁瀛樺偍鏈嶅姟鍣╟hunkserver涔熸槸鍙互榪愯鍦ㄥ悇縐嶇被unix騫沖彴鐨勶紝鍥犳涓嶅啀澶氳銆備竴涓狹FS鐜鍒板簳鑳介泦緹ゅ灝戞湇鍔″櫒錛屼綔鑰呯殑璇存硶鏄笂PB瀹歸噺錛屼釜浜哄緩璁紝鏈濂?鍙頒互涓婏紱騫朵笖涓撻棬鐢ㄦ潵鍋氬瓨鍌紝涓嶈鎶婂畠璺焟aster鎼炲埌涓涓満鍣紙鐞嗚涓婃病闂錛屽疄鐜頒篃鏄彲浠ョ殑錛屼絾榪欎笉鏄竴涓ソ絳栫暐錛夈傚洜涓烘瘡涓暟鎹瓨鍌ㄦ湇鍔″櫒鐨勫畨瑁呭拰閰嶇疆閮芥槸鐩稿悓鐨勶紝鎵浠ュ彧闇鎸夌収涓涓湇鍔″櫒鐨勬搷浣滃氨鍙互浜嗐?/div>
 
錛堜竴錛夈佸畨瑁呮暟鎹瓨鍌ㄦ湇鍔″櫒 chunkserver
2銆佽В鍖?tar zxvf mfs-1.5.12.tar.gz
3銆佸垏鎹㈢洰褰?cd mfs-1.5.12
4銆佸垱寤虹敤鎴?useradd mfs –s /sbin/nologin 
5銆侀厤緗?./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
6銆佺紪璇戝畨瑁?make ; make install
 
錛堜簩錛夐厤緗暟鎹瓨鍌ㄦ湇鍔″櫒chunkserver
鏁版嵁瀛樺偍鏈嶅姟鍣ㄦ湁2涓厤緗湇鍔″櫒闇瑕佷慨鏀癸紝涓涓槸涓婚厤緗枃浠?mfschunkserver.cfg ,鍙︿竴涓厤緗枃浠舵槸 mfshdd.cfg銆傛瘡涓湇鍔″櫒鐢ㄦ潵鍒嗛厤緇?MFS浣跨敤鐨勭┖闂存渶濂芥槸涓涓崟鐙殑紜洏鎴栬呬竴涓猺aid鍗鳳紝鏈浣庤姹傛槸涓涓垎鍖恒備綔鑰呬婦鐨勪緥瀛愭槸鍒涘緩涓涓ぇ鏂囦歡錛岀劧鍚庢寕鎺ュ湪鏈湴錛岃繖涓嶅ソ錛屽彧鑳界敤鏉ュ仛瀹為獙浜嗐?/div>

1銆佷慨鏀歸厤緗枃浠?/usr/local/mfs/etc/mfschunkserver.cfg銆備笅闈㈡槸淇敼浜嗙殑閰嶇疆鏂囦歡錛?

 
 
榪欎釜閰嶇疆鏂囦歡閲岋紝娌℃湁娉ㄩ噴絎﹀彿“#”灝辨槸琚慨鏀硅繃鐨勯」浜嗭紝鎺ヤ笅鏉ユ槸閲岄潰鏌愪簺欏圭殑鍚箟璇存槑錛?/div>
鈼?nbsp;    MASTER_HOST = 192.168.0.19 鍏冩暟鎹湇鍔″櫒鐨勫悕縐版垨鍦板潃錛屽彲浠ユ槸涓繪満鍚嶏紝涔熷彲浠ユ槸ip鍦板潃錛屽彧瑕佹暟鎹瓨鍌ㄦ湇鍔″櫒鑳借闂埌鍏冩暟鎹湇鍔″櫒灝辮銆?/div>
鈼?nbsp;    LOCK_FILE = /var/run/mfs/mfschunkserver.pid 涓庡厓鏁版嵁鏈嶅姟鍣╩aster鐨勫鐞嗗畬鍏ㄧ浉鍚?
鈼?nbsp;    CSSERV_LISTEN_PORT = 9422 CSSERV鈥攃hunkserver,榪欎釜鐩戝惉绔彛鐢ㄤ簬涓庡叾瀹冩暟鎹瓨鍌ㄦ湇鍔″櫒闂寸殑榪炴帴錛岄氬父鏄暟鎹鍒躲?/div>
鈼?nbsp;    HDD_CONF_FILENAME = /usr/local/mfs/etc/mfshdd.cfg 鍒嗛厤緇橫FS浣跨敤鐨勭鐩樼┖闂撮厤緗枃浠剁殑浣嶇疆銆?/div>
2銆佷慨鏀歸厤緗枃浠?usr/local/mfs/etc/mfshdd.cfg銆傚湪鎴戠殑鏈嶅姟鍣ㄤ笂錛屽彧鏈変竴涓?T鐨凷ATA紜洏錛屽垎浜嗕竴涓?st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="800" UnitName="g">800G瀹歸噺鐨勫垎鍖烘潵鍋氫負MFS瀛樺偍鏈嶅姟鐨勭粍鎴愰儴鍒嗐備負浜嗕嬌mfs鎷ユ湁鍐欑洰褰曠殑鏉冮檺錛岄渶瑕佷慨鏀圭洰褰曠殑灞炰富銆傛垜鐨勬湇鍔″櫒鐨勫垎鍖烘寕鎺ョ偣鏄?/data , 鐢?chown –R mfs:mfs /data 鎶婂睘涓繪敼鍙樸傚洜涓烘垜鐨勬瘡涓湇鍔″櫒鍙渶璐$尞涓涓垎鍖哄仛涓篗FS,鍥犳閰嶇疆鏂囦歡鍙渶瑕佸涓嬩竴琛屽唴瀹瑰氨鍙互浜嗭細
錛堝洓錛?nbsp;  鍏抽棴鏁版嵁瀛樺偍鏈嶅姟鍣?/div>
璺熷厓鏁版嵁鏈嶅姟鍣╩aster鐩鎬技錛屾墽琛屽懡浠?/usr/local/mfs/sbin/mfschunkserver –s , chunkserver鏈嶅姟灝卞仠涓嬫潵浜嗐備負浜嗕嬌緋葷粺閲嶅惎榪囩▼鑳借嚜鍔ㄥ惎鍔╟hunkserver 鏈嶅姟錛屽彲浠ラ氳繃鍦?etc/rc.local鏂囦歡榪藉姞琛? /usr/local/mfs/sbin/mfschunkserver start 鏉ヨ揪鍒拌繖涓洰鐨勶紙master鐨勮嚜鍔ㄩ噸鍚鐞嗕篃鍙悓鏍峰鐞嗭級銆?/div>

 

鏈枃鍑鴻嚜 “sery” 鍗氬錛岃鍔″繀淇濈暀姝ゅ嚭澶?a >http://sery.blog.51cto.com/10037/147756



灝忕帇 2010-02-08 09:11 鍙戣〃璇勮
]]>鐢℉adoop榪涜鍒嗗竷寮忓茍琛岀紪紼?/title><link>http://www.shnenglu.com/jack-wang/archive/2010/01/28/106616.html</link><dc:creator>灝忕帇</dc:creator><author>灝忕帇</author><pubDate>Thu, 28 Jan 2010 05:50:00 GMT</pubDate><guid>http://www.shnenglu.com/jack-wang/archive/2010/01/28/106616.html</guid><wfw:comment>http://www.shnenglu.com/jack-wang/comments/106616.html</wfw:comment><comments>http://www.shnenglu.com/jack-wang/archive/2010/01/28/106616.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/jack-wang/comments/commentRss/106616.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jack-wang/services/trackbacks/106616.html</trackback:ping><description><![CDATA[鍘熷笘錛?a >http://www.cnblogs.com/phinecos/</a><br><br>Hadoop <span>鏄竴涓疄鐜頒簡</span><span> MapReduce </span><span>璁$畻妯″瀷鐨勫紑婧愬垎甯冨紡騫惰緙栫▼妗嗘灦錛屽熷姪浜?/span><span> Hadoop, </span><span>紼嬪簭鍛樺彲浠ヨ交鏉懼湴緙栧啓鍒嗗竷寮忓茍琛岀▼搴忥紝灝嗗叾榪愯浜庤綆楁満闆嗙兢涓婏紝瀹屾垚嫻烽噺鏁版嵁鐨勮綆椼傛湰鏂囧皢浠嬬粛</span><span> MapReduce </span><span>璁$畻妯″瀷錛屽垎甯冨紡騫惰璁$畻絳夊熀鏈蹇碉紝浠ュ強</span><span> Hadoop </span><span>鐨勫畨瑁呴儴緗插拰鍩烘湰榪愯鏂規硶銆?/span><span> </span> <p align=left><a name=N10059><strong><span>Hadoop </span></strong></a><strong><span>綆浠?/span></strong><strong> </strong></p> <p align=left><span>Hadoop </span><span>鏄竴涓紑婧愮殑鍙繍琛屼簬澶ц妯¢泦緹や笂鐨勫垎甯冨紡騫惰緙栫▼妗嗘灦錛岀敱浜庡垎甯冨紡瀛樺偍瀵逛簬鍒嗗竷寮忕紪紼嬫潵璇存槸蹇呬笉鍙皯鐨勶紝榪欎釜妗嗘灦涓繕鍖呭惈浜嗕竴涓垎甯冨紡鏂囦歡緋葷粺</span><span> HDFS( Hadoop Distributed File System )</span><span>銆備篃璁稿埌鐩墠涓烘錛?/span><span>Hadoop </span><span>榪樹笉鏄偅涔堝箍涓轟漢鐭ワ紝鍏舵渶鏂扮殑鐗堟湰鍙蜂篃浠呬粎鏄?/span><span> 0.16</span><span>錛岃窛紱?/span><span> 1.0 </span><span>浼間箮閮借繕鏈夊緢闀跨殑涓孌佃窛紱伙紝浣嗘彁鍙?/span><span> Hadoop </span><span>涓鑴夌浉鎵跨殑鍙﹀涓や釜寮婧愰」鐩?/span><span> Nutch </span><span>鍜?/span><span> Lucene ( </span><span>涓夎呯殑鍒涘浜洪兘鏄?/span><span> Doug Cutting ),</span><span>閭g粷瀵規槸澶у悕榧庨紟銆?/span><span>Lucene </span><span>鏄竴涓敤</span><span> Java </span><span>寮鍙戠殑寮婧愰珮鎬ц兘鍏ㄦ枃媯绱㈠伐鍏峰寘錛屽畠涓嶆槸涓涓畬鏁寸殑搴旂敤紼嬪簭錛岃屾槸涓濂楃畝鍗曟槗鐢ㄧ殑</span><span> API </span><span>銆傚湪鍏ㄤ笘鐣岃寖鍥村唴錛屽凡鏈夋棤鏁扮殑杞歡緋葷粺錛?/span><span>Web </span><span>緗戠珯鍩轟簬</span><span> Lucene </span><span>瀹炵幇浜嗗叏鏂囨绱㈠姛鑳斤紝鍚庢潵</span><span> Doug Cutting </span><span>鍙堝紑鍒涗簡絎竴涓紑婧愮殑</span><span> Web </span><span>鎼滅儲寮曟搸</span><span>(<a >http://www.nutch.org/</a>) Nutch, </span><span>瀹冨湪</span><span> Lucene </span><span>鐨勫熀紜涓婂鍔犱簡緗戠粶鐖櫕鍜屼竴浜涘拰</span><span> Web </span><span>鐩稿叧鐨勫姛鑳斤紝涓浜涜В鏋愬悇綾繪枃妗f牸寮忕殑鎻掍歡絳夛紝姝ゅ錛?/span><span>Nutch </span><span>涓繕鍖呭惈浜嗕竴涓垎甯冨紡鏂囦歡緋葷粺鐢ㄤ簬瀛樺偍鏁版嵁銆備粠</span><span> Nutch 0.8.0 </span><span>鐗堟湰涔嬪悗錛?/span><span>Doug Cutting </span><span>鎶?/span><span> Nutch </span><span>涓殑鍒嗗竷寮忔枃浠剁郴緇熶互鍙婂疄鐜?/span><span> MapReduce </span><span>綆楁硶鐨勪唬鐮佺嫭绔嬪嚭鏉ュ艦鎴愪簡涓涓柊鐨勫紑婧愰」</span><span> Hadoop</span><span>銆?/span><span>Nutch </span><span>涔熸紨鍖栦負鍩轟簬</span><span> Lucene </span><span>鍏ㄦ枃媯绱互鍙?/span><span> Hadoop </span><span>鍒嗗竷寮忚綆楀鉤鍙扮殑涓涓紑婧愭悳绱㈠紩鎿庛?/span></p> <p align=left><span>鍩轟簬</span><span> Hadoop,</span><span>浣犲彲浠ヨ交鏉懼湴緙栧啓鍙鐞嗘搗閲忔暟鎹殑鍒嗗竷寮忓茍琛岀▼搴忥紝騫跺皢鍏惰繍琛屼簬鐢辨垚鐧句笂鍗冧釜緇撶偣緇勬垚鐨勫ぇ瑙勬ā璁$畻鏈洪泦緹や笂銆備粠鐩墠鐨勬儏鍐墊潵</span> <span>鐪嬶紝</span><span>Hadoop </span><span>娉ㄥ畾浼氭湁涓涓緣鐓岀殑鏈潵錛?/span><span>"</span><span>浜戣綆?/span><span>"</span><span>鏄洰鍓嶇伕鎵嬪彲鐑殑鎶鏈悕璇嶏紝鍏ㄧ悆鍚勫ぇ</span><span> IT </span><span>鍏徃閮藉湪鎶曡祫鍜屾帹騫胯繖縐嶆柊涓浠g殑璁$畻妯″紡錛岃?/span><span> Hadoop </span><span>鍙堣鍏朵腑鍑犲涓昏鐨勫叕鍙哥敤浣滃叾</span><span>"</span><span>浜戣綆?/span><span>"</span><span>鐜涓殑閲嶈鍩虹杞歡錛屽</span><span>:</span><span>闆呰檸姝e湪鍊熷姪</span><span> Hadoop </span><span>寮婧愬鉤鍙扮殑鍔涢噺瀵規姉</span><span> Google, </span><span>闄や簡璧勫姪</span><span> Hadoop </span><span>寮鍙戝洟闃熷錛岃繕鍦ㄥ紑鍙戝熀浜?/span><span> Hadoop </span><span>鐨勫紑婧愰」鐩?/span><span> Pig, </span><span>榪欐槸涓涓笓娉ㄤ簬嫻烽噺鏁版嵁闆嗗垎鏋愮殑鍒嗗竷寮忚綆楃▼搴忋?/span><span>Amazon </span><span>鍏徃鍩轟簬</span><span> Hadoop </span><span>鎺ㄥ嚭浜?/span><span> Amazon S3 ( Amazon Simple Storage Service )</span><span>錛屾彁渚涘彲闈狅紝蹇燂紝鍙墿灞曠殑緗戠粶瀛樺偍鏈嶅姟錛屼互鍙婁竴涓晢鐢ㄧ殑浜戣綆楀鉤鍙?/span><span> Amazon EC2 ( Amazon Elastic Compute Cloud )</span><span>銆傚湪</span><span> IBM </span><span>鍏徃鐨勪簯璁$畻欏圭洰</span><span>--"</span><span>钃濅簯璁″垝</span><span>"</span><span>涓紝</span><span>Hadoop </span><span>涔熸槸鍏朵腑閲嶈鐨勫熀紜杞歡銆?/span><span>Google </span><span>姝e湪璺?/span><span>IBM</span><span>鍚堜綔錛屽叡鍚屾帹騫垮熀浜?/span><span> Hadoop </span><span>鐨勪簯璁$畻銆?/span><span> </span></p> <p align=left><a name=N1006D><strong><span>榪庢帴緙栫▼鏂瑰紡鐨勫彉闈?/span></strong></a> </p> <p align=left><span>鍦ㄦ懇灝斿畾寰嬬殑浣滅敤涓嬶紝浠ュ墠紼嬪簭鍛樻牴鏈笉鐢ㄨ冭檻璁$畻鏈虹殑鎬ц兘浼氳窡涓嶄笂杞歡鐨勫彂灞曪紝鍥犱負綰︽瘡闅?/span><span> 18 </span><span>涓湀錛?/span><span>CPU </span><span>鐨勪富棰戝氨浼氬鍔犱竴鍊嶏紝鎬ц兘涔熷皢鎻愬崌涓鍊嶏紝杞歡鏍規湰涓嶇敤鍋氫換浣曟敼鍙橈紝灝卞彲浠ヤ韓鍙楀厤璐圭殑鎬ц兘鎻愬崌銆傜劧鑰岋紝鐢變簬鏅朵綋綆$數璺凡緇忛愭笎鎺ヨ繎鍏剁墿鐞嗕笂鐨勬ц兘鏋侀檺錛屾懇灝?/span> <span>瀹氬緥鍦?/span><span> 2005 </span><span>騫村乏鍙沖紑濮嬪け鏁堜簡錛屼漢綾誨啀涔熶笉鑳芥湡寰呭崟涓?/span><span> CPU </span><span>鐨勯熷害姣忛殧</span><span> 18 </span><span>涓湀灝辯炕涓鍊嶏紝涓烘垜浠彁渚涜秺鏉ヨ秺蹇殑璁$畻鎬ц兘銆?/span><span>Intel, AMD, IBM </span><span>絳夎姱鐗囧巶鍟嗗紑濮嬩粠澶氭牳榪欎釜瑙掑害鏉ユ寲鎺?/span><span> CPU </span><span>鐨勬ц兘娼滃姏錛屽鏍告椂浠d互鍙婁簰鑱旂綉鏃朵唬鐨勫埌鏉ワ紝灝嗕嬌杞歡緙栫▼鏂瑰紡鍙戠敓閲嶅ぇ鍙橀潻錛屽熀浜庡鏍哥殑澶氱嚎紼嬪茍鍙戠紪紼嬩互鍙婂熀浜庡ぇ瑙勬ā璁$畻鏈洪泦緹ょ殑鍒嗗竷寮忓茍琛岀紪紼嬫槸灝嗘潵杞?/span> <span>浠舵ц兘鎻愬崌鐨勪富瑕侀斿緞銆?/span><span> </span></p> <p align=left><span>璁稿浜鴻涓鴻繖縐嶇紪紼嬫柟寮忕殑閲嶅ぇ鍙樺寲灝嗗甫鏉ヤ竴嬈¤蔣浠剁殑騫跺彂鍗辨満錛屽洜涓烘垜浠紶緇熺殑杞歡鏂瑰紡鍩烘湰涓婃槸鍗曟寚浠ゅ崟鏁版嵁嫻佺殑欏哄簭鎵ц錛岃繖縐嶉『搴忔墽琛屽崄鍒嗙鍚堜漢綾葷殑鎬濊?/span> <span>涔犳儻錛屽嵈涓庡茍鍙戝茍琛岀紪紼嬫牸鏍間笉鍏ャ傚熀浜庨泦緹ょ殑鍒嗗竷寮忓茍琛岀紪紼嬭兘澶熻杞歡涓庢暟鎹悓鏃惰繍琛屽湪榪炴垚涓涓綉緇滅殑璁稿鍙拌綆楁満涓?/span><span>,</span><span>榪欓噷鐨勬瘡涓鍙拌綆楁満鍧囧彲浠ユ槸涓鍙版櫘</span> <span>閫氱殑</span><span> PC </span><span>鏈恒傝繖鏍風殑鍒嗗竷寮忓茍琛岀幆澧冪殑鏈澶т紭鐐規槸鍙互寰堝鏄撶殑閫氳繃澧炲姞璁$畻鏈烘潵鎵╁厖鏂扮殑璁$畻緇撶偣錛屽茍鐢辨鑾峰緱涓嶅彲鎬濊鐨勬搗閲忚綆楄兘鍔?/span><span>, </span><span>鍚屾椂鍙堝叿鏈夌浉褰撳己鐨勫閿欒兘鍔涳紝涓鎵硅綆楃粨鐐瑰け鏁堜篃涓嶄細褰卞搷璁$畻鐨勬甯歌繘琛屼互鍙婄粨鏋滅殑姝g‘鎬с?/span><span>Google </span><span>灝辨槸榪欎箞鍋氱殑錛屼粬浠嬌鐢ㄤ簡鍙仛</span><span> MapReduce </span><span>鐨勫茍琛岀紪紼嬫ā鍨嬭繘琛屽垎甯冨紡騫惰緙栫▼錛岃繍琛屽湪鍙仛</span><span> GFS ( Google File System )</span><span>鐨勫垎甯冨紡鏂囦歡緋葷粺涓婏紝涓哄叏鐞冧嚎涓囩敤鎴鋒彁渚涙悳绱㈡湇鍔°?/span><span> </span></p> <p align=left><span>Hadoop </span><span>瀹炵幇浜?/span><span> Google </span><span>鐨?/span><span> MapReduce </span><span>緙栫▼妯″瀷錛屾彁渚涗簡綆鍗曟槗鐢ㄧ殑緙栫▼鎺ュ彛錛屼篃鎻愪緵浜嗗畠鑷繁鐨勫垎甯冨紡鏂囦歡緋葷粺</span><span> HDFS,</span><span>涓?/span><span> Google </span><span>涓嶅悓鐨勬槸錛?/span><span>Hadoop </span><span>鏄紑婧愮殑錛屼換浣曚漢閮藉彲浠ヤ嬌鐢ㄨ繖涓鏋舵潵榪涜騫惰緙栫▼銆傚鏋滆鍒嗗竷寮忓茍琛岀紪紼嬬殑闅懼害瓚充互璁╂櫘閫氱▼搴忓憳鏈涜岀敓鐣忕殑璇濓紝寮婧愮殑</span><span> Hadoop </span><span>鐨勫嚭鐜版瀬澶х殑闄嶄綆浜嗗畠鐨勯棬妲涳紝璇誨畬鏈枃錛屼綘浼氬彂鐜板熀浜?/span><span> Hadoop </span><span>緙栫▼闈炲父綆鍗曪紝鏃犻』浠諱綍騫惰寮鍙戠粡楠岋紝浣犱篃鍙互杞繪澗鐨勫紑鍙戝嚭鍒嗗竷寮忕殑騫惰紼嬪簭錛屽茍璁╁叾浠や漢闅句互緗俊鍦板悓鏃惰繍琛屽湪鏁扮櫨鍙版満鍣ㄤ笂錛岀劧鍚庡湪鐭椂闂村唴瀹屾垚嫻烽噺鏁版嵁</span> <span>鐨勮綆椼備綘鍙兘浼氳寰椾綘涓嶅彲鑳戒細鎷ユ湁鏁扮櫨鍙版満鍣ㄦ潵榪愯浣犵殑騫惰紼嬪簭錛岃屼簨瀹炰笂錛岄殢鐫</span><span>"</span><span>浜戣綆?/span><span>"</span><span>鐨勬櫘鍙婏紝浠諱綍浜洪兘鍙互杞繪澗鑾峰緱榪欐牱鐨勬搗閲忚綆楄兘鍔涖?/span> <span>渚嬪鐜板湪</span><span> Amazon </span><span>鍏徃鐨勪簯璁$畻騫沖彴</span><span> Amazon EC2 </span><span>宸茬粡鎻愪緵浜嗚繖縐嶆寜闇璁$畻鐨勭鐢ㄦ湇鍔★紝鏈夊叴瓚g殑璇昏呭彲浠ュ幓浜嗚В涓涓嬶紝榪欑瘒緋誨垪鏂囩珷鐨勭涓夐儴鍒嗗皢鏈夋墍浠嬬粛銆?/span><span> </span></p> <p align=left><span>鎺屾彙涓鐐瑰垎甯冨紡騫惰緙栫▼鐨勭煡璇嗗灝嗘潵鐨勭▼搴忓憳鏄繀涓嶅彲灝戠殑錛?/span><span>Hadoop </span><span>鏄姝ょ殑綆渚垮ソ鐢紝浣曚笉灝濊瘯涓涓嬪憿錛熶篃璁鎬綘宸茬粡鎬ヤ笉鍙愮殑鎯寵瘯涓涓嬪熀浜?/span><span> Hadoop </span><span>鐨勭紪紼嬫槸鎬庝箞鍥炰簨浜嗭紝浣嗘瘯绔熻繖縐嶇紪紼嬫ā鍨嬩笌浼犵粺鐨勯『搴忕▼搴忓ぇ涓嶇浉鍚岋紝鎺屾彙涓鐐瑰熀紜鐭ヨ瘑鎵嶈兘鏇村ソ鍦扮悊瑙e熀浜?/span><span> Hadoop </span><span>鐨勫垎甯冨紡騫惰紼嬪簭鏄浣曠紪鍐欏拰榪愯鐨勩傚洜姝ゆ湰鏂囦細鍏堜粙緇嶄竴涓?/span><span> MapReduce </span><span>鐨勮綆楁ā鍨嬶紝</span><span>Hadoop </span><span>涓殑鍒嗗竷寮忔枃浠剁郴緇?/span><span> HDFS, Hadoop </span><span>鏄浣曞疄鐜板茍琛岃綆楃殑錛岀劧鍚庢墠浠嬬粛濡備綍瀹夎鍜岄儴緗?/span><span> Hadoop </span><span>妗嗘灦錛屼互鍙婂浣曡繍琛?/span><span> Hadoop </span><span>紼嬪簭銆?/span><span> </span></p> <p align=left><a name=N10083><strong><span>MapReduce </span></strong></a><strong><span>璁$畻妯″瀷</span></strong> </p> <p align=left><span>MapReduce </span><span>鏄?/span><span> Google </span><span>鍏徃鐨勬牳蹇冭綆楁ā鍨嬶紝瀹冨皢澶嶆潅鐨勮繍琛屼簬澶ц妯¢泦緹や笂鐨勫茍琛岃綆楄繃紼嬮珮搴︾殑鎶借薄鍒頒簡涓や釜鍑芥暟錛?/span><span>Map </span><span>鍜?/span><span> Reduce, </span><span>榪欐槸涓涓護浜烘儕璁剁殑綆鍗曞嵈鍙堝▉鍔涘法澶х殑妯″瀷銆傞傚悎鐢?/span><span> MapReduce </span><span>鏉ュ鐞嗙殑鏁版嵁闆?/span><span>(</span><span>鎴栦換鍔?/span><span>)</span><span>鏈変竴涓熀鏈姹?/span><span>: </span><span>寰呭鐞嗙殑鏁版嵁闆嗗彲浠ュ垎瑙f垚璁稿灝忕殑鏁版嵁闆嗭紝鑰屼笖姣忎竴涓皬鏁版嵁闆嗛兘鍙互瀹屽叏騫惰鍦拌繘琛屽鐞嗐?/span><span> </span><span><br></span><a name=fig1><strong><span>鍥?/span><span> 1. MapReduce </span><span>璁$畻嫻佺▼</span></strong></a><span><br><br></span></p> <p><img alt="" src="http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop1/figure1.jpg"> </p> <p align=left><span>鍥句竴璇存槑浜嗙敤</span><span> MapReduce </span><span>鏉ュ鐞嗗ぇ鏁版嵁闆嗙殑榪囩▼</span><span>, </span><span>榪欎釜</span><span> MapReduce </span><span>鐨勮綆楄繃紼嬬畝鑰岃█涔嬶紝灝辨槸灝嗗ぇ鏁版嵁闆嗗垎瑙d負鎴愮櫨涓婂崈鐨勫皬鏁版嵁闆嗭紝姣忎釜</span><span>(</span><span>鎴栬嫢騫蹭釜</span><span>)</span><span>鏁版嵁闆嗗垎鍒敱闆嗙兢涓殑涓涓粨鐐?/span><span>(</span><span>涓鑸氨鏄竴鍙版櫘閫氱殑璁$畻鏈?/span><span>)</span><span>榪涜澶勭悊騫剁敓</span> <span>鎴愪腑闂寸粨鏋滐紝鐒跺悗榪欎簺涓棿緇撴灉鍙堢敱澶ч噺鐨勭粨鐐硅繘琛屽悎騫?/span><span>, </span><span>褰㈡垚鏈緇堢粨鏋溿?/span><span> </span></p> <p align=left><span>璁$畻妯″瀷鐨勬牳蹇冩槸</span><span> Map </span><span>鍜?/span><span> Reduce </span><span>涓や釜鍑芥暟錛岃繖涓や釜鍑芥暟鐢辯敤鎴瘋礋璐e疄鐜幫紝鍔熻兘鏄寜涓瀹氱殑鏄犲皠瑙勫垯灝嗚緭鍏ョ殑</span><span> <key, value> </span><span>瀵硅漿鎹㈡垚鍙︿竴涓垨涓鎵?/span><span> <key, value> </span><span>瀵硅緭鍑恒?/span><span> <br></span><strong><span>琛ㄤ竴</span></strong><strong><span> Map </span></strong><strong><span>鍜?/span></strong><strong><span> Reduce </span></strong><strong><span>鍑芥暟</span></strong></p> <p> <table border=0 cellSpacing=0 cellPadding=0 width="100%"> <tbody> <tr> <td> <p align=center><strong><span>鍑芥暟</span></strong><strong></strong></p> </td> <td> <p align=center><strong><span>杈撳叆</span></strong><strong></strong></p> </td> <td> <p align=center><strong><span>杈撳嚭</span></strong><strong></strong></p> </td> <td> <p align=center><strong><span>璇存槑</span></strong><strong></strong></p> </td> </tr> <tr> <td> <p align=center><strong><span>Map</span></strong></p> </td> <td> <p align=left><span><k1, v1></span></p> </td> <td> <p align=left><span>List(<k2,v2>)</span></p> </td> <td> <p align=left><span>1. </span><span>灝嗗皬鏁版嵁闆嗚繘涓姝ヨВ鏋愭垚涓鎵?/span><span> <key,value> </span><span>瀵癸紝杈撳叆</span><span> Map </span><span>鍑芥暟涓繘琛屽鐞嗐?/span><span><br>2. </span><span>姣忎竴涓緭鍏ョ殑</span><span> <k1,v1> </span><span>浼氳緭鍑轟竴鎵?/span><span> <k2,v2></span><span>銆?/span><span> <k2,v2> </span><span>鏄綆楃殑涓棿緇撴灉銆?/span> </p> </td> </tr> <tr> <td> <p align=center><strong><span>Reduce</span></strong></p> </td> <td> <p align=left><span><k2,List(v2)></span></p> </td> <td> <p align=left><span><k3,v3></span></p> </td> <td> <p align=left><span>杈撳叆鐨勪腑闂寸粨鏋?/span><span> <k2,List(v2)> </span><span>涓殑</span><span> List(v2) </span><span>琛ㄧず鏄竴鎵瑰睘浜庡悓涓涓?/span><span> k2 </span><span>鐨?/span><span> value</span></p> </td> </tr> </tbody> </table> </p> <p align=left><span>浠ヤ竴涓綆楁枃鏈枃浠朵腑姣忎釜鍗曡瘝鍑虹幇鐨勬鏁扮殑紼嬪簭涓轟緥錛?/span><span><k1,v1> </span><span>鍙互鏄?/span><span> <</span><span>琛屽湪鏂囦歡涓殑鍋忕Щ浣嶇疆</span><span>, </span><span>鏂囦歡涓殑涓琛?/span><span>></span><span>錛岀粡</span><span> Map </span><span>鍑芥暟鏄犲皠涔嬪悗錛屽艦鎴愪竴鎵逛腑闂寸粨鏋?/span><span> <</span><span>鍗曡瘝錛屽嚭鐜版鏁?/span><span>>, </span><span>鑰?/span><span> Reduce </span><span>鍑芥暟鍒欏彲浠ュ涓棿緇撴灉榪涜澶勭悊錛屽皢鐩稿悓鍗曡瘝鐨勫嚭鐜版鏁拌繘琛岀瘡鍔狅紝寰楀埌姣忎釜鍗曡瘝鐨勬葷殑鍑虹幇嬈℃暟銆?/span><span> </span></p> <p align=left><span>鍩轟簬</span><span> MapReduce </span><span>璁$畻妯″瀷緙栧啓鍒嗗竷寮忓茍琛岀▼搴忛潪甯哥畝鍗曪紝紼嬪簭鍛樼殑涓昏緙栫爜宸ヤ綔灝辨槸瀹炵幇</span><span> Map </span><span>鍜?/span><span> Reduce </span><span>鍑芥暟錛屽叾瀹冪殑騫惰緙栫▼涓殑縐嶇澶嶆潅闂錛屽鍒嗗竷寮忓瓨鍌紝宸ヤ綔璋冨害錛岃礋杞藉鉤琛★紝瀹歸敊澶勭悊錛岀綉緇滈氫俊絳夛紝鍧囩敱</span><span> MapReduce </span><span>妗嗘灦</span><span>(</span><span>姣斿</span><span> Hadoop )</span><span>璐熻矗澶勭悊錛岀▼搴忓憳瀹屽叏涓嶇敤鎿嶅績銆?/span><span> </span></p> <p align=left><a name=N100F0><strong><span>鍥?/span></strong></a><strong> </strong><strong><span>闆嗙兢涓婄殑騫惰璁$畻</span></strong> </p> <p align=left><span>MapReduce </span><span>璁$畻妯″瀷闈炲父閫傚悎鍦ㄥぇ閲忚綆楁満緇勬垚鐨勫ぇ瑙勬ā闆嗙兢涓婂茍琛岃繍琛屻傚浘涓涓殑姣忎竴涓?/span><span> Map </span><span>浠誨姟鍜屾瘡涓涓?/span><span> Reduce </span><span>浠誨姟鍧囧彲浠ュ悓鏃惰繍琛屼簬涓涓崟鐙殑璁$畻緇撶偣涓婏紝鍙兂鑰岀煡鍏惰繍綆楁晥鐜囨槸寰堥珮鐨勶紝閭d箞榪欐牱鐨勫茍琛岃綆楁槸濡備綍鍋氬埌鐨勫憿錛?/span><span> </span></p> <p align=left><strong><span>鏁版嵁鍒嗗竷瀛樺偍</span></strong><strong></strong></p> <p align=left><span>Hadoop </span><span>涓殑鍒嗗竷寮忔枃浠剁郴緇?/span><span> HDFS </span><span>鐢變竴涓鐞嗙粨鐐?/span><span> ( NameNode )</span><span>鍜?/span><span>N</span><span>涓暟鎹粨鐐?/span><span> ( DataNode )</span><span>緇勬垚錛屾瘡涓粨鐐瑰潎鏄竴鍙版櫘閫氱殑璁$畻鏈恒傚湪浣跨敤涓婂悓鎴戜滑鐔熸倝鐨勫崟鏈轟笂鐨勬枃浠剁郴緇熼潪甯哥被浼鹼紝涓鏍峰彲浠ュ緩鐩綍錛屽垱寤猴紝澶嶅埗錛屽垹闄ゆ枃浠訛紝鏌ョ湅鏂囦歡鍐呭絳夈備絾鍏跺簳</span> <span>灞傚疄鐜頒笂鏄妸鏂囦歡鍒囧壊鎴?/span><span> Block</span><span>錛岀劧鍚庤繖浜?/span><span> Block </span><span>鍒嗘暎鍦板瓨鍌ㄤ簬涓嶅悓鐨?/span><span> DataNode </span><span>涓婏紝姣忎釜</span><span> Block </span><span>榪樺彲浠ュ鍒舵暟浠藉瓨鍌ㄤ簬涓嶅悓鐨?/span><span> DataNode </span><span>涓婏紝杈懼埌瀹歸敊瀹圭伨涔嬬洰鐨勩?/span><span>NameNode </span><span>鍒欐槸鏁翠釜</span><span> HDFS </span><span>鐨勬牳蹇冿紝瀹冮氳繃緇存姢涓浜涙暟鎹粨鏋勶紝璁板綍浜嗘瘡涓涓枃浠惰鍒囧壊鎴愪簡澶氬皯涓?/span><span> Block</span><span>錛岃繖浜?/span><span> Block </span><span>鍙互浠庡摢浜?/span><span> DataNode </span><span>涓幏寰楋紝鍚勪釜</span><span> DataNode </span><span>鐨勭姸鎬佺瓑閲嶈淇℃伅銆傚鏋滀綘鎯充簡瑙f洿澶氱殑鍏充簬</span><span> HDFS </span><span>鐨勪俊鎭紝鍙繘涓姝ラ槄璇誨弬鑰冭祫鏂欙細</span><span><a > The Hadoop Distributed File System:Architecture and Design</a> </span></p> <p align=left><strong><span>鍒嗗竷寮忓茍琛岃綆?/span></strong><strong></strong></p> <p align=left><span>Hadoop </span><span>涓湁涓涓綔涓轟富鎺х殑</span><span> JobTracker</span><span>錛岀敤浜庤皟搴﹀拰綆$悊鍏跺畠鐨?/span><span> TaskTracker, JobTracker </span><span>鍙互榪愯浜庨泦緹や腑浠諱竴鍙拌綆楁満涓娿?/span><span>TaskTracker </span><span>璐熻矗鎵ц浠誨姟錛屽繀欏昏繍琛屼簬</span><span> DataNode </span><span>涓婏紝鍗?/span><span> DataNode </span><span>鏃㈡槸鏁版嵁瀛樺偍緇撶偣錛屼篃鏄綆楃粨鐐廣?/span><span> JobTracker </span><span>灝?/span><span> Map </span><span>浠誨姟鍜?/span><span> Reduce </span><span>浠誨姟鍒嗗彂緇欑┖闂茬殑</span><span> TaskTracker, </span><span>璁╄繖浜涗換鍔″茍琛岃繍琛岋紝騫惰礋璐g洃鎺т換鍔$殑榪愯鎯呭喌銆傚鏋滄煇涓涓?/span><span> TaskTracker </span><span>鍑烘晠闅滀簡錛?/span><span>JobTracker </span><span>浼氬皢鍏惰礋璐g殑浠誨姟杞氦緇欏彟涓涓┖闂茬殑</span><span> TaskTracker </span><span>閲嶆柊榪愯銆?/span><span> </span></p> <p align=left><strong><span>鏈湴璁$畻</span></strong><strong></strong></p> <p align=left><span>鏁版嵁瀛樺偍鍦ㄥ摢涓鍙拌綆楁満涓婏紝灝辯敱榪欏彴璁$畻鏈鴻繘琛岃繖閮ㄥ垎鏁版嵁鐨勮綆楋紝榪欐牱鍙互鍑忓皯鏁版嵁鍦ㄧ綉緇滀笂鐨勪紶杈擄紝闄嶄綆瀵圭綉緇滃甫瀹界殑闇姹傘傚湪</span><span> Hadoop </span><span>榪欐牱鐨勫熀浜庨泦緹ょ殑鍒嗗竷寮忓茍琛岀郴緇熶腑錛岃綆楃粨鐐瑰彲浠ュ緢鏂逛究鍦版墿鍏咃紝鑰屽洜瀹冩墍鑳藉鎻愪緵鐨勮綆楄兘鍔涜繎涔庢槸鏃犻檺鐨勶紝浣嗘槸鐢辨槸鏁版嵁闇瑕佸湪涓嶅悓鐨勮綆楁満涔嬮棿嫻佸姩錛屾晠緗?/span> <span>緇滃甫瀹藉彉鎴愪簡鐡墮錛屾槸闈炲父瀹濊吹鐨勶紝</span><span>“</span><span>鏈湴璁$畻</span><span>”</span><span>鏄渶鏈夋晥鐨勪竴縐嶈妭綰︾綉緇滃甫瀹界殑鎵嬫錛屼笟鐣屾妸榪欏艦瀹逛負</span><span>“</span><span>縐誨姩璁$畻姣旂Щ鍔ㄦ暟鎹洿緇忔祹</span><span>”</span><span>銆?/span><span> </span><span><br></span><a name=fig2><strong><span>鍥?/span><span> 2. </span><span>鍒嗗竷瀛樺偍涓庡茍琛岃綆?/span></strong></a><span><br><br></span></p> <p><img alt="" src="http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop1/figure2.jpg"> </p> <p><strong><span>浠誨姟綺掑害</span></strong><strong></strong></p> <p align=left><span>鎶婂師濮嬪ぇ鏁版嵁闆嗗垏鍓叉垚灝忔暟鎹泦鏃訛紝閫氬父璁╁皬鏁版嵁闆嗗皬浜庢垨絳変簬</span><span> HDFS </span><span>涓竴涓?/span><span> Block </span><span>鐨勫ぇ灝?/span><span>(</span><span>緙虹渷鏄?/span><span> 64M)</span><span>錛岃繖鏍瘋兘澶熶繚璇佷竴涓皬鏁版嵁闆嗕綅浜庝竴鍙拌綆楁満涓婏紝渚夸簬鏈湴璁$畻銆傛湁</span><span> M </span><span>涓皬鏁版嵁闆嗗緟澶勭悊錛屽氨鍚姩</span><span> M </span><span>涓?/span><span> Map </span><span>浠誨姟錛屾敞鎰忚繖</span><span> M </span><span>涓?/span><span> Map </span><span>浠誨姟鍒嗗竷浜?/span><span> N </span><span>鍙拌綆楁満涓婂茍琛岃繍琛岋紝</span><span>Reduce </span><span>浠誨姟鐨勬暟閲?/span><span> R </span><span>鍒欏彲鐢辯敤鎴鋒寚瀹氥?/span><span> </span></p> <p align=left><strong><span>Partition</span></strong></p> <p align=left><span>鎶?/span><span>Map </span><span>浠誨姟杈撳嚭鐨勪腑闂寸粨鏋滄寜</span><span> key </span><span>鐨勮寖鍥村垝鍒嗘垚</span><span> R </span><span>浠?/span><span>( R </span><span>鏄鍏堝畾涔夌殑</span><span> Reduce </span><span>浠誨姟鐨勪釜鏁?/span><span>)</span><span>錛屽垝鍒嗘椂閫氬父浣跨敤</span><span> hash </span><span>鍑芥暟濡?/span><span>: hash(key) mod R</span><span>錛岃繖鏍峰彲浠ヤ繚璇佹煇涓孌佃寖鍥村唴鐨?/span><span> key</span><span>錛屼竴瀹氭槸鐢變竴涓?/span><span> Reduce </span><span>浠誨姟鏉ュ鐞嗭紝鍙互綆鍖?/span><span> Reduce </span><span>鐨勮繃紼嬨?/span><span> </span></p> <p align=left><strong><span>Combine</span></strong></p> <p align=left><span>鍦?/span><span>partition </span><span>涔嬪墠錛岃繕鍙互瀵逛腑闂寸粨鏋滃厛鍋?/span><span> combine</span><span>錛屽嵆灝嗕腑闂寸粨鏋滀腑鏈夌浉鍚?/span><span> key</span><span>鐨?/span><span> <key, value> </span><span>瀵瑰悎騫舵垚涓瀵廣?/span><span>combine </span><span>鐨勮繃紼嬩笌</span><span> Reduce </span><span>鐨勮繃紼嬬被浼鹼紝寰堝鎯呭喌涓嬪氨鍙互鐩存帴浣跨敤</span><span> Reduce </span><span>鍑芥暟錛屼絾</span><span> combine </span><span>鏄綔涓?/span><span> Map </span><span>浠誨姟鐨勪竴閮ㄥ垎錛屽湪鎵ц瀹?/span><span> Map </span><span>鍑芥暟鍚庣揣鎺ョ潃鎵ц鐨勩?/span><span>Combine </span><span>鑳藉鍑忓皯涓棿緇撴灉涓?/span><span> <key, value> </span><span>瀵圭殑鏁扮洰錛屼粠鑰屽噺灝戠綉緇滄祦閲忋?/span><span> </span></p> <p align=left><strong><span>Reduce </span></strong><strong><span>浠誨姟浠?/span></strong><strong><span> Map </span></strong><strong><span>浠誨姟緇撶偣鍙栦腑闂寸粨鏋?/span></strong><strong></strong></p> <p align=left><span>Map</span><span>浠誨姟鐨勪腑闂寸粨鏋滃湪鍋氬畬</span><span> Combine </span><span>鍜?/span><span> Partition </span><span>涔嬪悗錛屼互鏂囦歡褰㈠紡瀛樹簬鏈湴紓佺洏銆備腑闂寸粨鏋滄枃浠剁殑浣嶇疆浼氶氱煡涓繪帶</span><span> JobTracker, JobTracker </span><span>鍐嶉氱煡</span><span> Reduce </span><span>浠誨姟鍒板摢涓涓?/span><span> DataNode </span><span>涓婂幓鍙栦腑闂寸粨鏋溿傛敞鎰忔墍鏈夌殑</span><span> Map </span><span>浠誨姟浜х敓涓棿緇撴灉鍧囨寜鍏?/span><span> Key </span><span>鐢ㄥ悓涓涓?/span><span> Hash </span><span>鍑芥暟鍒掑垎鎴愪簡</span><span> R </span><span>浠斤紝</span><span>R </span><span>涓?/span><span> Reduce </span><span>浠誨姟鍚勮嚜璐熻矗涓孌?/span><span> Key </span><span>鍖洪棿銆傛瘡涓?/span><span> Reduce </span><span>闇瑕佸悜璁稿涓?/span><span> Map </span><span>浠誨姟緇撶偣鍙栧緱钀藉湪鍏惰礋璐g殑</span><span> Key </span><span>鍖洪棿鍐呯殑涓棿緇撴灉錛岀劧鍚庢墽琛?/span><span> Reduce </span><span>鍑芥暟錛屽艦鎴愪竴涓渶緇堢殑緇撴灉鏂囦歡銆?/span><span> </span></p> <p align=left><strong><span>浠誨姟綆¢亾</span></strong><strong></strong></p> <p align=left><span>鏈?/span><span> R </span><span>涓?/span><span> Reduce </span><span>浠誨姟錛屽氨浼氭湁</span><span> R </span><span>涓渶緇堢粨鏋滐紝寰堝鎯呭喌涓嬭繖</span><span> R </span><span>涓渶緇堢粨鏋滃茍涓嶉渶瑕佸悎騫舵垚涓涓渶緇堢粨鏋溿傚洜涓鴻繖</span><span> R </span><span>涓渶緇堢粨鏋滃張鍙互鍋氫負鍙︿竴涓綆椾換鍔$殑杈撳叆錛屽紑濮嬪彟涓涓茍琛岃綆椾換鍔°?/span><span> </span></p> <p align=left><a name=N10158><strong><span>浜?/span></strong></a><strong><span> Hadoop </span></strong><strong><span>鍒濅綋楠?/span></strong> </p> <p align=left><span>Hadoop </span><span>鏀寔</span><span> Linux </span><span>鍙?/span><span> Windows </span><span>鎿嶄綔緋葷粺</span><span>, </span><span>浣嗗叾瀹樻柟緗戠珯澹版槑</span><span> Hadoop </span><span>鐨勫垎甯冨紡鎿嶄綔鍦?/span><span> Windows </span><span>涓婃湭鍋氫弗鏍兼祴璇曪紝寤鴻鍙妸</span><span> Windows </span><span>浣滀負</span><span> Hadoop </span><span>鐨勫紑鍙戝鉤鍙般傚湪</span><span> Windows </span><span>鐜涓婄殑瀹夎姝ラ濡備笅</span><span>( Linux </span><span>騫沖彴綾諱技錛屼笖鏇寸畝鍗曚竴浜?/span><span>): </span></p> <p align=left><span>(1)</span><span>鍦?/span><span> Windows </span><span>涓嬶紝闇瑕佸厛瀹夎</span><span> Cgywin, </span><span>瀹夎</span><span> Cgywin </span><span>鏃舵敞鎰忎竴瀹氳閫夋嫨瀹夎</span><span> openssh (</span><span>鍦?/span><span> Net category )</span><span>銆傚畨瑁呭畬鎴愪箣鍚庯紝鎶?/span><span> Cgywin </span><span>鐨勫畨瑁呯洰褰曞</span><span> c:"cygwin"bin </span><span>鍔犲埌緋葷粺鐜鍙橀噺</span><span> PATH </span><span>涓紝榪欐槸鍥犱負榪愯</span><span> Hadoop </span><span>瑕佹墽琛屼竴浜?/span><span> linux </span><span>鐜涓嬬殑鑴氭湰鍜屽懡浠ゃ?/span> </p> <p align=left><span>(2)</span><span>瀹夎</span><span> Java 1.5.x</span><span>錛屽茍灝?/span><span> JAVA_HOME </span><span>鐜鍙橀噺璁劇疆涓?/span><span> Java </span><span>鐨勫畨瑁呮牴鐩綍濡?/span><span> C:"Program Files"Java"jdk1.5.0_01</span><span>銆?/span> </p> <p align=left><span>(3)</span><span>鍒?/span><span> Hadoop </span><span>瀹樻柟緗戠珯</span><span> <a >http://hadoop.apache.org/</a></span><span>涓嬭澆</span><span>Hadoop Core, </span><span>鏈鏂扮殑紼沖畾鐗堟湰鏄?/span><span> 0.16.0. </span><span>灝嗕笅杞藉悗鐨勫畨瑁呭寘瑙e帇鍒頒竴涓洰褰曪紝鏈枃鍋囧畾瑙e帇鍒?/span><span> c:"hadoop-0.16.0</span><span>銆?/span> </p> <p align=left><span>4)</span><span>淇敼</span><span> conf/hadoop-env.sh </span><span>鏂囦歡錛屽湪鍏朵腑璁劇疆</span><span> JAVA_HOME </span><span>鐜鍙橀噺錛?/span><span> export JAVA_HOME="C:"Program Files"Java"jdk1.5.0_01” (</span><span>鍥犱負璺緞涓?/span><span> Program Files </span><span>涓棿鏈夌┖鏍鹼紝涓瀹氳鐢ㄥ弻寮曞彿灝嗚礬寰勫紩璧鋒潵</span><span>) </span></p> <p align=left><span>鑷蟲錛屼竴鍒囧氨緇紝鍙互榪愯</span><span> Hadoop </span><span>浜嗐備互涓嬬殑榪愯榪囩▼錛岄渶瑕佸惎鍔?/span><span> cygwin, </span><span>榪涘叆妯℃嫙</span><span> Linux </span><span>鐜銆傚湪涓嬭澆鐨?/span><span> Hadoop Core </span><span>鍖呬腑錛屽甫鏈夊嚑涓ず渚嬬▼搴忓茍涓斿凡緇忔墦鍖呮垚浜?/span><span> hadoop-0.16.0-examples.jar</span><span>銆傚叾涓湁涓涓?/span><span> WordCount </span><span>紼嬪簭錛屽姛鑳芥槸緇熻涓鎵規枃鏈枃浠朵腑鍚勪釜鍗曡瘝鍑虹幇鐨勬鏁幫紝鎴戜滑鍏堟潵鐪嬬湅鎬庝箞榪愯榪欎釜紼嬪簭銆?/span><span>Hadoop </span><span>鍏辨湁涓夌榪愯妯″紡</span><span>: </span><span>鍗曟満</span><span>(</span><span>闈炲垎甯冨紡</span><span>)</span><span>妯″紡錛屼吉鍒嗗竷寮忚繍琛屾ā寮忥紝鍒嗗竷寮忚繍琛屾ā寮忥紝鍏朵腑鍓嶄袱縐嶈繍琛屾ā寮忎綋鐜頒笉浜?/span><span> Hadoop </span><span>鍒嗗竷寮忚綆楃殑浼樺娍錛屽茍娌℃湁浠涔堝疄闄呮剰涔夛紝浣嗗紼嬪簭鐨勬祴璇曞強璋冭瘯寰堟湁甯姪錛屾垜浠厛浠庤繖涓ょ妯″紡鍏ユ墜錛屼簡瑙e熀浜?/span><span> Hadoop </span><span>鐨勫垎甯冨紡騫惰紼嬪簭鏄浣曠紪鍐欏拰榪愯鐨勩?/span><span> </span></p> <p align=left><strong><span>鍗曟満</span></strong><strong><span>(</span></strong><strong><span>闈炲垎甯冨紡</span></strong><strong><span>)</span></strong><strong><span>妯″紡</span></strong><strong></strong></p> <p align=left><span>榪欑妯″紡鍦ㄤ竴鍙板崟鏈轟笂榪愯錛屾病鏈夊垎甯冨紡鏂囦歡緋葷粺錛岃屾槸鐩存帴璇誨啓鏈湴鎿嶄綔緋葷粺鐨勬枃浠剁郴緇熴?/span> <br><strong>浠g爜娓呭崟1</strong></p> <div><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span>$</span> <span>cd</span> <span>/</span><span>cygdrive</span><span>/</span><span>c</span><span>/</span><span>hadoop-</span><span>0.16</span><span>.</span><span>0</span><span><br></span><span>$</span> <span>mkdir</span><span> test-in  <br></span><span>$</span> <span>cd</span><span> test-in<br></span><span>#</span><span>鍦?nbsp;test-in 鐩綍涓嬪垱寤轟袱涓枃鏈枃浠?/span><span>,</span><span> WordCount 紼嬪簭灝嗙粺璁″叾涓悇涓崟璇嶅嚭鐜版鏁?br></span><span>$</span> <span>echo</span> <span>"</span><span>hello world bye world</span><span>"</span> <span>></span><span>file1</span><span>.</span><span>txt   <br></span><span>$</span> <span>echo</span> <span>"</span><span>hello hadoop goodbye hadoop</span><span>"</span> <span>></span><span>file2</span><span>.</span><span>txt<br></span><span>$</span> <span>cd</span> <span>..</span><span><br></span><span>$</span><span> bin</span><span>/</span><span>hadoop jar hadoop-</span><span>0.16</span><span>.</span><span>0</span><span>-examples</span><span>.</span><span>jar wordcount test-in test-out<br></span><span>#</span><span>鎵ц瀹屾瘯錛屼笅闈㈡煡鐪嬫墽琛岀粨鏋滐細<br></span><span>$</span> <span>cd</span><span> test-out<br></span><span>$</span><span> cat part-</span><span>00000</span><span><br>bye     </span><span>1</span><span><br>goodbye  </span><span>1</span><span><br>hadoop  </span><span>2</span><span><br>hello    </span><span>2</span><span><br>world   </span><span>2</span><span><br></span></div> <p><span>     娉ㄦ剰浜嬮」錛氳繍琛?/span><span> bin/hadoop jar hadoop-0.16.0-examples.jar wordcount test-in test-out </span><span>鏃訛紝鍔″繀娉ㄦ剰絎竴涓弬鏁版槸</span><span> jar, </span><span>涓嶆槸</span><span> -jar, </span><span>褰撲綘鐢?/span><span> -jar </span><span>鏃訛紝涓嶄細鍛婅瘔浣犳槸鍙傛暟閿欎簡錛屾姤鍛婂嚭鏉ョ殑閿欒淇℃伅鏄細</span><span>Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/util/ProgramDriver, </span><span>絎旇呭綋鏃朵互涓烘槸</span><span> classpath </span><span>鐨勮緗棶棰橈紝嫻垂浜嗕笉灝戞椂闂淬傞氳繃鍒嗘瀽</span><span> bin/hadoop </span><span>鑴氭湰鍙煡錛?/span><span>-jar </span><span>騫朵笉鏄?/span><span> bin/hadoop </span><span>鑴氭湰瀹氫箟鐨勫弬鏁幫紝姝よ剼鏈細鎶?/span><span> -jar </span><span>浣滀負</span><span> Java </span><span>鐨勫弬鏁幫紝</span><span>Java </span><span>鐨?/span><span>-jar </span><span>鍙傛暟琛ㄧず鎵ц涓涓?/span><span> Jar </span><span>鏂囦歡</span><span>(</span><span>榪欎釜</span><span> Jar </span><span>鏂囦歡蹇呴』鏄竴涓彲鎵ц鐨?/span><span> Jar,</span><span>鍗沖湪</span><span> MANIFEST </span><span>涓畾涔変簡涓葷被</span><span>), </span><span>姝ゆ椂澶栭儴瀹氫箟鐨?/span><span> classpath </span><span>鏄笉璧蜂綔鐢ㄧ殑錛屽洜鑰屼細鎶涘嚭</span><span> java.lang.NoClassDefFoundError </span><span>寮傚父銆傝?/span><span> jar </span><span>鏄?/span><span> bin/hadoop </span><span>鑴氭湰瀹氫箟鐨勫弬鏁幫紝浼氳皟鐢?/span><span> Hadoop </span><span>鑷繁鐨勪竴涓伐鍏風被</span><span> RunJar</span><span>錛岃繖涓伐鍏風被涔熻兘澶熸墽琛屼竴涓?/span><span> Jar </span><span>鏂囦歡錛屽茍涓斿閮ㄥ畾涔夌殑</span><span> classpath </span><span>鏈夋晥銆?/span><span> </span></p> <p align=left><strong><span>浼垎甯冨紡榪愯妯″紡</span></strong><strong></strong></p> <p align=left><span>榪欑妯″紡涔熸槸鍦ㄤ竴鍙板崟鏈轟笂榪愯錛屼絾鐢ㄤ笉鍚岀殑</span><span> Java </span><span>榪涚▼妯′豢鍒嗗竷寮忚繍琛屼腑鐨勫悇綾葷粨鐐?/span><span> ( NameNode, DataNode, JobTracker, TaskTracker, Secondary NameNode )</span><span>錛岃娉ㄦ剰鍒嗗竷寮忚繍琛屼腑鐨勮繖鍑犱釜緇撶偣鐨勫尯鍒細</span><span> </span></p> <p align=left><span>浠庡垎甯冨紡瀛樺偍鐨勮搴︽潵璇達紝闆嗙兢涓殑緇撶偣鐢變竴涓?/span><span> NameNode </span><span>鍜岃嫢騫蹭釜</span><span> DataNode </span><span>緇勬垚</span><span>, </span><span>鍙︽湁涓涓?/span><span> Secondary NameNode </span><span>浣滀負</span><span> NameNode </span><span>鐨勫浠姐?/span> <span>浠庡垎甯冨紡搴旂敤鐨勮搴︽潵璇達紝闆嗙兢涓殑緇撶偣鐢變竴涓?/span><span> JobTracker </span><span>鍜岃嫢騫蹭釜</span><span> TaskTracker </span><span>緇勬垚錛?/span><span>JobTracker </span><span>璐熻矗浠誨姟鐨勮皟搴︼紝</span><span>TaskTracker </span><span>璐熻矗騫惰鎵ц浠誨姟銆?/span><span>TaskTracker </span><span>蹇呴』榪愯鍦?/span><span> DataNode </span><span>涓婏紝榪欐牱渚夸簬鏁版嵁鐨勬湰鍦拌綆椼?/span><span>JobTracker </span><span>鍜?/span><span> NameNode </span><span>鍒欐棤欏誨湪鍚屼竴鍙版満鍣ㄤ笂銆?/span><span> </span></p> <p align=left><span>(1) </span><span>鎸変唬鐮佹竻鍗?/span><span>2</span><span>淇敼</span><span> conf/hadoop-site.xml</span><span>銆傛敞鎰?/span><span> conf/hadoop-default.xml </span><span>涓槸</span><span> Hadoop </span><span>緙虹渷鐨勫弬鏁幫紝浣犲彲浠ラ氳繃璇繪鏂囦歡浜嗚В</span><span> Hadoop </span><span>涓湁鍝簺鍙傛暟鍙緵閰嶇疆錛屼絾涓嶈淇敼姝ゆ枃浠躲傚彲閫氳繃淇敼</span><span> conf/hadoop-site.xml </span><span>鏀瑰彉緙虹渷鍙傛暟鍊鹼紝姝ゆ枃浠朵腑璁劇疆鐨勫弬鏁板間細瑕嗙洊</span><span> conf/hadoop-default.xml </span><span>鐨勫悓鍚嶅弬鏁般?/span><span> <br></span><strong><span>浠g爜娓呭崟</span></strong><strong><span> 2</span></strong></p> <div><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span><</span><span>configuration</span><span>></span><span><br>  </span><span><</span><span>property</span><span>></span><span><br>    </span><span><</span><span>name</span><span>></span><span>fs.default.name</span><span></</span><span>name</span><span>></span><span><br>    </span><span><</span><span>value</span><span>></span><span>localhost:9000</span><span></</span><span>value</span><span>></span><span><br>  </span><span></</span><span>property</span><span>></span><span><br>  </span><span><</span><span>property</span><span>></span><span><br>    </span><span><</span><span>name</span><span>></span><span>mapred.job.tracker</span><span></</span><span>name</span><span>></span><span><br>    </span><span><</span><span>value</span><span>></span><span>localhost:9001</span><span></</span><span>value</span><span>></span><span><br>  </span><span></</span><span>property</span><span>></span><span><br>  </span><span><</span><span>property</span><span>></span><span><br>    </span><span><</span><span>name</span><span>></span><span>dfs.replication</span><span></</span><span>name</span><span>></span><span><br>    </span><span><</span><span>value</span><span>></span><span>1</span><span></</span><span>value</span><span>></span><span><br>  </span><span></</span><span>property</span><span>></span><span><br></span><span></</span><span>configuration</span><span>></span><span><br></span></div> <p><span>     鍙傛暟</span><span> fs.default.name </span><span>鎸囧畾</span><span> NameNode </span><span>鐨?/span><span> IP </span><span>鍦板潃鍜岀鍙e彿銆傜己鐪佸兼槸</span><span> file:///, </span><span>琛ㄧず浣跨敤鏈湴鏂囦歡緋葷粺</span><span>, </span><span>鐢ㄤ簬鍗曟満闈炲垎甯冨紡妯″紡銆傛澶勬垜浠寚瀹氫嬌鐢ㄨ繍琛屼簬鏈満</span><span> localhost </span><span>涓婄殑</span><span> NameNode</span><span>銆?/span><span> </span></p> <p align=left><span>鍙傛暟</span><span> mapred.job.tracker </span><span>鎸囧畾</span><span> JobTracker </span><span>鐨?/span><span> IP </span><span>鍦板潃鍜岀鍙e彿銆傜己鐪佸兼槸</span><span> local, </span><span>琛ㄧず鍦ㄦ湰鍦板悓涓</span><span> Java </span><span>榪涚▼鍐呮墽琛?/span><span> JobTracker </span><span>鍜?/span><span> TaskTracker, </span><span>鐢ㄤ簬鍗曟満闈炲垎甯冨紡妯″紡銆傛澶勬垜浠寚瀹氫嬌鐢ㄨ繍琛屼簬鏈満</span><span> localhost </span><span>涓婄殑</span><span> JobTracker ( </span><span>鐢ㄤ竴涓崟鐙殑</span><span> Java </span><span>榪涚▼鍋?/span><span> JobTracker )</span><span>銆?/span><span> </span></p> <p align=left><span>鍙傛暟</span><span> dfs.replication </span><span>鎸囧畾</span><span> HDFS </span><span>涓瘡涓?/span><span> Block </span><span>琚鍒剁殑嬈℃暟錛岃搗鏁版嵁鍐椾綑澶囦喚鐨勪綔鐢ㄣ?/span><span> </span><span>鍦ㄥ吀鍨嬬殑鐢熶駭緋葷粺涓紝榪欎釜鏁板父甯歌緗負</span><span>3</span><span>銆?/span><span> </span></p> <p align=left><span>(2)</span><span>閰嶇疆</span><span> SSH,</span><span>濡備唬鐮佹竻鍗?/span><span>3</span><span>鎵紺?/span><span>: <br></span><strong><span>浠g爜娓呭崟</span></strong><strong><span> 3</span></strong></p> <div><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span>$</span><span> ssh-keygen -t dsa -P '' -f ~</span><span>/.</span><span>ssh</span><span>/</span><span>id_dsa <br></span><span>$</span><span> cat ~</span><span>/.</span><span>ssh</span><span>/</span><span>id_dsa</span><span>.</span><span>pub </span><span>>></span><span> ~</span><span>/.</span><span>ssh</span><span>/</span><span>authorized_keys<br></span></div> <span>閰嶇疆瀹屽悗錛屾墽琛屼竴涓?/span><span> ssh localhost, </span><span>紜浣犵殑鏈哄櫒鍙互鐢?/span><span> SSH </span><span>榪炴帴錛屽茍涓旇繛鎺ユ椂涓嶉渶瑕佹墜宸ヨ緭鍏ュ瘑鐮併?/span> <p align=left><span>(3)</span><span>鏍煎紡鍖栦竴涓柊鐨勫垎甯冨紡鏂囦歡緋葷粺</span><span>, </span><span>濡備唬鐮佹竻鍗?/span><span>4</span><span>鎵紺?/span><span>:</span></p> <div><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span>$</span> <span>cd</span> <span>/</span><span>cygdrive</span><span>/</span><span>c</span><span>/</span><span>hadoop-</span><span>0.16</span><span>.</span><span>0</span><span><br></span><span>$</span><span> bin</span><span>/</span><span>hadoop namenode –</span><span>format</span><span> <br></span></div> <p><span>(4) </span><span>鍚姩</span><span> hadoop </span><span>榪涚▼</span><span>, </span><span>濡備唬鐮佹竻鍗?/span><span>5</span><span>鎵紺恒傛帶鍒跺彴涓婄殑杈撳嚭淇℃伅搴旇鏄劇ず鍚姩浜?/span><span> namenode, datanode, secondary namenode, jobtracker, tasktracker</span><span>銆傚惎鍔ㄥ畬鎴愪箣鍚庯紝閫氳繃</span><span> ps –ef </span><span>搴旇鍙互鐪嬪埌鍚姩浜?/span><span>5</span><span>涓柊鐨?/span><span> java </span><span>榪涚▼銆?/span><br><strong>浠g爜娓呭崟 5</strong></p> <div><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span>$</span><span> bin</span><span>/</span><span>start</span><span>-all</span><span>.</span><span>sh  <br></span><span>$</span><span> ps –ef<br></span></div> <span>(5) </span><span>榪愯</span><span> wordcount </span><span>搴旂敤</span><span>, </span><span>濡備唬鐮佹竻鍗?/span><span>6</span><span>鎵紺?/span><span>:</span> <div><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span>$</span><span> bin</span><span>/</span><span>hadoop dfs -put </span><span>./</span><span>test-in input  <br></span><span>#</span><span>灝嗘湰鍦版枃浠剁郴緇熶笂鐨?nbsp;</span><span>./</span><span>test-in 鐩綍鎷峰埌 HDFS 鐨勬牴鐩綍涓婏紝鐩綍鍚嶆敼涓?nbsp;input<br></span><span>#</span><span>鎵ц bin</span><span>/</span><span>hadoop dfs –help 鍙互瀛︿範鍚勭 HDFS 鍛戒護鐨勪嬌鐢ㄣ?br></span><span>$</span><span> bin</span><span>/</span><span>hadoop jar hadoop-</span><span>0.16</span><span>.</span><span>0</span><span>-examples</span><span>.</span><span>jar wordcount input output<br></span><span>#</span><span>鏌ョ湅鎵ц緇撴灉:<br></span><span>#</span><span>灝嗘枃浠朵粠 HDFS 鎷峰埌鏈湴鏂囦歡緋葷粺涓啀鏌ョ湅錛?br></span><span>$</span><span> bin</span><span>/</span><span>hadoop dfs -get output output <br></span><span>$</span><span> cat output</span><span>/</span><span>*<br></span><span>#</span><span>涔熷彲浠ョ洿鎺ユ煡鐪?br></span><span>$</span><span> bin</span><span>/</span><span>hadoop dfs -cat output</span><span>/</span><span>*<br></span><span>$</span><span> bin</span><span>/</span><span>stop-all</span><span>.</span><span>sh </span><span>#</span><span>鍋滄 hadoop 榪涚▼<br></span></div> <p><strong><span>鏁呴殰璇婃柇</span></strong><strong></strong></p> <p align=left><span>(1) </span><span>鎵ц</span><span> $ bin/start-all.sh </span><span>鍚姩</span><span> Hadoop </span><span>榪涚▼鍚庯紝浼氬惎鍔?/span><span>5</span><span>涓?/span><span> java </span><span>榪涚▼</span><span>, </span><span>鍚屾椂浼氬湪</span><span> /tmp </span><span>鐩綍涓嬪垱寤轟簲涓?/span><span> pid </span><span>鏂囦歡璁板綍榪欎簺榪涚▼</span><span> ID </span><span>鍙楓傞氳繃榪欎簲涓枃浠訛紝鍙互寰楃煡</span><span> namenode, datanode, secondary namenode, jobtracker, tasktracker </span><span>鍒嗗埆瀵瑰簲浜庡摢涓涓?/span><span> Java </span><span>榪涚▼銆傚綋浣犺寰?/span><span> Hadoop </span><span>宸ヤ綔涓嶆甯告椂錛屽彲浠ラ鍏堟煡鐪嬭繖</span><span>5</span><span>涓?/span><span> java </span><span>榪涚▼鏄惁鍦ㄦ甯歌繍琛屻?/span> </p> <p align=left><span>(2) </span><span>浣跨敤</span><span> web </span><span>鎺ュ彛銆傝闂?/span><span> http://localhost:50030 </span><span>鍙互鏌ョ湅</span><span> JobTracker </span><span>鐨勮繍琛岀姸鎬併傝闂?/span><span> http://localhost:50060 </span><span>鍙互鏌ョ湅</span><span> TaskTracker </span><span>鐨勮繍琛岀姸鎬併傝闂?/span><span> http://localhost:50070 </span><span>鍙互鏌ョ湅</span><span> NameNode </span><span>浠ュ強鏁翠釜鍒嗗竷寮忔枃浠剁郴緇熺殑鐘舵侊紝嫻忚鍒嗗竷寮忔枃浠剁郴緇熶腑鐨勬枃浠朵互鍙?/span><span> log </span><span>絳夈?/span> </p> <p align=left><span>(3) </span><span>鏌ョ湅</span><span> ${HADOOP_HOME}/logs </span><span>鐩綍涓嬬殑</span><span> log </span><span>鏂囦歡錛?/span><span>namenode, datanode, secondary namenode, jobtracker, tasktracker </span><span>鍚勬湁涓涓搴旂殑</span><span> log </span><span>鏂囦歡錛屾瘡涓嬈¤繍琛岀殑璁$畻浠誨姟涔熸湁瀵瑰簲鐢?/span><span> log </span><span>鏂囦歡銆傚垎鏋愯繖浜?/span><span> log </span><span>鏂囦歡鏈夊姪浜庢壘鍒版晠闅滃師鍥犮?/span> </p> <p align=left><a name=N101F6><strong><span>緇撴潫璇?/span></strong></a> </p> <p align=left><span>鐜板湪錛屼綘宸茬粡浜嗚В浜?/span><span> MapReduce </span><span>璁$畻妯″瀷錛屽垎甯冨紡鏂囦歡緋葷粺</span><span> HDFS</span><span>錛屽垎甯冨紡騫惰璁$畻絳夌殑鍩烘湰鍘熺悊</span><span>, </span><span>騫朵笖鏈変簡涓涓彲浠ヨ繍琛岀殑</span><span> Hadoop </span><span>鐜錛岃繍琛屼簡涓涓熀浜?/span><span> Hadoop </span><span>鐨勫茍琛岀▼搴忋傚湪涓嬩竴綃囨枃绔犱腑錛屼綘灝嗕簡瑙e埌濡備綍閽堝涓涓叿浣撶殑璁$畻浠誨姟錛屽熀浜?/span><span> Hadoop </span><span>緙栧啓鑷繁鐨勫垎甯冨紡騫惰紼嬪簭騫跺皢鍏墮儴緗茶繍琛岀瓑鍐呭銆?/span><span> </span></p> <p align=left><a name=resources><span>鍙傝冭祫鏂?/span></a> </p> <p align=left><strong><span>瀛︿範</span></strong></p> <ul type=disc> <li><span>璁塊棶</span><span> <a >Hadoop <span>瀹樻柟緗戠珯</span></a>,</span><span>浜嗚В</span><span> Hadoop </span><span>鍙婂叾瀛愰」鐩?/span><span> HBase </span><span>鐨勪俊鎭?/span> <li><span><a >Hadoop wiki</a> </span><span>涓?/span><span>, </span><span>鏈夎澶?/span><span> Hadoop </span><span>鐨勭敤鎴鋒枃妗?/span><span>,</span><span>寮鍙戞枃妗?/span><span>,</span><span>紺轟緥紼嬪簭絳夈?/span> <li><span>闃呰</span><span> Google Mapreduce </span><span>璁烘枃錛?/span><span> <a >MapReduce: Simplified Data Processing on Large Clusters</a>, </span><span>娣卞叆浜嗚В</span><span> Mapreduce </span><span>璁$畻妯″瀷銆?/span> <li><span>瀛︿範</span><span> Hadoop </span><span>鍒嗗竷寮忔枃浠剁郴緇?/span><span> HDFS</span><span>錛?/span><span> <a >The Hadoop Distributed File System:Architecture and Design</a> </span> <li><span>瀛︿範</span><span> Google </span><span>鏂囦歡緋葷粺</span><span> GFS: <a >The Google File System</a>, Hadoop HDFS </span><span>瀹炵幇浜嗕笌</span><span> GFS </span><span>綾諱技鐨勫姛鑳姐?/span> </li> </ul> <div class="hvzpftn" id=MySignature> </div> <img src ="http://www.shnenglu.com/jack-wang/aggbug/106616.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jack-wang/" target="_blank">灝忕帇</a> 2010-01-28 13:50 <a href="http://www.shnenglu.com/jack-wang/archive/2010/01/28/106616.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://www.shnenglu.com/">青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品</a> <div style="position:fixed;left:-9000px;top:-9000px;"><font id="pjuwb"></font><button id="pjuwb"><pre id="pjuwb"></pre></button><sub id="pjuwb"></sub><tbody id="pjuwb"><var id="pjuwb"><address id="pjuwb"></address></var></tbody><listing id="pjuwb"><label id="pjuwb"><strong id="pjuwb"></strong></label></listing><wbr id="pjuwb"><small id="pjuwb"><tbody id="pjuwb"></tbody></small></wbr><ins id="pjuwb"><xmp id="pjuwb"></xmp></ins><style id="pjuwb"></style><label id="pjuwb"><em id="pjuwb"><li id="pjuwb"></li></em></label><samp id="pjuwb"></samp><menu id="pjuwb"><input id="pjuwb"></input></menu><pre id="pjuwb"><tbody id="pjuwb"><tfoot id="pjuwb"><button id="pjuwb"></button></tfoot></tbody></pre><form id="pjuwb"></form><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"><sup id="pjuwb"></sup></label></style></i><li id="pjuwb"><table id="pjuwb"><abbr id="pjuwb"></abbr></table></li><video id="pjuwb"></video><dfn id="pjuwb"></dfn><progress id="pjuwb"></progress><strong id="pjuwb"></strong><mark id="pjuwb"></mark><em id="pjuwb"></em><tbody id="pjuwb"><p id="pjuwb"><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike></p></tbody><option id="pjuwb"></option><strike id="pjuwb"></strike><u id="pjuwb"></u><td id="pjuwb"><center id="pjuwb"><tr id="pjuwb"></tr></center></td><em id="pjuwb"><mark id="pjuwb"><em id="pjuwb"><tt id="pjuwb"></tt></em></mark></em><strong id="pjuwb"></strong><wbr id="pjuwb"></wbr><s id="pjuwb"></s><strong id="pjuwb"></strong><legend id="pjuwb"></legend><nav id="pjuwb"></nav><dl id="pjuwb"><th id="pjuwb"><dl id="pjuwb"></dl></th></dl><noframes id="pjuwb"><ins id="pjuwb"></ins></noframes><font id="pjuwb"></font><strike id="pjuwb"><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"></label></style></i></strike><output id="pjuwb"></output><thead id="pjuwb"><pre id="pjuwb"></pre></thead><source id="pjuwb"></source><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem><pre id="pjuwb"><span id="pjuwb"><pre id="pjuwb"><big id="pjuwb"></big></pre></span></pre><cite id="pjuwb"><fieldset id="pjuwb"><s id="pjuwb"><rt id="pjuwb"></rt></s></fieldset></cite><big id="pjuwb"><progress id="pjuwb"><big id="pjuwb"></big></progress></big><samp id="pjuwb"><delect id="pjuwb"></delect></samp><dl id="pjuwb"></dl><strike id="pjuwb"><nav id="pjuwb"><dl id="pjuwb"><strong id="pjuwb"></strong></dl></nav></strike><tbody id="pjuwb"><b id="pjuwb"><optgroup id="pjuwb"><rp id="pjuwb"></rp></optgroup></b></tbody><em id="pjuwb"></em><xmp id="pjuwb"><blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote></xmp> <i id="pjuwb"><abbr id="pjuwb"><i id="pjuwb"><abbr id="pjuwb"></abbr></i></abbr></i><center id="pjuwb"><acronym id="pjuwb"><center id="pjuwb"></center></acronym></center><pre id="pjuwb"></pre><ul id="pjuwb"><thead id="pjuwb"></thead></ul><blockquote id="pjuwb"><pre id="pjuwb"><sup id="pjuwb"></sup></pre></blockquote><acronym id="pjuwb"></acronym><big id="pjuwb"><s id="pjuwb"></s></big><th id="pjuwb"></th><th id="pjuwb"></th><tbody id="pjuwb"></tbody><thead id="pjuwb"><strike id="pjuwb"></strike></thead><th id="pjuwb"><dl id="pjuwb"><wbr id="pjuwb"></wbr></dl></th><dl id="pjuwb"><strong id="pjuwb"></strong></dl><abbr id="pjuwb"><noframes id="pjuwb"><noscript id="pjuwb"></noscript></noframes></abbr><td id="pjuwb"><ol id="pjuwb"></ol></td><li id="pjuwb"><noscript id="pjuwb"><abbr id="pjuwb"></abbr></noscript></li><small id="pjuwb"><bdo id="pjuwb"><nav id="pjuwb"></nav></bdo></small><style id="pjuwb"></style><optgroup id="pjuwb"><table id="pjuwb"></table></optgroup><center id="pjuwb"><tr id="pjuwb"><dfn id="pjuwb"></dfn></tr></center><th id="pjuwb"></th><u id="pjuwb"></u><tfoot id="pjuwb"><legend id="pjuwb"><i id="pjuwb"></i></legend></tfoot><mark id="pjuwb"></mark><meter id="pjuwb"></meter><nav id="pjuwb"></nav><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><nobr id="pjuwb"></nobr><sub id="pjuwb"><th id="pjuwb"><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem></th></sub><thead id="pjuwb"><sub id="pjuwb"></sub></thead><ul id="pjuwb"><address id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></address></ul><dfn id="pjuwb"></dfn><pre id="pjuwb"></pre><input id="pjuwb"><cite id="pjuwb"><fieldset id="pjuwb"></fieldset></cite></input><u id="pjuwb"><form id="pjuwb"><u id="pjuwb"></u></form></u><kbd id="pjuwb"><em id="pjuwb"><mark id="pjuwb"></mark></em></kbd><tr id="pjuwb"></tr><del id="pjuwb"><form id="pjuwb"><address id="pjuwb"></address></form></del><tfoot id="pjuwb"><legend id="pjuwb"><ol id="pjuwb"><dl id="pjuwb"></dl></ol></legend></tfoot><menu id="pjuwb"><nobr id="pjuwb"><th id="pjuwb"><nobr id="pjuwb"></nobr></th></nobr></menu><fieldset id="pjuwb"></fieldset><pre id="pjuwb"><blockquote id="pjuwb"><samp id="pjuwb"></samp></blockquote></pre><xmp id="pjuwb"><sup id="pjuwb"><pre id="pjuwb"></pre></sup></xmp><span id="pjuwb"><progress id="pjuwb"></progress></span><font id="pjuwb"></font><var id="pjuwb"><abbr id="pjuwb"></abbr></var><strong id="pjuwb"><label id="pjuwb"><i id="pjuwb"><legend id="pjuwb"></legend></i></label></strong><tr id="pjuwb"><em id="pjuwb"><em id="pjuwb"><output id="pjuwb"></output></em></em></tr><thead id="pjuwb"><strike id="pjuwb"></strike></thead> <acronym id="pjuwb"></acronym><i id="pjuwb"></i><tt id="pjuwb"></tt><rt id="pjuwb"><source id="pjuwb"><rt id="pjuwb"></rt></source></rt><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike><del id="pjuwb"></del><font id="pjuwb"><output id="pjuwb"><ins id="pjuwb"><output id="pjuwb"></output></ins></output></font><kbd id="pjuwb"><tr id="pjuwb"><kbd id="pjuwb"></kbd></tr></kbd><pre id="pjuwb"><sup id="pjuwb"><delect id="pjuwb"><samp id="pjuwb"></samp></delect></sup></pre><samp id="pjuwb"></samp><track id="pjuwb"></track><tr id="pjuwb"></tr><center id="pjuwb"></center><fieldset id="pjuwb"></fieldset><i id="pjuwb"></i><td id="pjuwb"></td><rt id="pjuwb"></rt><object id="pjuwb"></object><pre id="pjuwb"><progress id="pjuwb"><sub id="pjuwb"><thead id="pjuwb"></thead></sub></progress></pre><kbd id="pjuwb"><tr id="pjuwb"><option id="pjuwb"></option></tr></kbd><output id="pjuwb"><ins id="pjuwb"></ins></output><ol id="pjuwb"></ol><source id="pjuwb"></source><strong id="pjuwb"></strong><ruby id="pjuwb"></ruby><sub id="pjuwb"><meter id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></meter></sub><pre id="pjuwb"></pre><center id="pjuwb"></center><tr id="pjuwb"><tbody id="pjuwb"><xmp id="pjuwb"><dd id="pjuwb"></dd></xmp></tbody></tr><video id="pjuwb"></video><pre id="pjuwb"></pre><form id="pjuwb"><optgroup id="pjuwb"></optgroup></form><samp id="pjuwb"></samp><kbd id="pjuwb"></kbd><strong id="pjuwb"><option id="pjuwb"></option></strong><object id="pjuwb"></object><abbr id="pjuwb"><noframes id="pjuwb"><abbr id="pjuwb"></abbr></noframes></abbr><ul id="pjuwb"><del id="pjuwb"><button id="pjuwb"><pre id="pjuwb"></pre></button></del></ul><abbr id="pjuwb"></abbr><strong id="pjuwb"><code id="pjuwb"><strong id="pjuwb"></strong></code></strong><option id="pjuwb"></option><optgroup id="pjuwb"><bdo id="pjuwb"><code id="pjuwb"></code></bdo></optgroup><mark id="pjuwb"><em id="pjuwb"><font id="pjuwb"></font></em></mark><acronym id="pjuwb"><code id="pjuwb"></code></acronym><dl id="pjuwb"></dl><em id="pjuwb"></em><object id="pjuwb"><input id="pjuwb"><object id="pjuwb"></object></input></object><output id="pjuwb"><dd id="pjuwb"></dd></output><option id="pjuwb"><button id="pjuwb"><option id="pjuwb"></option></button></option><small id="pjuwb"></small></div> <a href="http://goldteddy.com" target="_blank">亚洲一区日韩在线</a>| <a href="http://ourskycity.com" target="_blank">99re热精品</a>| <a href="http://playav999.com" target="_blank">国模私拍视频一区</a>| <a href="http://sz-jyqj.com" target="_blank">亚洲精品美女在线</a>| <a href="http://yiapk.com" target="_blank">久久精品91久久久久久再现</a>| <a href="http://by3259.com" target="_blank">欧美激情亚洲激情</a>| <a href="http://wwwhaodd116.com" target="_blank">亚洲欧美综合</a>| <a href="http://sese750.com" target="_blank">欧美私人网站</a>| <a href="http://www-111111.com" target="_blank">亚洲精品免费在线播放</a>| <a href="http://xxxxxdywvip18.com" target="_blank">欧美韩日亚洲</a>| <a href="http://caogb.com" target="_blank">国产精品xxx在线观看www</a>| <a href="http://uniconmgt.com" target="_blank">亚洲激情中文1区</a>| <a href="http://exsecular.com" target="_blank">久久久久亚洲综合</a>| <a href="http://567acg.com" target="_blank">亚洲欧美电影在线观看</a>| <a href="http://zxxx3.com" target="_blank">欧美日韩一区二区三区免费</a>| <a href="http://jiajianpei.com" target="_blank">亚洲国产91</a>| <a href="http://aidou28.com" target="_blank">久久综合九九</a>| <a href="http://xxdd51.com" target="_blank">久久精品在线</a>| <a href="http://482896.com" target="_blank">国内免费精品永久在线视频</a>| <a href="http://173168.com" target="_blank">欧美激情久久久久久</a>| <a href="http://5858yp.com" target="_blank">欧美日韩中字</a>| <a href="http://by2565.com" target="_blank">免费看精品久久片</a>| <a href="http://hczztj.com" target="_blank">久久男人av资源网站</a>| <a href="http://y77778.com" target="_blank">在线观看国产日韩</a>| <a href="http://6688zf.com" target="_blank">久久蜜桃香蕉精品一区二区三区</a>| <a href="http://www35353.com" target="_blank">亚洲国产成人精品女人久久久 </a>| <a href="http://xxxx48.com" target="_blank">亚洲成人在线免费</a>| <a href="http://tianxiantxtv.com" target="_blank">精品91久久久久</a>| <a href="http://zgslwtc.com" target="_blank">欧美亚洲一区</a>| <a href="http://03qt.com" target="_blank">亚洲欧美精品在线观看</a>| <a href="http://340332.com" target="_blank">在线观看日韩精品</a>| <a href="http://7ccdd.com" target="_blank">亚洲一区美女视频在线观看免费</a>| <a href="http://6055365.com" target="_blank">免费成人av</a>| <a href="http://teloregen.com" target="_blank">亚洲国产精品成人一区二区 </a>| <a href="http://muwendada.com" target="_blank">国产亚洲精品久久久久久</a>| <a href="http://buyiker.com" target="_blank">亚洲欧美三级在线</a>| <a href="http://xmt86.com" target="_blank">亚洲欧美网站</a>| <a href="http://987328.com" target="_blank">一区二区三区鲁丝不卡</a>| <a href="http://wocao1997.com" target="_blank">av成人手机在线</a>| <a href="http://sauske.com" target="_blank">国产精品视频一区二区三区</a>| <a href="http://www-067.com" target="_blank">香蕉久久夜色精品国产</a>| <a href="http://playav111.com" target="_blank">免费观看一区</a>| <a href="http://2424ddd.com" target="_blank">亚洲午夜av</a>| <a href="http://www-188445.com" target="_blank">亚洲性xxxx</a>| <a href="http://wawabt.com" target="_blank">狠狠入ady亚洲精品经典电影</a>| <a href="http://www38ccc.com" target="_blank">亚洲承认在线</a>| <a href="http://97aixxxx.com" target="_blank">亚洲第一福利视频</a>| <a href="http://rbet6365.com" target="_blank">欧美激情久久久</a>| <a href="http://911mmm.com" target="_blank">一区二区三区四区五区精品</a>| <a href="http://metagasa.com" target="_blank">欧美一区二区日韩一区二区</a>| <a href="http://by4672.com" target="_blank">亚洲第一毛片</a>| <a href="http://340996.com" target="_blank">久久精品在线观看</a>| <a href="http://6168138.com" target="_blank">久久久xxx</a>| <a href="http://270909.com" target="_blank">久久久久国产精品午夜一区</a>| <a href="http://chunhuigk.com" target="_blank">欧美午夜a级限制福利片</a>| <a href="http://wb2014.com" target="_blank">欧美国产日韩二区</a>| <a href="http://kpd034.com" target="_blank">一区二区视频欧美</a>| <a href="http://4c7175.com" target="_blank">久久成人一区二区</a>| <a href="http://787282.com" target="_blank">一区二区三区四区蜜桃</a>| <a href="http://xilxx.com" target="_blank">欧美理论在线播放</a>| <a href="http://1369080.com" target="_blank">久久国产精品久久w女人spa</a>| <a href="http://chongpiapia.com" target="_blank">免费观看在线综合色</a>| <a href="http://yeedeli.com" target="_blank">久久婷婷久久</a>| <a href="http://40346c.com" target="_blank">经典三级久久</a>| <a href="http://ccly2.com" target="_blank">久久久久国产一区二区三区</a>| <a href="http://855821.com" target="_blank">一二三区精品福利视频</a>| <a href="http://yngtxny.com" target="_blank">亚洲欧美日韩视频二区</a>| <a href="http://wanyoulipin.com" target="_blank">午夜精彩视频在线观看不卡</a>| <a href="http://1235656.com" target="_blank">国产精品观看</a>| <a href="http://278538.com" target="_blank">亚洲欧洲视频在线</a>| <a href="http://wwwsao117.com" target="_blank">国产午夜精品视频</a>| <a href="http://223tt.com" target="_blank">亚洲精品中文字</a>| <a href="http://www24699.com" target="_blank">伊人影院久久</a>| <a href="http://bkf23.com" target="_blank">免费久久99精品国产自在现线</a>| <a href="http://phitris.com" target="_blank">最新日韩在线</a>| <a href="http://8004006.com" target="_blank">亚洲欧美日韩成人高清在线一区</a>| <a href="http://xiyan88.com" target="_blank">国产毛片一区二区</a>| <a href="http://www-666638.com" target="_blank">欧美激情一区二区三区在线</a>| <a href="http://aa224.com" target="_blank">亚洲黑丝一区二区</a>| <a href="http://9273829.com" target="_blank">欧美精品激情</a>| <a href="http://aidingcai.com" target="_blank">久久先锋资源</a>| <a href="http://16kkkk.com" target="_blank">亚洲国产1区</a>| <a href="http://www515678.com" target="_blank">欧美日韩精品一区二区</a>| <a href="http://15149cc.com" target="_blank">欧美国产视频一区二区</a>| <a href="http://yy0754.com" target="_blank">日韩午夜在线观看视频</a>| <a href="http://5gn4y.com" target="_blank">国产精品ⅴa在线观看h</a>| <a href="http://2629929.com" target="_blank">午夜久久电影网</a>| <a href="http://432dm.com" target="_blank">亚洲免费在线播放</a>| <a href="http://ywy99.com" target="_blank">欧美视频在线观看免费</a>| <a href="http://maiiyou.com" target="_blank">亚洲欧美日韩综合aⅴ视频</a>| <a href="http://87ssyy.com" target="_blank">久久天堂av综合合色</a>| <a href="http://6767673.com" target="_blank">136国产福利精品导航网址应用</a>| <a href="http://21bridal.com" target="_blank">一本久久综合亚洲鲁鲁五月天</a>| <a href="http://y8e8.com" target="_blank">欧美日本韩国在线</a>| <a href="http://899399com.com" target="_blank">亚洲桃色在线一区</a>| <a href="http://www31931.com" target="_blank">久久在线免费视频</a>| <a href="http://www-3844444.com" target="_blank">日韩视频不卡中文</a>| <a href="http://cabenn.com" target="_blank">欧美精品首页</a>| <a href="http://www50050.com" target="_blank">欧美一区二区播放</a>| <a href="http://haose23.com" target="_blank">欧美好吊妞视频</a>| <a href="http://wwwmy77757.com" target="_blank">亚洲综合视频1区</a>| <a href="http://www77577.com" target="_blank">国产精品高潮呻吟久久av无限 </a>| <a href="http://2589999.com" target="_blank">亚洲精华国产欧美</a>| <a href="http://566805.com" target="_blank">亚洲欧美日韩综合</a>| <a href="http://72966t.com" target="_blank">亚洲福利小视频</a>| <a href="http://44cgcg.com" target="_blank">国产精品久久一卡二卡</a>| <a href="http://785448.com" target="_blank">亚洲人午夜精品免费</a>| <a href="http://yidaiban.com" target="_blank">亚洲欧洲精品一区二区三区波多野1战4</a>| <a href="http://yyypdq.com" target="_blank">av成人老司机</a>| <a href="http://www-787788.com" target="_blank">久久久久国产精品厨房</a>| <a href="http://eeii33.com" target="_blank">一区二区免费看</a>| <a href="http://660507jj.com" target="_blank">国产午夜精品久久久久久免费视</a>| <a href="http://mfgun.com" target="_blank">亚洲中字在线</a>| <a href="http://yw9677.com" target="_blank">亚洲第一页中文字幕</a>| <a href="http://1235656.com" target="_blank">欧美在线国产精品</a>| <a href="http://862924.com" target="_blank">国产亚洲精品美女</a>| <a href="http://4915w.com" target="_blank">国产精品成人免费</a>| <a href="http://sortxz.com" target="_blank">欧美黄污视频</a>| <a href="http://710557.com" target="_blank">亚洲电影在线看</a>| <a href="http://118017.com" target="_blank">欧美一级电影久久</a>| <a href="http://689658.com" target="_blank">亚洲视频一二区</a>| <a href="http://798814.com" target="_blank">国产乱码精品</a>| <a href="http://www39pao.com" target="_blank">欧美日韩午夜</a>| <a href="http://fengboll.com" target="_blank">欧美二区不卡</a>| <a href="http://cao3e8c8.com" target="_blank">亚洲一区二区三区四区视频</a>| <a href="http://www-4997.com" target="_blank">欧美激情第9页</a>| <a href="http://aaddgg66.com" target="_blank">久久综合色婷婷</a>| <a href="http://shuoqe.com" target="_blank">日韩午夜剧场</a>| <a href="http://54zcr.com" target="_blank">亚洲剧情一区二区</a>| <a href="http://essuee.com" target="_blank">在线欧美一区</a>| <a href="http://98tangav.com" target="_blank">一区二区三区在线免费观看</a>| <a href="http://645955.com" target="_blank">国产精品女主播在线观看</a>| <a href="http://oksousou.com" target="_blank">欧美日韩国产精品自在自线</a>| <a href="http://hhhtalk.com" target="_blank">毛片av中文字幕一区二区</a>| <a href="http://360695.com" target="_blank">久久精品国产91精品亚洲</a>| <a href="http://y1bbs.com" target="_blank">欧美一区1区三区3区公司</a>| <a href="http://4448884.com" target="_blank">亚洲自拍高清</a>| <a href="http://diyiao.com" target="_blank">中文一区在线</a>| <a href="http://qq5621.com" target="_blank">欧美成人a视频</a>| <a href="http://www-888005.com" target="_blank">亚洲一区二区三区免费在线观看</a>| <a href="http://www-4997.com" target="_blank">国产精品久久久久久一区二区三区 </a>| <a href="http://989766.com" target="_blank">久久影音先锋</a>| <a href="http://obatshaka.com" target="_blank">久久精品人人做人人综合 </a>| <a href="http://457745.com" target="_blank">国产精品一卡二卡</a>| <a href="http://www-188445.com" target="_blank">国产精品国产成人国产三级</a>| <a href="http://by21999.com" target="_blank">欧美日韩国产91</a>| <a href="http://24kshopss.com" target="_blank">欧美日韩国产色视频</a>| <a href="http://302262.com" target="_blank">欧美理论在线</a>| <a href="http://www433ad.com" target="_blank">欧美日韩国产天堂</a>| <a href="http://q731.com" target="_blank">国产精品第一区</a>| <a href="http://muwendada.com" target="_blank">国产精品一区二区在线观看</a>| <a href="http://wanshunpu.com" target="_blank">国产精品乱子乱xxxx</a>| <a href="http://388123cc.com" target="_blank">国产美女精品</a>| <a href="http://eshop999.com" target="_blank">狠狠色2019综合网</a>| <a href="http://3534m.com" target="_blank">亚洲精品欧洲精品</a>| <a href="http://miandoctor.com" target="_blank">在线天堂一区av电影</a>| <a href="http://lampreydb.com" target="_blank">亚洲一区日韩在线</a>| <a href="http://22400com.com" target="_blank">欧美一区日本一区韩国一区</a>| <a href="http://zj-jufeng.com" target="_blank">欧美在现视频</a>| <a href="http://16355t.com" target="_blank">免费观看在线综合</a>| <a href="http://710195.com" target="_blank">亚洲精品日产精品乱码不卡</a>| <a href="http://yada-jg.com" target="_blank">日韩亚洲一区二区</a>| <a href="http://56lw.com" target="_blank">亚洲成人在线视频网站</a>| <a href="http://xxxsxx.com" target="_blank">亚洲经典三级</a>| <a href="http://3dmh133.com" target="_blank">亚洲一区二区三区激情</a>| <a href="http://2061851.com" target="_blank">欧美在线二区</a>| <a href="http://15013010203.com" target="_blank">亚洲摸下面视频</a>| <a href="http://06le.com" target="_blank">久久久久久久成人</a>| <a href="http://327099.com" target="_blank">欧美日韩在线看</a>| <a href="http://www224558.com" target="_blank">国产日韩欧美在线视频观看</a>| <a href="http://www-699603.com" target="_blank">激情综合色综合久久</a>| <a href="http://1069024.com" target="_blank">日韩视频亚洲视频</a>| <a href="http://811897.com" target="_blank">欧美一区二区三区在线免费观看</a>| <a href="http://1515t.com" target="_blank">亚洲美女啪啪</a>| <a href="http://xingmaipet.com" target="_blank">午夜精品国产更新</a>| <a href="http://4hup23.com" target="_blank">男女精品网站</a>| <a href="http://love136.com" target="_blank">这里只有精品视频在线</a>| <a href="http://by2735.com" target="_blank">久久久亚洲欧洲日产国码αv</a>| <a href="http://2343ww.com" target="_blank">亚洲午夜电影在线观看</a>| <a href="http://114499com.com" target="_blank">欧美一区二区三区在</a>| <a href="http://0370city.com" target="_blank">欧美福利视频网站</a>| <a href="http://110673.com" target="_blank">国产日韩精品电影</a>| <a href="http://681656.com" target="_blank">国产精品自拍小视频</a>| <a href="http://bgdete.com" target="_blank">在线播放日韩</a>| <a href="http://638179.com" target="_blank">亚洲欧美视频在线观看视频</a>| <a href="http://7345jj.com" target="_blank">男男成人高潮片免费网站</a>| <a href="http://69kun.com" target="_blank">亚洲视频一二区</a>| <a href="http://0000zz.com" target="_blank">欧美大色视频</a>| <a href="http://tao62bao.com" target="_blank">国产亚洲福利</a>| <a href="http://baoyou118.com" target="_blank">亚洲午夜激情在线</a>| <a href="http://writeingo.com" target="_blank">欧美成人精品福利</a>| <a href="http://649929.com" target="_blank">午夜精品理论片</a>| <a href="http://569658.com" target="_blank">欧美三级黄美女</a>| <a href="http://lexueit.com" target="_blank">国产精品av久久久久久麻豆网</a>| <a href="http://www278999.com" target="_blank">欧美激情在线观看</a>| <a href="http://mmpzyw.com" target="_blank">国产午夜亚洲精品羞羞网站</a>| <a href="http://bizhijidi.com" target="_blank">一本久道久久综合中文字幕</a>| <a href="http://www11111111.com" target="_blank">久久一综合视频</a>| <a href="http://www-tk3333.com" target="_blank">亚洲婷婷国产精品电影人久久</a>| <a href="http://www284tv.com" target="_blank">日韩亚洲精品视频</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>