2016-10-03 4 views
0

ここではハイブ/ハープの発見があり、タイトルと呼ばれるテーブルが2つに分割されています.1つはtitles20000、もう1つはtitles20000moreです。よく見る、しかしデータサイズが異なって見える、「ホストアドレス:50070」と入力して名前ノードからのもので、ここでのスクリーンショット参照ブラウザでは:ブロックサイズで enter image description hereHadoopでのHiveストレージ、興味深い発見だが分からない

ルック、最初の表のタイトルは、4つのブロックがあり、分割されたサブテーブルにはそれぞれ1つしかありません。

は、私はまた、別の方法ハイブでshowプロパティを実行することにより、データサイズを確認:

n = titles: 443309 
n1 = titles20000: 14781 
n2 = titles20000more: 428528 
n = n1 + n2 = 443309 
% of n1 = 3% 
% of n2 = 97% 

これは正しいです:enter image description here

私は行数の迅速な計算をしました。

私はその後、totalSize上の別の迅速な計算でした:

n = titles: 19934943 
n1 = where emp_no < 20000: 624642 
n2 = where emp_no >=20000: 18423685 
n1+n2 = 19048327 < n 

どうやらこれは、以前の観察と一致して、質問がある:元のテーブルタイトルの

、それが分割さについて 4個の128MBのブロックを使用しました2番目のテーブルのタイトルは20000、それは行の97%を含んでいますが、1つの128MBブロックしか使用していません。

最初のスクリーンショットで、サイズ(第4列)の意味は?

これはどうしたら起こりますか?

答えて

1

サイズはデータの実際のサイズです。

ブロックサイズは、データが格納されるブロックのサイズです。

元のテーブルは、4つのマッパーを使用するマップオンリージョブによって作成されたデータであるため、4つのブロックを使用します。データが他のテーブルにコピーされると、1つのブロックにマージされたように見えます。

+0

ありがとうございますが、私は1マッパーしか使用しませんでした。 – PasLeChoix

+1

m-0000xファイルの名前は、4つのマッパーがあることを示しています。データの取り込みに使用したジョブを確認することができます。 –

+1

@BenWatson、私はすでに「ブロックサイズ」が何を意味するのかについて多くの混乱を見てきましたので、IMHOでは** Block Size **と言って物事をより明示的にすることができました。 128 MBの場合、それは複数の*論理*割り当て単位(「ブロック」という名前)に分割されます。異なるブロックを異なるDataNodeに格納することができます。異なるブロックは異なるマッパーによって処理されます。 * Big *データを管理するための内部Hadoopトリックです。 –

関連する問題