問題タブ [lzo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
601 参照

hadoop - Hadoop は圧縮を透過的に処理しますが、LZO を分割しません

TextInputFormat. _ 残念ながら、LZO 圧縮を使用する場合、Hadoop は LZO インデックス ファイルを使用してファイルを分割可能にしません。ただし、入力形式を に設定するcom.hadoop.mapreduce.LzoTextInputFormatと、ファイルが分割されます。

使用時に LZO ファイルを解凍して分割するように Hadoop を構成することはできますTextInputFormatか?

0 投票する
1 に答える
4982 参照

hadoop - map reduce なしで lzo 圧縮を使用して Hadoop hdfs に書き込む方法

Hadoop hdfs に書き込んでいます。ファイルは lzo を使用して圧縮する必要があります。また、ファイルはリアルタイムで追加されます。

ソース ファイルは、hadoop には存在しない gzip ファイルです。バッチはこの gzip ファイルを処理してから、lzo 圧縮を行い、hadoop に追加します。これにより、 map reduce を使用する可能性がなくなりますか?

どうすればこれを達成できますか?

助けてくれてありがとう

0 投票する
1 に答える
5550 参照

hadoop - Hive にデータを効率的に格納する

データを Hive に効率的に保存し、圧縮されたデータを Hive に保存および取得するにはどうすればよいですか? 現在、私はそれをTextFileとして保存しています。私はBejoy の記事を読んでいましたが、LZO 圧縮はファイルの保存に適していて、分割可能であることがわかりました。

出力を生成するHiveQL Selectクエリが1つあり、その出力をどこかに保存して、Hiveテーブル(品質)の1つがそのデータを使用できるようにして、そのqualityテーブルをクエリできるようにします。

以下は、qualityテーブルを上書きするために使用しているパーティションを作成して、以下の SELECT クエリからデータをロードしているテーブルqualityです。

ここでは、現在 として保存していますがTextFile、これを として作成Sequence fileし、データを に保存する必要がありLZO compression formatますか? それともテキストファイルでもいいですか?選択クエリから、毎日テーブル品質にアップロードする必要がある数 GB のデータを取得します。

では、どの方法が最適ですか?出力を TextFile または SequenceFile 形式 (LZO 圧縮) として保存して、Hive 品質テーブルを照会しているときに結果をより速く取得できるようにする必要があります。クエリが高速であることを意味します。

アップデート:-

ブロック圧縮を使用して SequenceFile として保存するとどうなりますか? 以下のように-

上記とは別に、BLOCK Compression を有効にするには、他にいくつか設定する必要がありますか? また、テーブルを SequenceFile 形式で作成しています

再更新

以下のようなテーブルを作成する必要がありますか?または、Sequence File で BLOCK 圧縮を有効にするには、他の変更を加える必要がありますか?

0 投票する
2 に答える
17454 参照

hadoop - Hiveで拡張テーブルを説明する

テーブルをSequenceFile形式で保存しており、BLOCK圧縮でSequenceを有効にするために以下のコマンドを設定しています-

しかし、私がこのようなテーブルを見ようとしたとき-

compressedとして設定されているというフィールドがあるという情報を以下に取得しましたfalse。つまり、上記の3つのコマンドを設定しても、データが圧縮されないということですか?

0 投票する
1 に答える
3040 参照

amazon-web-services - s3 からハイブへの圧縮 (lzo) データのインポート

バックアップの手段として (EMR 経由で) DynamoDB テーブルを s3 にエクスポートします。エクスポートするときは、データを lzo 圧縮ファイルとして保存します。私のハイブ クエリは以下のとおりですが、基本的にはhttp://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/EMR_Hive_Commands.htmlの「データ圧縮を使用して Amazon DynamoDB テーブルを Amazon S3 バケットにエクスポートするには」に従いました。

逆のことをしたいのですが、LZOファイルを取得して、それらをハイブテーブルに戻します。これどうやってやるの?入力用のハイブ構成プロパティが表示されることを期待していましたが、ありません。私はググっていくつかのヒントを見つけましたが、決定的なものも機能するものもありません。

s3 のファイルの形式は次のとおりです: s3://[mybucket]/backup/year=2012/month=08/day=01/000000.lzo

エクスポートを行う HQL は次のとおりです。

s3から取得し、解凍して、ハイブテーブルに入れる方法はありますか??

0 投票する
1 に答える
2554 参照

hadoop - ログのSnappyまたはLZOは、Hadoopによって消費されます

大量のサービスを提供しています。イベントをログに記録します。数分ごとに、gzipを使用してログを圧縮し、S3にローテーションします。そこから、AmazonのHadoop(elastic mapreduce)を使用してHive経由でログを処理します。

現在、サーバーでは、ログを圧縮してローテーションすると、数分ごとにCPUスパイクが発生します。このCPUスパイクを減らすために、gzipからlzoまたはsnappyに切り替えたいと考えています。私たちはCPUにバインドされたサービスであるため、ローテーション時に消費されるCPUを減らすために、より大きなログファイルを交換する用意があります。

私はLZOとSnappy(別名zippy)についてたくさん読んでいます。LZOの利点の1つは、HDFSで分割できることです。ただし、ファイルはGzipで最大15 MB圧縮されているため、HDFSで最大64 MBのデフォルトのブロックサイズになるとは思わないので、これは問題ではありません。たとえそうだったとしても、デフォルトを128MBまで上げることができるはずです。

今のところ、少し速く/リソースをあまり消費しないように見えるので、スナッピーを試してみたいと思います。どちらもAmazonのyumリポジトリに含まれていないようです。そのため、とにかくカスタムインストール/ビルドする必要があります。エンジニアリング時間のトレードオフはそれほど多くありません。LZOライセンスについていくつかの懸念を聞いたことがありますが、コードに近づかない場合は、サーバーにインストールするだけだと思います。

だから、私はどちらを選ぶべきですか?Hadoopでは一方が他方よりもパフォーマンスが向上しますか?誰かがどちらかの実装でこれを行い、共有できる問題がありますか?

0 投票する
2 に答える
1194 参照

python - Hadoop ストリーミングでエレファント バード入力形式を使用するとエラーが発生する

Hadoop ストリーミング スクリプトでElephant Birdの入力形式を使用しようとしています。特に、LzoInputFormat を使用し、最終的には LzoJsonInputFormat (ここでは Twitter データを操作します) を使用したいと考えています。しかし、これを実行しようとすると、Elephant Bird 形式が InputFormat クラスの有効なインスタンスではないことを示すエラーが表示され続けます。

これは、ストリーミング コマンドを実行する方法です。

そして、これは私が得るエラーです:

0 投票する
1 に答える
2079 参照

hadoop - Hadoop:同じジョブで異なるフォーマットタイプを出力する方法は?

gzip1つのジョブで出力とlzoフォーマットを同時に行いたい。

私はを使用MultipleOutputsし、次のような2つの名前付き出力を追加しました。

MultipleOutputs.addNamedOutput(job, "LzoOutput", GBKTextOutputFormat.class, Text.class, Text.class);

GBKTextOutputFormat.setOutputCompressorClass(job, LzoCodec.class);

MultipleOutputs.addNamedOutput(job, "GzOutput", TextOutputFormat.class, Text.class, Text.class);

TextOutputFormat.setOutputCompressorClass(job, GzipCodec.class);

GBKTextOutputFormatここは自分で書いたもので、拡張されていますFileOutputFormat

それらは次のようなレデューサーで使用されます:

multipleOutputs.write("LzoOutput", NullWritable.get(), value, "/user/hadoop/lzo/"+key.toString());

multipleOutputs.write("GzOutput", NullWritable.get(), value, "/user/hadoop/gzip/"+key.toString());

結果は次のとおりです。

2つのパスで出力を取得できますが、どちらもgzipフォーマットです。

誰かが私を助けることができますか?ありがとう!

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

もっと:

setOutputCompressorClassのソースコードを見たところFileOutputFormatconf.setClass("mapred.output.compression.codec", codecClass, CompressionCodec.class);

setOutputCompressorClassが呼び出されると、構成内のmapred.output.compression.codecがリセットされるようです。

したがって、実際の圧縮形式は最後に設定したものであり、同じジョブで2つの異なる圧縮形式を設定することはできませんか?または他に無視されているものがありますか?

0 投票する
1 に答える
2528 参照

amazon-s3 - AWS EMR の Hadoop 出力で LZO を使用する場合、将来の自動分割のために (S3 に保存された) ファイルにインデックスを付けますか?

S3 に保存されている Elastic Map Reduce ジョブの出力で LZO 圧縮を使用したいのですが、ファイルが自動的にインデックス化され、このデータで将来のジョブが実行されるとファイルが複数のタスクに分割されるかどうかは明確ではありません。

たとえば、私の出力が 1 GB の LZO ファイル内の TSV データの行の束である場合、将来のマップ ジョブは 1 つのタスク、または (1 GB/ブロック サイズ) タスクのようなもの (つまり、ファイルが圧縮されていないときの動作) のみを作成します。 、またはディレクトリに LZO インデックス ファイルがあった場合)?

編集:これが自動的に行われない場合、出力に LZO インデックスを付けるには何が推奨されますか? ファイルを S3 にアップロードするにインデックスを作成しますか?

0 投票する
1 に答える
897 参照

python - PythonでLZFまたはLZOフィルタを使用してHDF5ファイルを圧縮するには?

私の hdf5 ファイルには、ArrayA(30,100,100)、ArrayB(100,100)、ArrayC(100,100) の 3 つの配列が含まれています。LZF または LZO フィルターを使用してそれらを圧縮するにはどうすればよいですか?