欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

二、hdfs體系架構-創(chuàng)新互聯

[TOC]

成都創(chuàng)新互聯是專業(yè)的云霄網站建設公司,云霄接單;提供做網站、網站建設,網頁設計,網站設計,建網站,PHP網站建設等專業(yè)做網站服務;采用PHP框架,可快速的進行云霄網站開發(fā)網頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網站,專業(yè)的做網站團隊,希望更多企業(yè)前來合作!

一、HDFS體系組成概述

這是一個分布式文件系統(tǒng),適用于于一次寫入多次讀取的場景。包含以下角色:

NameNode(nn):
存儲文件的元數據,如文件名、文件目錄結構,文件屬性等,以及每個文件的塊列表和塊所在的DataNode等。以及響應客戶端對hdfs的讀寫操作,如創(chuàng)建目錄、上傳文件等。還有保存讀寫日志。

DataNode(dn):
在本地文件系統(tǒng)中存儲文件塊數據,以及塊數據的校驗和

SecondaryNameNode(snn):
用來監(jiān)控HDFS狀態(tài)的輔助后臺程序,每隔一段時間獲取HDFS元數據的快照,相當于對NameNode進行備份。

二、HDFS-NameNode

主要職責是管理hdfs的所有節(jié)點。
1、響應客戶端對hdfs的請求,如增刪改查。
2、管理和維護hdfs 的元數據信息以及日志(非log日志)

NameNode會在 core-site.xml中指定的hadoop.tmp.dir 的目錄中 創(chuàng)建目錄:dfs/name/ 。下面我們看看這個目錄的結構。

[root@bigdata121 tmp]# tree dfs/name
dfs/name
├── current
│?? ├── edits_0000000000000000001-0000000000000000002
│?? ├── edits_0000000000000000003-0000000000000000004
│?? ├── edits_0000000000000000005-0000000000000000006
│?? ├── edits_0000000000000000007-0000000000000000008
│?? ├── edits_0000000000000000009-0000000000000000009
│?? ├── edits_0000000000000000010-0000000000000000011
│?? ├── edits_0000000000000000012-0000000000000000013
│?? ├── edits_0000000000000000014-0000000000000000015
│?? ├── edits_0000000000000000016-0000000000000000017
│?? ├── edits_0000000000000000018-0000000000000000019
│?? ├── edits_0000000000000000020-0000000000000000021
│?? ├── edits_0000000000000000022-0000000000000000024
│?? ├── edits_0000000000000000025-0000000000000000026
│?? ├── edits_inprogress_0000000000000000027
│?? ├── fsimage_0000000000000000024
│?? ├── fsimage_0000000000000000024.md5
│?? ├── fsimage_0000000000000000026
│?? ├── fsimage_0000000000000000026.md5
│?? ├── seen_txid
│?? └── VERSION
└── in_use.lock

各個文件目錄的作用如下:

1、current

主要存放hdfs的存儲的數據的元信息和日志。

(1)edits文件

是一個二進制文件,主要記錄對hdfs的增刪改操作的信息,類似于MySQL的二進制日志。其中 edits_inprogress_xxxxx 表示是最新的edits日志,是目前正在使用的。
可以使用命令查看 edits文件的內容:

//格式:hdfs oev -i 輸入文件 -o 輸出文件(xml格式)
[root@bigdata121 current]# hdfs oev -i edits_inprogress_0000000000000000038 -o /tmp/edits_inprogess.xml

[root@bigdata121 current]# cat /tmp/edits_inprogess.xml
<?xml version="1.0" encoding="UTF-8"?>
<EDITS>
  <EDITS_VERSION>-63</EDITS_VERSION>
  <RECORD>
    <OPCODE>OP_START_LOG_SEGMENT</OPCODE>   表示操作的類別,這里是表示日志開始記錄
    <DATA>
      <TXID>38</TXID>  類似于操作的ID,是唯一的
    </DATA>
  </RECORD>
</EDITS>

<RECORD>
    <OPCODE>OP_ADD_BLOCK</OPCODE>     //像這個就表示上傳文件的操作
    <DATA>
      <TXID>34</TXID>
      <PATH>/jdk-8u144-linux-x64.tar.gz._COPYING_</PATH>
      <BLOCK>
        <BLOCK_ID>1073741825</BLOCK_ID>
        <NUM_BYTES>134217728</NUM_BYTES>
        <GENSTAMP>1001</GENSTAMP>
      </BLOCK>
      <BLOCK>
        <BLOCK_ID>1073741826</BLOCK_ID>
        <NUM_BYTES>0</NUM_BYTES>
        <GENSTAMP>1002</GENSTAMP>
      </BLOCK>
      <RPC_CLIENTID></RPC_CLIENTID>
      <RPC_CALLID>-2</RPC_CALLID>
    </DATA>
  </RECORD>

(2)fsimage文件

hdfs中的數據的元數據文件。記錄hdfs文件系統(tǒng)中各個數據塊的信息,但并不是最新的。需要定時將edits文件合并到這里,才是最新的??梢允褂妹畈榭?fsimage 文件的內容:

//格式 : hdfs oiv -p 輸出格式 -i 輸入文件 -o 輸出文件
[root@bigdata121 current]# hdfs oiv -p XML -i fsimage_0000000000000000037 -o /tmp/fsimage37.xml

[root@bigdata121 current]# cat /tmp/fsimage37.xml
<?xml version="1.0"?>
<fsimage><version><layoutVersion>-63</layoutVersion><onDiskVersion>1</onDiskVersion><oivRevision>17e75c2a11685af3e043aa5e604dc831e5b14674</oivRevision></version>
<NameSection><namespaceId>1780930535</namespaceId><genstampV1>1000</genstampV1><genstampV2>1002</genstampV2><genstampV1Limit>0</genstampV1Limit><lastAllocatedBlockId>1073741826</lastAllocatedBlockId><txid>37</txid></NameSection>
<INodeSection><lastInodeId>16387</lastInodeId><numInodes>3</numInodes><inode><id>16385</id><type>DIRECTORY</type><name></name><mtime>1558145602785</mtime><permission>root:supergroup:0755</permission><nsquota>9223372036854775807</nsquota><dsquota>-1</dsquota></inode>
<inode><id>16386</id><type>DIRECTORY</type><name>input</name><mtime>1558105166840</mtime><permission>root:supergroup:0755</permission><nsquota>-1</nsquota><dsquota>-1</dsquota></inode>
<inode><id>16387</id><type>FILE</type><name>jdk-8u144-linux-x64.tar.gz</name><replication>2</replication><mtime>1558145602753</mtime><atime>1558145588521</atime><preferredBlockSize>134217728</preferredBlockSize><permission>root:supergroup:0644</permission><blocks><block><id>1073741825</id><genstamp>1001</genstamp><numBytes>134217728</numBytes></block>
<block><id>1073741826</id><genstamp>1002</genstamp><numBytes>51298114</numBytes></block>
</blocks>
<storagePolicyId>0</storagePolicyId></inode>
</INodeSection>
<INodeReferenceSection></INodeReferenceSection><SnapshotSection><snapshotCounter>0</snapshotCounter><numSnapshots>0</numSnapshots></SnapshotSection>
<INodeDirectorySection><directory><parent>16385</parent><child>16386</child><child>16387</child></directory>
</INodeDirectorySection>
<FileUnderConstructionSection></FileUnderConstructionSection>
<SecretManagerSection><currentId>0</currentId><tokenSequenceNumber>0</tokenSequenceNumber><numDelegationKeys>0</numDelegationKeys><numTokens>0</numTokens></SecretManagerSection><CacheManagerSection><nextDirectiveId>1</nextDirectiveId><numDirectives>0</numDirectives><numPools>0</numPools></CacheManagerSection>
</fsimage>

記錄的信息更為詳細。文件的元數據,如文件權限、時間戳等都有記錄。

(3)seen_txid

txid是類似于事件id的概念,指的是每個操作的一個標識。這個文件中記錄的是最新的txid的下一個,即當前最后一個txid是37,那么該文件記錄的就是38.

(4)fsimage和edit文件命名方式的聯系

edits文件:
我們可以看到edits文件都是 edits_00000xxx-000000xxx的方式命名的,其實意思就是表示該edits文件中記錄了txid操作事件的范圍。而 edit_inprogess_00000xxx 則表示當前所記錄到的最新的txid事件。

fsimage文件:
以fsimage_000000xxx 的方式命名,表示的是該fsimage 文件記錄到的最新的txid事件,請注意,因為fsimage是有條件觸發(fā)之后,edits文件才會合并到fsimage的,否則不會合并。所以一般情況下,edits文件后面的txid肯定是比fsimage 大的。

2、in_use.lock

這個文件主要是對當前的node進行鎖操作,避免當前機器同時啟動多個namenode。只能啟動一個namenode

三、HDFS-DataNode

HDFS的數據節(jié)點,主要就是存儲數據的block文件的。會在指定的目錄下創(chuàng)建一個 dfs/data 目錄,看一下目錄結構:

[root@bigdata122 dfs]# tree data
data
├── current
│?? ├── BP-1130553825-192.168.50.121-1557922928723
│?? │?? ├── current
│?? │?? │?? ├── finalized
│?? │?? │?? │?? └── subdir0
│?? │?? │?? │??     └── subdir0
│?? │?? │?? │??         ├── blk_1073741825
│?? │?? │?? │??         ├── blk_1073741825_1001.meta
│?? │?? │?? │??         ├── blk_1073741826
│?? │?? │?? │??         └── blk_1073741826_1002.meta
│?? │?? │?? ├── rbw
│?? │?? │?? └── VERSION
│?? │?? ├── scanner.cursor
│?? │?? └── tmp
│?? └── VERSION
└── in_use.lock

在HDFS中,文件都是被分割成多個等大的數據塊進行存儲的。
hadoop 1.x 中數據塊默認大小是 64M
hadoop 2.x 中數據塊默認大小是 128M
hadoop 3.x 中不再采用多副本的模式存儲,而是采用糾刪碼技術。
請見 https://www.cnblogs.com/basenet855x/p/7889994.html

在上面的目錄中 blk_xxxxx 的文件其實就是blk文件,每個的大小為指定的塊大小。

四、HDFS-SecondaryNameNode

用來監(jiān)控HDFS狀態(tài)的輔助后臺程序,主要就是輔助 NameNode節(jié)點的工作(并非是 NameNode的備節(jié)點),其中主要工作就是 合并edits文件到fsimage文件。
1、根據 checkpoint的 時間間隔(默認3600秒)或者 edits文件到達64M 的觸發(fā)條件,將edits文件合并fsimage。
2、edits合并到fsimage之后,edits文件可以清空了。

另外有需要云服務器可以了解下創(chuàng)新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

新聞標題:二、hdfs體系架構-創(chuàng)新互聯
分享網址:http://chinadenli.net/article38/cdhspp.html

成都網站建設公司_創(chuàng)新互聯,為您提供網站建設、網站收錄App開發(fā)、外貿建站移動網站建設、網站策劃

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

成都網站建設公司