HDFS

HDFS是Hadoop的分佈式文件系統,但是分佈式文件系統不只是HDFS,如Google的GFS,Spark的Tachyon,他們都是分佈式文件系統。

在這裏談到分佈式文件系統,我們一定要和傳統的文件系統進行區分。傳統的文件系統如Windows的NTFS,FAT32和FAT16,Linux的ext3,ext4,它們都是基於裸設備構建,而分佈式文件系統是基於底層的操作系統的文件系統,就是說我們可以把分佈式文件系統看作是底層文件系統上層的一個應用,它提供給我們的只是一個訪問的接口,不會像登錄操作系統進行一系列的操作。下面我們對HDFS做一下詳細介紹:

HDFS是用Java實現的文件系統,它使用很成熟的工業標準的計算機,爲海量數據提供冗餘存儲。但是HDFS到底適合存儲什麼樣的數據,是不是所有數據都可以處理呢?不是的。

HDFS最適合於合理數量的大文件:百萬級,而不是十億級的文件

每個文件在100MB及以上

爲什麼會有這些限制呢?

我們存儲數據的節點是可以進行擴容,但是master會管理和記錄數據,這些數據屬於源數據,源數據會全部加載到內存,而內存有限,所有數量就會受限。

另外HDFS文件是“一次寫”的,不允許隨機寫,這是它的不足。而且HDFS爲大文件的連續讀作了優化,而不是隨機讀。

那麼HDFS的文件如何存儲呢?

數據文件在加載時拆分成塊(默認128MB)並進行分佈,所以文件不能小而多,這樣會影響到後續的工作。而且HDFS是冗餘存儲,所以每個塊被複制到多個數據節點中(默認3份),這三份遵循的機制就是同一個節點存儲一份,而如果配置了機架感知,那麼在分配的時候會考慮到機架感知這一因素,不同機架配置不同的塊。

至於HDFS,它的訪問形式多樣,自行了解就可以。以上就是根據自己的實際經驗對HDFS做的一個介紹,希望可以有所幫助。在這也建議大家多去認知和學習,平常也可以關注一些自媒體平臺,我個人喜歡看“大數據cn”和“大數據時代學習中心” 這樣的微信公衆號,裏面介紹的知識還很不錯的。總之,期待每一個想要學習大數據的人都可以學有所進。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章