問題タブ [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.
hadoop - Hadoop は圧縮を透過的に処理しますが、LZO を分割しません
TextInputFormat
. _ 残念ながら、LZO 圧縮を使用する場合、Hadoop は LZO インデックス ファイルを使用してファイルを分割可能にしません。ただし、入力形式を に設定するcom.hadoop.mapreduce.LzoTextInputFormat
と、ファイルが分割されます。
使用時に LZO ファイルを解凍して分割するように Hadoop を構成することはできますTextInputFormat
か?
hadoop - map reduce なしで lzo 圧縮を使用して Hadoop hdfs に書き込む方法
Hadoop hdfs に書き込んでいます。ファイルは lzo を使用して圧縮する必要があります。また、ファイルはリアルタイムで追加されます。
ソース ファイルは、hadoop には存在しない gzip ファイルです。バッチはこの gzip ファイルを処理してから、lzo 圧縮を行い、hadoop に追加します。これにより、 map reduce を使用する可能性がなくなりますか?
どうすればこれを達成できますか?
助けてくれてありがとう
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 圧縮を有効にするには、他の変更を加える必要がありますか?
hadoop - Hiveで拡張テーブルを説明する
テーブルをSequenceFile形式で保存しており、BLOCK圧縮でSequenceを有効にするために以下のコマンドを設定しています-
しかし、私がこのようなテーブルを見ようとしたとき-
compressed
として設定されているというフィールドがあるという情報を以下に取得しましたfalse
。つまり、上記の3つのコマンドを設定しても、データが圧縮されないということですか?
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から取得し、解凍して、ハイブテーブルに入れる方法はありますか??
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では一方が他方よりもパフォーマンスが向上しますか?誰かがどちらかの実装でこれを行い、共有できる問題がありますか?
python - Hadoop ストリーミングでエレファント バード入力形式を使用するとエラーが発生する
Hadoop ストリーミング スクリプトでElephant Birdの入力形式を使用しようとしています。特に、LzoInputFormat を使用し、最終的には LzoJsonInputFormat (ここでは Twitter データを操作します) を使用したいと考えています。しかし、これを実行しようとすると、Elephant Bird 形式が InputFormat クラスの有効なインスタンスではないことを示すエラーが表示され続けます。
これは、ストリーミング コマンドを実行する方法です。
そして、これは私が得るエラーです:
hadoop - Hadoop:同じジョブで異なるフォーマットタイプを出力する方法は?
gzip
1つのジョブで出力と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
のソースコードを見たところFileOutputFormat
、conf.setClass("mapred.output.compression.codec", codecClass, CompressionCodec.class);
setOutputCompressorClassが呼び出されると、構成内のmapred.output.compression.codecがリセットされるようです。
したがって、実際の圧縮形式は最後に設定したものであり、同じジョブで2つの異なる圧縮形式を設定することはできませんか?または他に無視されているものがありますか?
amazon-s3 - AWS EMR の Hadoop 出力で LZO を使用する場合、将来の自動分割のために (S3 に保存された) ファイルにインデックスを付けますか?
S3 に保存されている Elastic Map Reduce ジョブの出力で LZO 圧縮を使用したいのですが、ファイルが自動的にインデックス化され、このデータで将来のジョブが実行されるとファイルが複数のタスクに分割されるかどうかは明確ではありません。
たとえば、私の出力が 1 GB の LZO ファイル内の TSV データの行の束である場合、将来のマップ ジョブは 1 つのタスク、または (1 GB/ブロック サイズ) タスクのようなもの (つまり、ファイルが圧縮されていないときの動作) のみを作成します。 、またはディレクトリに LZO インデックス ファイルがあった場合)?
編集:これが自動的に行われない場合、出力に LZO インデックスを付けるには何が推奨されますか? ファイルを S3 にアップロードする前にインデックスを作成しますか?
python - PythonでLZFまたはLZOフィルタを使用してHDF5ファイルを圧縮するには?
私の hdf5 ファイルには、ArrayA(30,100,100)、ArrayB(100,100)、ArrayC(100,100) の 3 つの配列が含まれています。LZF または LZO フィルターを使用してそれらを圧縮するにはどうすればよいですか?