HDFS應該掌握哪些知識

 Hdfs(分佈式文件系統)hadoop的兩大核心(hdfsmapreduce)之一,hdfs又是mapreduce運算的數據存放地,因此hdfshadoop的根基。沒有hdfs,就沒有hadoop


    Hdfs是一個分佈式文件系統,作用就是用來存放數據的。大家想一想,對於存放數據的文件系統,我們應該怎麼學習,掌握哪些知識哪?


    首先我們應該知道是如何存放的吧,hadoop是通過DataNode存放數據的。那麼一個文件存放在哪些DataNode上,文件多大,這些信息在哪裏?是NameNode。可以看出,NameNode是管理DataNode的。真正存放數據的地方是DataNode,管理文件與這些DataNode之間的映射關係的是NameNode。這就是核心,就這麼簡單。


    那麼,DataNode在磁盤存放數據的基本單位是什麼哪?塊。一個塊默認是64MB


    既然是分佈式存放數據,那麼就需要考慮DataNode節點所在機器的故障,因此需要對數據冗餘備份,也就是要設置存放的數據的副本數。可以想象到:副本數肯定小於等於DataNode數量。


    假設數據有3份副本,也就是說2個存放數據的DataNode壞掉,不會影響數據的安全性,還有一份可以用。想過嗎,管理這些DataNodeNameNode壞掉怎麼辦?沒辦法。這裏的NameNode是單點的,一旦NameNode壞掉,hdfs就不能用了。因此,必須備份NameNode的數據,防止系統down掉,這就是SecondaryNameNode的職責。SecondaryNameNode的作用就是備份NameNode。目前不能實時備份。不過,有勝於無嘛。


    以上談的都是原理性的東西。對於我們程序員,最關心的是如何訪問、操作這些數據。這就是hdfs公佈的對外訪問方式,包括java訪問方式和shell訪問方式。這兩種訪問方式都是非常重要的,必須熟練掌握。


    如果把我上面說的知識都掌握了,hdfs這塊就過關了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章