問題タブ [bzip2]
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.
xml - 圧縮された bz2 (bzip2) ウィキペディアのダンプをストリーム xml レコード リーダーに読み込んで、hadoop マップを減らす方法
Hadoop Map Reduce を使用してウィキペディアのデータ ダンプ (bz2 形式で圧縮) を調査しています。これらのダンプは非常に大きい (5 T) ため、xml データを HDFS に解凍できず、hadoop が提供する StreamXmlRecordReader を使用するだけです。Hadoop は bz2 ファイルの解凍をサポートしていますが、ページを任意に分割してマッパーに送信します。これは xml であるため、分割をタグにする必要があります。組み込みの bz2 解凍と、hadoop が提供するストリーム xml レコード リーダーを一緒に使用する方法はありますか?
linux - Bz2ディレクトリ内のすべてのファイル
私はcentosを実行しており、フォルダー内に約1,300個のファイルがあり、それぞれを個別にbzipする必要があります。これを渡す最も簡単な方法は何でしょうか?
ruby - ruby-bzipファイル
ルビーでファイルを圧縮したい。たとえば、私はファイルを持っています:
これらのファイルをに圧縮したいbase.bz
どうすればルビーでそれを行うことができますか?
unix - 複数のbz2アーカイブを1つに結合することは可能ですか?
1つのbz2アーカイブに結合する必要があるいくつかの(27)巨大な(それぞれ数GBの)bz2アーカイブファイルがあります。それらを解凍してから、解凍したばかりのファイルから新しいアーカイブを作成することは私には選択肢ではありません。圧縮されているため、27個のファイルすべてが合計で約100 GBになり、圧縮解除すると約5〜6 TBになります(そうです、TERAbytes lol)。
これはある種のスクリプトで実行できますか、それともこれを(より簡単に)実行できる別の圧縮形式がありますか?
linux - 中間ファイルを作成せずに、コンソール データ、tar および gzip/bzip2 を効率的に転送
Linux 環境。このプログラム 't_show' は、ID を指定して実行すると、その ID の価格データをコンソールに書き込みます。このデータを取得する他の方法はありません。
ID 1 ~ 10,000 の価格データを 2 つのサーバー間で、最小帯域幅、最小接続数を使用してコピーする必要があります。宛先サーバーでは、データは次の形式の ID ごとに個別のファイルになります。
このようなものは、長ったらしい解決策になります。
宛先:
ソース:
つまり、各出力を独自のファイルに書き込み、圧縮して tar し、ネットワーク経由で送信し、抽出します。
IDごとに新しいファイルを作成する必要があるという問題があります。これは大量のスペースを占有し、うまく拡張できません。
中間ファイルを作成せずに、コンソール出力を (圧縮された) tar アーカイブに直接書き込むことはできますか? より良いアイデアはありますか (圧縮データをネットワーク経由で直接書き込み、tar をスキップするなど)?
tar アーカイブは、先に述べたように、宛先サーバーで ID ごとに個別のファイルとして抽出する必要があります。
時間を割いて助けてくれた人に感謝します。
stream - ストリームを圧縮する機能は、圧縮アルゴリズムにどのように影響しますか?
最近、期限切れになりそうな大学のホームディレクトリを、tarストリームとして送信し、自分の側で圧縮することでバックアップしましたssh user@host "tar cf - my_dir/" | bzip2 > uni_backup.tar.bz2
。
これは私に考えさせられました:私は圧縮がどのように機能するかの基本を知っているだけですが、アルゴリズムがデータのブロックの処理をある時点で終了する必要があるため、データのストリームを圧縮するこの機能は圧縮率の低下につながると思います、これを書いてください出力ストリームに移動し、次のブロックに進みます。
これは本当ですか?または、これらのプログラムは単に大量のデータをメモリに読み込んで圧縮し、書き込んでから、もう一度やり直しますか?または、これらの「ストリームコンプレッサー」で使用される巧妙なトリックはありますか?bzip2とxzの両方のmanページでメモリ使用量について説明されていることがわかります。また、man bzip2は、圧縮するデータをブロックに分割してもほとんど失われないという事実を示唆しています。
ブロックサイズが大きくなると、限界リターンが急速に減少します。圧縮の大部分は、ブロックサイズの最初の200または300 kから発生します。これは、小型のマシンでbzip2を使用する場合に留意する価値のある事実です。解凍メモリの要件は、ブロックサイズの選択によって圧縮時に設定されることを理解することも重要です。
他のトリックが使用されているかどうか、またはこれについてもっと読むことができる場所については、まだ聞きたいです。
c++ - Windows で gzip および bzip2 をサポートするブースト iostream を構築する方法
とサポートを使用してboost
のiostreams
ライブラリを構築するにはどうすればよいですか?gzip
bzip2
c++ - Linux上のC++でデータをbzip2にパイプし、そのstdoutから結果のデータを取得するにはどうすればよいですか?
Linux用のライブラリで作業を開始することを検討しています。このライブラリは、ファイルがアーカイブに保存され、アーカイブ内の各ファイルが個別に圧縮されるため、単一のファイルの取得が非常に簡単になるように、アプリケーション開発者に仮想ファイルシステムを提供します。開発者、CPU、およびハードドライブにとっての簡単なタスク。(複雑なAPIはなく、データのギグを解凍する必要はありません。関連するデータのみを取得し、アーカイブ全体ではなく、関連するデータのみを取得します)
ここLinuxでC++を使用する前に、popenを使用してコマンドのstdoutを取得しましたが、データをパイプインおよび取得する方法がわかりません。bzip2固有のヒントがあれば便利です。私はこの数年前に似たようなものを書きましたが、データをパイプして標準ツールを使用するのではなく、dllとしてハフマン圧縮ライブラリが含まれていました。(それは私のWindowsの時代に戻った。)
python - Python BZ2 Compressor - compress() が何も返さない
pythons bz2compressor クラスを使用してデータ ストリームを圧縮しようとしています。
ドキュメントにはbz2compressor.compress()
、「可能な限り」圧縮データのチャンクを返す必要があると書かれていますが、何も得られません
flush()
(2GB以上のファイルで試しましたが)まだ何もないときに、すべての圧縮データを取得します。
データを返す必要があるときに内部バッファ制限を設定する方法はありますか?
ありがとう!