任何機構都可以解釋我在Hadoop中索引過程的含義。 它是否像我們在RDBMS中執行的傳統數據索引那樣,因此在Hadoop中我們使用相同的類比來索引數據塊並將塊的物理地址存儲在某些數據結構中。 因此,它將成爲羣集中的一個額外空間。Hadoop中的索引過程
圍繞這個話題搜索,但沒有得到任何滿意和詳細的東西。 任何指針都會有所幫助。
在此先感謝
任何機構都可以解釋我在Hadoop中索引過程的含義。 它是否像我們在RDBMS中執行的傳統數據索引那樣,因此在Hadoop中我們使用相同的類比來索引數據塊並將塊的物理地址存儲在某些數據結構中。 因此,它將成爲羣集中的一個額外空間。Hadoop中的索引過程
圍繞這個話題搜索,但沒有得到任何滿意和詳細的東西。 任何指針都會有所幫助。
在此先感謝
我們可以找出創建索引2不同的粒度級別:基於指數上的文件URI或索引基於InputSplit。我們來看兩個不同的數據集示例。
索引
在this第一示例中,2個文件數據中的在25個塊設置配合,並且已被確定爲7個不同InputSplits。您正在尋找的目標(灰色突出顯示)在文件#1(塊#2,#8和#13)和文件#2(塊#17)上可用
使用基於文件的索引,您將結束與2個文件(在這裏完整的數據集),這意味着您的索引查詢將相當於一個完整的掃描查詢 使用基於InputSplit的索引,您將最終有7個可用的4個InputSplits。性能應該肯定比全面掃描查詢要好 索引
我們以second爲例。這次,相同的數據集已經按您想索引的列進行排序。您正在查找的目標(灰色突出顯示)現在可在文件#1(塊#1,#2,#3和#4)上找到。
使用基於文件的索引,你最終會與您的數據只有1文件中設置 使用基於InputSplit索引,你將最終獲得1個InputSplit 7可用 對於這個特定的研究,我決定使用自定義InputSplit基於指數。我認爲這種方法應該在實現所需的努力,性能優化帶來的附加價值以及預期適用性之間取得很好的平衡,無論數據分佈如何。
Hadoop將數據存儲在文件中,並且不對它們編制索引。爲了找到一些東西,我們必須運行一個MapReduce作業來處理所有的數據。對於數據庫來說數據太大的Hadoop非常有效。對於非常大的數據集,再生索引的成本非常高,您無法輕鬆索引更改的數據。
但是,我們可以在HDFS中使用兩種類型的索引。基於文件的索引&基於InputSplit的索引。 讓我們假設我們有2個文件存儲在HDFS中進行處理。第一個是500 MB,第二個是250 MB。因此,我們將在第一個文件中有4個InputSplits,每個在第2個文件中有3個InputSplits。 我們可以爲上述案例應用兩種索引 - 1.使用基於文件的索引,最終將包含2個文件(此處爲完整數據集),這意味着您的索引查詢將等同於完整掃描查詢 2 。使用基於InputSplit的索引,您最終將得到4個InputSplits。性能應該比完整掃描查詢更好。
現在,爲了實現InputSplits指數,我們需要執行以下步驟:
代碼示例和其他詳細信息請參閱本 -
https://hadoopi.wordpress.com/2013/05/24/indexing-on-mapreduce-2/