問題タブ [snappy]
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.
compression - 最速の解凍アルゴリズム?
Google snappy は高速な解凍/圧縮ライブラリだと聞きました。
Snappy ライブラリはアルゴリズムとして何を使用していますか?
解凍がより高速なアルゴリズムはありますか?
圧縮率とエンコーディングには関心がありませんが、リアルタイムの解凍には関心があります。
よろしくお願いします!
php - ラテン文字をphp配列に保存し、ブラウザに正しく出力してからPDFに出力します
次のような翻訳準備を行ったフランス語の文章 (ラテン語) を格納する php 配列があります。
__( は、将来の翻訳のためにここにあります。基本言語はフランス語です。
Snappy を使用してテキストを PDF に出力すると、é のような奇妙な utf8 エンコード文字が表示されます
次に追加しました
出力する前にテキストに追加すると、はるかに良くなります。しかし、いくつかの文字はまだ読めないままです
に変換
翻訳可能なテキストを保存する方法と、それを正しく出力する方法を理解するのを手伝ってもらえますか? 配列に格納する前にエンコードする必要がありますか?
どうもありがとうございました
hive - ハイテーブルでの圧縮の設定
avro スキーマに基づくハイブ テーブルがあります。テーブルは次のクエリで作成されました
CREATE EXTERNAL TABLE datatbl
PARTITIONED BY (date String, int time)
ROW FORMAT SERDE
'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
WITH SERDEPROPERTIES (
'avro.schema.url'='path to schema file on HDFS')
STORED as INPUTFORMAT
'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
LOCATION '<path on hdfs>'
これまで、次のプロパティを設定してテーブルにデータを挿入してきました
hive> set hive.exec.compress.output=true;
hive> set avro.output.codec=snappy;
ただし、誰かが上記の 2 つのプロパティを設定するのを忘れた場合、圧縮は達成されません。上記の2つのプロパティが設定されていなくても、データが常に圧縮されるように、テーブル自体に圧縮を適用する方法があるかどうか疑問に思っていましたか?
apache-spark - Spark でスナッピー データを入力する
Spark でスナッピー データを読み込もうとしていますが、spark-shell では次のように失敗します。
私はどこにでもスナッピーな参照を含めようとしました:
- LD_LIBRARY_PATH
- JAVA_LIBRARY_PATH
- SPARK_LIBRARY_PATH これらを spark-env.sh に含めることによって
java - ストリームからバイト配列を安全に解析するための最適な区切り文字
それぞれが 1 つのレコードを表す一連のバイト配列を返すバイト ストリームがあります。
ストリームを個々のバイト [] のリストに解析したいと思います。現在、各レコードの終わりを識別できるように 3 バイトの区切り文字をハッキングしていますが、懸念があります。
標準の Ascii レコード区切り文字があることがわかりました。
バイト配列 (UTF-8 でエンコードされた) が圧縮および/または暗号化されている場合、この文字から派生した byte[] を区切り文字として使用しても安全ですか? 私の懸念は、暗号化/圧縮出力が他の目的でレコードセパレーターを生成する可能性があることです。ストリーム全体ではなく、個々の byte[] レコードが圧縮/暗号化されることに注意してください。
私はJava 8で作業しており、圧縮にSnappyを使用しています。私はまだ暗号化ライブラリを選択していませんが、確かに強力で標準的な秘密鍵アプローチの 1 つです。
hadoop - Parquet ファイルのクエリが Hive のテキスト ファイルよりも遅いのはなぜですか?
ハイブ テーブルのストレージ形式として Parquet を使用することにし、実際にクラスターに実装する前に、いくつかのテストを実行することにしました。驚いたことに、Parquet はプレーン テキスト ファイルよりも高速であるという一般的な概念とは対照的に、私のテストでは低速でした。
MapRでHive-0.13を使用していることに注意してください
- Operation1: 行カウント操作
- 操作 2: 単一行の選択
- 操作 3: Where 句を使用した複数行の選択 [1000 行をフェッチ]
- 操作 4: 複数行の選択 [4 列のみ] Where 句を使用 [1000 行を取得]
- 操作5: 集計操作 [特定の列で sum 関数を使用]
両方のテーブルに適用したほぼすべての操作で、行カウント操作を除いて、クエリの実行にかかる時間の点で Parquet が遅れていることがわかります。
また、テーブル C を使用して前述の操作を実行しましたが、結果は TextFile 形式とほぼ同様の行にあり、2 つのうちでより鮮明でした。
誰かが私が間違っていることを教えてもらえますか?
ありがとう!
編集
ストレージ形式のリストに ORC を追加し、テストを再度実行しました。詳細に従います。
行カウント操作
テキスト形式累積 CPU - 123.33 秒
Parquet 形式の累積 CPU - 204.92 秒
ORC フォーマット累積 CPU - 119.99 秒
ORC with SNAPPY 累積 CPU - 107.05 秒
列演算の合計
テキスト形式累積 CPU - 127.85 秒
Parquet フォーマット累積 CPU - 255.2 秒
ORC フォーマット累積 CPU - 120.48 秒
ORC with SNAPPY 累積 CPU - 98.27 秒
列操作の平均
テキスト形式累積 CPU - 128.79 秒
Parquet 形式の累積 CPU - 211.73 秒
ORC フォーマット累積 CPU - 165.5 秒
ORC with SNAPPY 累積 CPU - 135.45 秒
where句を使用して特定の範囲から4列を選択する
テキスト形式累積 CPU - 72.48 秒
Parquet 形式の累積 CPU - 136.4 秒
ORC フォーマット累積 CPU - 96.63 秒
ORC with SNAPPY 累積 CPU - 82.05 秒
それは ORC が Parquet よりも速いということですか? または、クエリの応答時間と圧縮率を改善するためにできることはありますか?
ありがとう!