2016-08-24 37 views
0

假設如果我將hdfs中的文件加載到配置單元表中,那麼該文件的總副本數是多少。在hdfs文件中複製了3次,現在複製到配置單元表中會產生額外的副本,總和可達6個副本?將hdfs文件複製到配置單元表中後的複製文件總數

+0

請您詳細說明一下。 –

+0

是複製是HDFS的一部分。 – TKHN

+0

假設我在hdfs /sample.txt文件中默認已經複製了3次。現在我創建了一個samp hive表,並將sample.txt加載到它中,然後爲了samp表再次生成3個sample.txt副本。所以我覺得在技術上我們有六份sample.txt。這個假設是否正確? –

回答

1

在HDFS中,副本數量基於複製因子集。 就你而言,由於複製因子是3,所以會有三個副本。

當你做一個sqroop從hdfs導入配置單元(進入內部表)時,數據僅從hdfs上的一個位置複製到配置單元中的表。但是,Hive數據的複製又是基於您的複製因素而發生的。

在總你將結束與3(HDFS)+ 1(配置單元複製)* 3 => 3copies上HDFS和由配置單元存儲的數據的3個拷貝(這不是6份,作爲蜂巢不以相同的文件格式存儲數據)。

OR

如果你做一個LOAD DATA INPATH到內部表舊副本丟失,只有較新的蜂巢副本存在。所以你最終將只有一個配置單元表(及其複製副本)。

在你的情況下,3個蜂巢表副本(因爲rep設置爲3)。

OR

如果創建一個外部表,則不會創建任何新的副本。數據的元數據由Hive創建。所以你最終得到你的HDFS副本+ Hive元存儲副本

就你的情況而言,3份拷貝在HDFS + 3份拷貝中存儲在Hive上的meta數據。

+0

是的,我同意,首先我們在HDFS中有3個副本,數據只從一個位置複製。 Hive也將數據存儲到hdfs,因此,當hive將單個副本推入hdfs時,它將再次被複制3次。所以它總和爲6. –

+0

@TarunChunchu是的,該數據也被複制三次,但不是6份。在內部表格的情況下,它的3份HDFS和3份Hive數據(存儲方式不同)。爲了清晰起見,我更新了答案。 –

+0

乾杯。現在清楚了,謝謝你阿尼。 –