ビッグデータ--hiveポイントバレルクエリ&&圧縮

まず、サンプルクエリとサブバレル

1、サブバレルテーブル作成

---------------------------------------

ハイブ(db_test)>表stu_buck作成(ID INTを、名前の文字列)
(ID)によってクラスタ化>
4つのバケットに>
> '\ tの'によって終了行形式区切られたフィールド。
OK
の時間が取ら:0.369秒

-------------------------------------------------- ----------------------

ハイブ(db_test)> DESCフォーマットstu_buck。
OK
COL_NAMEのDATA_TYPEコメント
#のCOL_NAMEのDATA_TYPEコメント

ID int型
名の文字列

#詳細表情報
データベース:db_test
所有者:ルート
CREATETIME:木10月3日午前12時14分15秒CST 2019
LastAccessTime:UNKNOWN
保護モード:なし
保持:0
場所:HDFS:// MYCLUSTER / db_test.db / stu_buck
テーブルタイプ:MANAGED_TABLE
表パラメータ:
transient_lastDdlTime 1570076055

#ストレージ情報
SerDe図書館:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
のInputFormat:org.apache.hadoop.mapred.TextInputFormat
OUTPUTFORMAT:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
圧縮:いいえ
民バケツ:4つの
バケット列:[ID]
ソートカラム:[]
ストレージDESC PARAMS:
field.delim \ T
serialization.format \ T
時間取ら。フェッチされた0.121秒、28行(複数可)

-------------------------------------------------- ----------------

図2に示すように、テーブルデータは、バレル・ポイントにロードされます

2.1、共通のテーブルを作成します

-------------------------------------------------- ----------------

ハイブ(db_test)> CREATE TABLEのstu_comm(ID int型、名前の文字列)
'\ tの'によって終了>行フォーマット区切られたフィールド。
OK
の時間が取ら:0.181秒

-------------------------------------------------- -------------------

2.2、ローカルデータは、通常のテーブルにロードされます

-------------------------------------------------- -----------------------

ハイブ(db_test)>負荷データのローカルINPATH '/ルート/ hivetest / stu_buck'テーブルstu_commに。
表db_test.stu_comm用にデータをロードする
[numFiles = 1、totalSize = 501]:表db_test.stu_comm統計
OK
時間取ら:0.654秒

ハイブ(db_test)> SELECT * stu_commから、
OK
stu_comm.idのstu_comm.name
1001張
1002 Doeの
1003 Wangwu
1004趙6
1005李チー
1006趙
1007黄夫人
1008梁
1009司馬懿
1010張
1011グアン
1012備
1013曹操
1014曹操
1015パイ
1016 YingZheng
1017漢
1018泉
1019 Shangxiang
1020孫ピン
1021ブリッジ
1022ジョー・
1023ルバニ
1024ガン
から1025白
1026白
1027李新
1028スマーフィット
1029李
1030アーサー
1031 Ahn'Qiraj
1032妲己
1033富栄
1034張苞
1035蘇
1036ドン
1037馬蘇
ヤープ1038
1039 XiaHouYuan
1040黄
時間が取ら:0.081秒、フェッチされた: 40行(複数可)

-------------------------------------------------- ---------------------------

2.3、パーツのキットが提供されるハイブ関連する属性は、データサブ浴槽、処理のMapReduceのために複数のジョブに分割されています

-------------------------------------------------- -----------------

ハイブ(db_test)>設定hive.enforce.bucketing = TRUE。
ハイブ(db_test)>設定mapreduce.job.reduces = 4。
ハイブ(db_test)>設定hive.enforce.bucketing。
hive.enforce.bucketing =真
ハイブ(db_test)>設定mapreduce.job.reduces。
mapreduce.job.reduces = 4

-------------------------------------------------- -------

2.4、表は、ファイル内のデータをロードするためのバケット負荷によって細分バケツすることはできません、あなたはinsert文を介してデータをロードする必要があり、それは、MapReduceのジョブを通じてファイルを分割することです

-------------------------------------------------- --------

ハイブ(db_test)> IDを選択stu_buckテーブルに挿入、stu_commから名前。
クエリID = root_20191003122918_48ead4a6-8f19-4f0a-8298-6a57b467bf47
合計ジョブ= 1回の
発射1からジョブ1
コンパイル時に決定減らすタスクの数:4
(バイト)減速の平均負荷を変更するために:
設定ハイブ。 exec.reducers.bytes.per.reducer = <番号>
:減速の最大数を制限するために
設定hive.exec.reducers.max = <番号>
:減速の一定の数を設定するために
設定さmapreduce.jobを。削減= <番号>
ジョブの開始= job_1570075776894_0001、トラッキングURL =のhttp:// bigdata112:8088 /プロキシ/ application_1570075776894_0001 /
コマンド= /opt/module/hadoop-2.8.4/bin/hadoop仕事-kill job_1570075776894_0001倒す
ステージ-1用のHadoopジョブ情報を:マッパーの数:1; 減速の数:4
2019年10月3日12:29:29888ステージ1地図= 0%低減= 0%
2019年10月3日12:29:38338ステージ1地図= 100%、0%削減します累積CPU 1.7秒で
2019年10月3日12:29:45839ステージ1地図= 100%= 25%、累積CPU 3.17秒減らす
2019年10月3日12:29:47932ステージ1地図= 100%、減少させます= 50%、累積CPU 4.74秒で
2019年10月3日12:29:52077ステージ1地図= 100%= 100%、累積CPU 6.54秒減らす
MapReduceの総累積CPU時間:540ミリ秒、6秒
終了したジョブ= job_1570075776894_0001の
読み込みをテーブルdb_test.stu_buckにデータ
表のdb_test.stu_buck統計:[numFiles = 4、numRowsの数= 40、totalSize = 501、rawDataSize = 461]
のMapReduceジョブの立ち上げ:
ステージステージ1:マップ:1の削減:4累積CPU:6.54秒HDFS読む:15129のHDFSを書きます:793 SUCCESS
合計MapReduceのCPU時間を過ごした:6秒540ミリ秒
OK
id名の
時間が取ら:34.6秒

 

 =================================================

図3に示すように、データポイントテーブルバレルサンプルクエリ

3.1、それぞれ、クエリデータファイル4

-------------------------------------------------- -----------------------------------

//最初のファイルのクエリデータ

ハイブ(db_test)> DFS -cat /db_test.db/stu_buck/000000_0 http://192.168.1.121:50070/;
CAT:HTTP:ファイルシステムの無スキーム
1040黄
1036ドン
1032妲己
1028スマーフィット
1024ガン
1020 SUNビン
1016 YingZheng
1012備
1008梁
1004趙6つの
失敗したとのコマンドの終了コード1 =。
クエリは原因があり、非ZEROコード:. 1を返しました:ヌル

=======================================

// 2番目のファイルの内容を照会

ハイブ(db_test)> DFS -cat /db_test.db/stu_buck/000001_0 http://192.168.1.121:50070/;
CAT:スキームなしファイルシステム:HTTP
1005李チー
1029簡単
1037馬蘇
1017阪神
1001ジョン・ドウ
1033リブー
1009司馬懿
1013曹操
から1025白
1021ブリッジ
失敗したとのコマンドの終了コードを1 =。
クエリは原因があり、非ZEROコード:. 1を返しました:ヌル

===========================================

// 3番目のファイルの内容を照会

ハイブ(db_test)> DFS -cat /db_test.db/stu_buck/000002_0 http://192.168.1.121:50070/;
CAT:ファイルシステムの無スキーム:HTTP
1010飛
1038ヤープ
1022ジョー
1034張苞
1002ジョン・ドウ
1026白
1018泉
1030アーサー
1014曹操
1006趙
失敗したとのコマンドの終了コード1 =。
クエリは、非ZEROコード:. 1を返し、原因は次のとおりです。ヌル

==============================================

//第四ファイルを照会

ハイブ(db_test)> DFS -cat /db_test.db/stu_buck/000003_0 http://192.168.1.121:50070/;
CAT:スキームなしファイルシステム:HTTP
1015パイ
1007黄越-英
1027李新
1023ルバニ
1019 Shangxiang
1003 Wangwu
1011関
1039 XiaHouYuan
1035蘇
1031 Ahn'Qiraj
失敗したとのコマンドの終了コード1 =。
クエリは、非ZEROコード:. 1を返し、原因は次のとおりです。ヌル

================================================== ==

3.2、サンプル照会テーブル2つのデータ点バレル

-------------------------------------------------- -------------------

//クエリファイル1と3のファイルデータの内容

ハイブ(db_test)> SELECT * stu_buckのTABLESAMPLEから(OUTバケットの2 ON 1つのID);
OK
stu_buck.idのstu_buck.name
1040黄
1036ドン
1032妲己
1028スマーフィット
1024ガン
1020孫ピン
1016 YingZheng
1012備
1008リャン
趙6 1004
1010張
1038ヤープ
1022ジョー
1034張苞
1002ジョン・ドウ
1026白
1018泉
1030アーサー
1014ツァオ
1006趙
時間が取ら:0.077秒、フェッチされた: 20行(複数可)

-------------------------------------------------- --------------------

そのコンテンツの//クエリファイルデータファイル2と4

ハイブ(db_test)> SELECT * stu_buckのTABLESAMPLE(OUT ID ONバケット2の2)から、
OK
stu_buck.idのstu_buck.name
1005李チー
1029李
1037馬蘇
1017漢
1001張
1033富栄
1009司馬懿
1013曹操
から1025白い
橋1021
PI 1015
1007黄夫人
1027李新
1023ルバニ
1019 Shangxiang
1003ワング・ウ
1011関
1039 XiaHouYuan
1035蘇
1031 Ahn'Qiraj
時間が取ら:0.097秒、フェッチされた: 20行(複数可)

-------------------------------------------------- -------------------

// バケット。上記数値の2 ON 4の背後ID番号よりも大きくすることができません

ハイブ(db_test)> stu_buckのTABLESAMPLE(SELECT * FROM IDに2のうち、バケット4)。
FAILED:SemanticException [エラー10061]:[分子は、テーブルstu_buck用サンプル句で分母よりも大きくすべきではありません

-------------------------------------------------- --------------------

二、圧縮およびサポートセグメンテーションのハイブ

圧縮フォーマット

ツール

アルゴリズム

ファイル名の拡張子

セグメンテーションかどうか

デフォルト

ノー

デフォルト

.deflate

ノー

Gzipで

GZIP

デフォルト

.gzを

ノー

BZIP2

BZIP2

BZIP2

.bz2

それはあります

LZO-

lzopの

LZO-

.lzo

それはあります

スナッピー

ノー

スナッピー

.snappy

ノー

複数の圧縮/解凍アルゴリズムをサポートするために、Hadoopのエンコーダ/デコーダを導入しました

圧縮フォーマット

対応するエンコーダ/デコーダ

DEFLATE

org.apache.hadoop.io.compress.DefaultCodec

GZIP

org.apache.hadoop.io.compress.GzipCodec

BZIP2

org.apache.hadoop.io.compress.BZip2Codec

LZO-

com.hadoop.compression.lzo.LzopCodec

スナッピー

org.apache.hadoop.io.compress.SnappyCodec

 

 

1、オープンエンドの出力段圧縮マップ(一時的な設定を有効にする)、内部のコンフィギュレーションファイルに永続的に設定する必要があります

-------------------------------------------------- ----------------

1)オープンハイブ中間転写データ圧縮、デフォルトは偽であります

ハイブ(デフォルト)>設定hive.exec.compress.intermediate =はtrue。

2)地図のMapReduce開き、出力の圧縮を、デフォルトはfalseです

ハイブ(デフォルト)>設定mapreduce.map.output.compress =はtrue。

3)圧縮マップ出力データのMapReduceを設定

ハイブ(デフォルト)>設定mapreduce.map.output.compress.codec = org.apache.hadoop.io.compress.SnappyCodec。

-------------------------------------------------- --------------

図2に示すように、出力の圧縮段階の開放端を減らします

-------------------------------------------------- -------

1)ハイブを開き、最終的な出力データ圧縮を、デフォルトはfalseです

ハイブ(デフォルト)> =真hive.exec.compress.output設定します。

2)オープンMapReduceの最終的な出力データ圧縮は、デフォルトではfalseです

ハイブ(デフォルト)>設定mapreduce.output.fileoutputformat.compress =はtrue。

3)最終的なデータ出力の圧縮のMapReduceを設定

ハイブ(デフォルト)>設定mapreduce.output.fileoutputformat.compress.codec = org.apache.hadoop.io.compress.SnappyCodec。

4)設定MapReduceは、最終的な圧縮ブロックとして圧縮データを出力します。

ハイブ(デフォルト)>設定mapreduce.output.fileoutsetのmapreduce.output.fileoutputformat.compress.type = BLOCK;

putformat.compress.type = BLOCK;

================================================== =================

おすすめ

転載: www.cnblogs.com/jeff190812/p/11619581.html