小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Hadoop基礎概念

 月影曉風 2014-11-20

Hadoop歷史:

2002年Apatch Nutch項目啟動(Apatch Lucene的創(chuàng)始人Dout Cutting負責),用于解決網(wǎng)頁搜索問題

2003年谷歌發(fā)表論文,講述了他們海量數(shù)據(jù)存儲和網(wǎng)頁搜索的解決思想,即GFS

2004年,受谷歌啟發(fā),Apatch Nutch分布式文件系統(tǒng)項目(NDFS)啟動。同年,google用論文向世界介紹了他們的MapReduce

2005年,NDFS上也實現(xiàn)了Mapreduce,而且不僅僅適用與搜索環(huán)境。

2006年NDFS和MapReduce移出Nutch,形成Lucene的一個子項目,被稱為為Hadoop。同年,Dout Cutting進入雅虎,成立了專門的研究團隊,把Hadoop發(fā)展成能進行web數(shù)據(jù)處理的系統(tǒng)。

2008年,Hadoop已經(jīng)成為Apache的頂級項目

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

HDFS設計思想

超大文件

專注大規(guī)模數(shù)據(jù)處理,Hadoop能存儲PB級別的數(shù)據(jù)

流式數(shù)據(jù)訪問,一次寫,多次讀

流式,指的是批量讀取,而非隨機讀取。由于hadoop設計為做數(shù)據(jù)分析,所以并不需要修改。

硬件故障是常態(tài),需要冗余。

集群化部署,量變引起質(zhì)變,對單個節(jié)點硬件要求并不太高,不必考慮大型數(shù)據(jù)庫級別的機器。

“數(shù)據(jù)就近與就遠”原則

副本之間距離要遠,讀取數(shù)據(jù)時盡量從近的節(jié)點讀?。C架策略)。

不適應在hadoop上運行的情況:

低延遲訪問

Hadoop設計再與處理海量數(shù)據(jù),并沒有關注實時訪問,可以考慮使用Hbase滿足低延遲的需求。

大量小文件

因為每個文件都要在namenode內(nèi)存中存儲元數(shù)據(jù),每個文件,目錄和數(shù)據(jù)塊大約占用150字節(jié),如果小文件太多,勢必影響namenode性能.

多用戶寫入和修改

Hadoop不支持多用戶同時寫入,也不支持修改。

HDFS概念

數(shù)據(jù)塊:

HDFS中的文件被劃分為多個塊,獨立存儲

為了降低磁盤尋址開銷時間,即一次讀更多的塊,可以適當調(diào)大塊大小

由于map階段一次讀取一個塊,如果這個塊設置的過大,map任務較少,速度會變慢。

分塊的好處:

1.       使一個文件可以存儲在不同磁盤上

2.       簡化管理,因為元數(shù)據(jù)由其他系統(tǒng)控制

3.       適用與容錯處理和數(shù)據(jù)備份

列出磁盤中文件的塊信息:

[~/hadoop/hadoop-1.2.1/conf]$hadoop  fsck /user/huangxing/input files blocks               

FSCK started by huangxing from /127.0.0.1 for path /user/huangxing/input at Thu Feb 27 23:40:14 CST 2014

.

/user/huangxing/input/README.html:  Under replicated blk_5326121453921514416_1014. Target Replicas is 3 but found 1 replica(s).

Status: HEALTHY

 Total size:    114 B

 Total dirs:    1

 Total files:   1

 Total blocks (validated):      1 (avg. block size 114 B)

 Minimally replicated blocks:   1 (100.0 %)

 Over-replicated blocks:        0 (0.0 %)

 Under-replicated blocks:       1 (100.0 %)

 Mis-replicated blocks:         0 (0.0 %)

 Default replication factor:    1

 Average block replication:     1.0

 Corrupt blocks:                0

 Missing replicas:              2 (200.0 %)

 Number of data-nodes:          1

 Number of racks:               1

FSCK ended at Thu Feb 27 23:40:14 CST 2014 in 4 milliseconds

 

The filesystem under path '/user/huangxing/input' is HEALTHY

 

namenode和datanode

namenode和datanode是HDFS系統(tǒng)的兩個重要概念

nodename節(jié)點管理系統(tǒng)命名空間,類似mongodb的配置服務器,維護系統(tǒng)文件和目錄信息,所以連接namenode就可以查看整個目錄樹。注意,這些信息以一對文件保存在本地磁盤上:包括命名空間鏡像文件和事務日志文件。Namenode還記錄每個塊的數(shù)據(jù)節(jié)點信息,但是不永久保存,這些信息在系統(tǒng)重啟時候由datanode節(jié)點建立,然后傳輸給nodename節(jié)點。總結namenade作用:

(1)     管理文件系統(tǒng)的命名空間

(2) 記錄每個文件數(shù)據(jù)塊在各個Datanode上的位置和副本信息

(3) 協(xié)調(diào)客戶端對文件的訪問

(4) 記錄命名空間內(nèi)的改動或空間本身屬性的改動

(5) amenode使用事務日志記錄HDFS元數(shù)據(jù)的變化。使用映像文件存儲文件系統(tǒng)的命名空間,包括文件映射,文件屬性等

[~/hadoop/hadoop-1.2.1/name]$ls -lR

.:

總用量 12

drwxrwxr-x 2 huangxing huangxing 4096  3月  1 01:24 current

drwxrwxr-x 2 huangxing huangxing 4096  2月 27 01:12 image

-rw-rw-r-- 1 huangxing huangxing    0  3月  1 01:19 in_use.lock

drwxrwxr-x 2 huangxing huangxing 4096  2月 28 11:22 previous.checkpoint

 

./current:

總用量 1040

-rw-rw-r-- 1 huangxing huangxing 1048580  3月  1 01:29 edits

-rw-rw-r-- 1 huangxing huangxing    1501  3月  1 01:24 fsimage

-rw-rw-r-- 1 huangxing huangxing       8  3月  1 01:24 fstime

-rw-rw-r-- 1 huangxing huangxing     101  3月  1 01:24 VERSION

 

./image:

總用量 4

-rw-rw-r-- 1 huangxing huangxing 157  3月  1 01:24 fsimage

 

./previous.checkpoint:

總用量 1040

-rw-rw-r-- 1 huangxing huangxing 1048580  2月 28 11:29 edits

-rw-rw-r-- 1 huangxing huangxing    1501  2月 28 11:22 fsimage

-rw-rw-r-- 1 huangxing huangxing       8  2月 28 11:22 fstime

-rw-rw-r-- 1 huangxing huangxing     101  2月 28 11:22 VERSION

Fsimage就是映像文件,edit是事務日志

 

dataNode受客戶端或者namenode調(diào)度,存儲并檢索數(shù)據(jù)塊,并且定期向namenode發(fā)送他們存儲的塊的列表,datanode特性:

(1)     負責物理節(jié)點的存儲管理,

(2)     一次寫入,多次讀?。ú恍薷模?

(3)     數(shù)據(jù)塊組成,典型的塊大小是64MB

(4)     據(jù)塊盡量散布到各個節(jié)點

如果namenode節(jié)點崩潰,整個集群系統(tǒng)將不可用,hadoop提供兩種容錯策略:

1.       通過寫入多個目的地,例如寫入本地和NFS目錄

2.       使用輔助namenode節(jié)點,定期編輯日志,合并命名空間,防止日志過大。由于他的狀態(tài)總是落后namenode,所以一旦namenode失效,就會產(chǎn)生數(shù)據(jù)丟失。失效時,可以把nfs上的數(shù)據(jù)拷貝到輔助節(jié)點,使之以namenode運行。

Hadoop數(shù)據(jù)讀取流程

(1)     客戶端向namenode發(fā)出請求(集群中每個節(jié)點都知道namenode在哪里)

(2)     Namenode收集datanode信息

(3)     Namenode向客戶端傳送數(shù)據(jù)

(4)     客戶端向datanode查詢數(shù)據(jù)(就近原則讀,利用帶寬)

所以,namenode只是存儲datanode元數(shù)據(jù),但是他是放在內(nèi)存里面的,定位效率較高

HDFS可用性

冗余副本策略

(1)     可以在hdfs-site.xml中設置復制因子指定副本數(shù)量

(2)     所有數(shù)據(jù)塊都有副本

(3)     Datanode啟動時,遍歷本地文件系統(tǒng),產(chǎn)生一份hdfs數(shù)據(jù)塊和本地文件的對應關系列

表(blockreport)匯報給namenode

機架策略

(1)     集群一般放在不同機架上,機架間帶寬要比機架內(nèi)帶寬要小

(2)     HDFS的“機架感知”

(3)     一般在本機架存放一個副本,在其它機架再存放別的副本,這樣可以防止機架失效時

丟失數(shù)據(jù),也可以提高帶寬利用率,而且讀取數(shù)據(jù)盡量不跨越機柜

心跳機制

(1)     Namenode周期性從datanode接收心跳信號和塊報告

(2)     Namenode根據(jù)塊報告驗證元數(shù)據(jù)

(3)     按時發(fā)送心跳的datanode會被標記為宕機,不會再給它任何I/O請求(與impala類似)

(4)     如果datanode失效造成副本數(shù)量下降,并且低于預先設置的閾值,namenode會檢測出這些數(shù)據(jù)塊,并在合適的時機進行重新復制(討論閾值)

(5)     引發(fā)重新復制的原因還包括數(shù)據(jù)副本本身損壞、磁盤錯誤,復制因子被增大等

安全模式

(1)     node啟動時會先經(jīng)過一個“安全模式”階段

安全模式階段不會產(chǎn)生數(shù)據(jù)寫,此階段Namenode收集各個datanode的報告,當數(shù)據(jù)塊達到最小副本數(shù)以上時,會被認為是“安全”的(否則不安全.

(2)     在一定比例(可設置)的數(shù)據(jù)塊被確定為“安全”后,再過若干時間,安全模式結束。檢測到副本數(shù)不足的數(shù)據(jù)塊時,該塊會被復制直到達到最小副本數(shù)。

校驗和

校驗和文件如下所示:

[~/hadoop/hadoop-1.2.1/data/current]$ls -lh

總用量 82M

-rw-rw-r-- 1 huangxing huangxing  138  2月 27 23:09 blk_-1148524011628330155

-rw-rw-r-- 1 huangxing huangxing   11  2月 27 23:09 blk_-1148524011628330155_1020.meta

-rw-rw-r-- 1 huangxing huangxing  64M  3月  1 01:29 blk_2941913032423535550

-rw-rw-r-- 1 huangxing huangxing 513K  3月  1 01:29 blk_2941913032423535550_2280.meta

-rw-rw-r-- 1 huangxing huangxing    4  3月  1 01:20 blk_3165250348914594670

-rw-rw-r-- 1 huangxing huangxing   11  3月  1 01:20 blk_3165250348914594670_1025.meta

-rw-rw-r-- 1 huangxing huangxing  114  2月 27 19:14 blk_5326121453921514416

-rw-rw-r-- 1 huangxing huangxing   11  2月 27 19:14 blk_5326121453921514416_1014.meta

-rw-rw-r-- 1 huangxing huangxing 9.1K  2月 28 11:18 blk_-7495815267218679520

-rw-rw-r-- 1 huangxing huangxing   83  2月 28 11:18 blk_-7495815267218679520_1023.meta

-rw-rw-r-- 1 huangxing huangxing  17M  3月  1 01:29 blk_-7878323630152692968

-rw-rw-r-- 1 huangxing huangxing 130K  3月  1 01:29 blk_-7878323630152692968_2280.meta

-rw-rw-r-- 1 huangxing huangxing 9.1K  2月 28 11:19 blk_-9178443108632575838

-rw-rw-r-- 1 huangxing huangxing   83  2月 28 11:19 blk_-9178443108632575838_1024.meta

-rw-rw-r-- 1 huangxing huangxing 1.7K  3月  1 02:02 dncp_block_verification.log.curr

drwxrwxr-x 2 huangxing huangxing 4.0K  3月  1 01:25 subdir0

1.         在文件創(chuàng)立時,每個數(shù)據(jù)塊都產(chǎn)生校驗和

2.         校驗和會作為單獨一個隱藏文件保存在命名空間下

3.         客戶端獲取數(shù)據(jù)時可以檢查校驗和是否相同,從而發(fā)現(xiàn)數(shù)據(jù)塊是否損壞

4.         如果正在讀取的數(shù)據(jù)塊損壞,則可以繼續(xù)讀取其它副本

回收站

(1)       刪除文件時,其實是放入回收站/trash

(2)       回收站里的文件可以快速恢復

(3)       可以設置一個時間閾值,當回收站里文件的存放時間超過這個閾值,就被徹底刪除,

(4)       并且釋放占用的數(shù)據(jù)塊

(5)       可以設置不需要回收站

元數(shù)據(jù)保護

十分核心的內(nèi)容:

(1)       映像文件剛和事務日志是Namenode的核心數(shù)據(jù)。可以配置為擁有多個副本(類似oracle的控制文件多個復制)

(2)       副本會降低Namenode的處理速度,但增加安全性

(3)       Namenode依然是單點,如果發(fā)生故障要手工切換

快照

類似oracle的回滾:

(1)       支持存儲某個時間點的映像,需要時可以使數(shù)據(jù)重返這個時間點的狀態(tài)

(2)       Hadoop目前還不支持快照,已經(jīng)列入開發(fā)計劃

命令行接口

基本文件系統(tǒng)操作(fs)

查看幫助:

[root@hexel /hadoop/hadoop-1.2.1/name]#hadoop fs –help

復制本地文件到hdfs:(或者put)

[~]$hadoop dfs -copyFromLocal ./notice.html /user/huangxing/input

[~]$hadoop dfs -copyFromLocal ./notice.html /user/huangxing/input/notice1.html

把文件復制到本地:(或者get命令)

[~]$hadoop dfs -copyToLocal /user/huangxing/input/notice1.html ./

進行md5驗證:

[~]$md5sum notice.html

a00d6f9ab542be7babc2d8b80d5d2a4c  notice.html

[~]$hadoop dfs -copyToLocal /user/huangxing/input/notice1.html ./

[~]$md5sum notice1.html

a00d6f9ab542be7babc2d8b80d5d2a4c  notice1.html

[~]$

顯示hdfs文件:

[~]$hadoop dfs -ls /user/huangxing/input

Found 3 items

-rw-r--r--   3 huangxing supergroup        114 2014-02-27 19:14 /user/huangxing/input/README.html

-rw-r--r--   1 huangxing supergroup       9230 2014-02-28 11:18 /user/huangxing/input/notice.html

-rw-r--r--   1 huangxing supergroup       9230 2014-02-28 11:19 /user/huangxing/input/notice1.html

第一列是權限信息,第二列表示副本數(shù)

查看統(tǒng)計信息

[~/hadoop/hadoop-1.2.1/data/current]$hadoop dfsadmin -report

Configured Capacity: 19359907840 (18.03 GB)

Present Capacity: 13920987045 (12.96 GB)

DFS Remaining: 13920464896 (12.96 GB)

DFS Used: 522149 (509.91 KB)

DFS Used%: 0%

Under replicated blocks: 2

Blocks with corrupt replicas: 0

Missing blocks: 0

 

-------------------------------------------------

Datanodes available: 1 (1 total, 0 dead)

 

Name: 191.255.255.250:50010

Decommission Status : Normal

Configured Capacity: 19359907840 (18.03 GB)

DFS Used: 522149 (509.91 KB)

Non DFS Used: 5438924891 (5.07 GB)

DFS Remaining: 13920460800(12.96 GB)

DFS Used%: 0%

DFS Remaining%: 71.9%

Last contact: Sat Mar 01 02:12:12 CST 2014

進入和退出安全模式

Dananode啟動時候發(fā)送數(shù)據(jù)塊信息給namenode,塊副本量達到閾值時,才會退出安全模式,接受讀寫。手動進入安全模式:

[~/hadoop/hadoop-1.2.1/data/current]$hadoop dfsadmin -safemode enter

Safe mode is ON

Safemode下無法讀寫了?。?

[~]$hadoop dfs -put ./notice.html /user/huangxing/hxnotice.xml

put: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create /user/huangxing/hxnotice.xml. Name node is in safe mode.

離開安全模式:

[~/hadoop/hadoop-1.2.1/data/current]$hadoop dfsadmin -safemode leave

這個時候可以正常操作了。

添加節(jié)點

(1)       在新節(jié)點安裝好hadoop(linux,hadoop,配置文件,java)

(2)       把namenode的有關配置文件復制到該節(jié)點

(3)       修改masters和slaves文件,增加該節(jié)點

(4)       設置ssh免密碼進出該節(jié)點

(5)       單獨啟動該節(jié)點上的datanode和tasktracker(hadoop-daemon.sh start datanode/tasktracker)

(6)       運行start -balancer.sh進行數(shù)據(jù)負載均衡

負載均衡

作用:當節(jié)點出現(xiàn)故障,或新增加節(jié)點時,數(shù)據(jù)塊分布可能不均勻,負載均衡可以重新平衡各個datanode上數(shù)據(jù)塊的分布(比較耗時間)

API

需要熟練上傳,刪除,重命名文件相關java類和方法.

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多