個人財務 Hadoopのデータを圧縮する - ダミー

Hadoopのデータを圧縮する - ダミー

ビデオ: How do I use S3DistCp? 2024

ビデオ: How do I use S3DistCp? 2024
Anonim

Hadoopの典型的な展開で現実の膨大なデータ量が圧縮を必要とします。データ圧縮により、大量のストレージスペースが節約され、クラスタ全体でそのデータの移動がスピードアップされます。驚くことではありませんが、コーデックと呼ばれるいくつかの圧縮方式があります。

Hadoopデプロイメントでは、非常に多数の個々のスレーブノードを処理しています(それぞれに多数の大容量ディスクドライブがあります)。個々のスレーブノードがHDFS用に使用可能な45TB以上のRAWストレージスペースを持つことは珍しいことではありません。

<! Hadoopスレーブノードは安価に設計されていますが、フリーではなく、増加する速度で成長する傾向のある大量のデータでは、圧縮は極端なデータ量。最初に、いくつかの基本的な用語:A9999コーデック、短縮された形式の圧縮器である999は、技術(ソフトウェアまたはハードウェア、またはデータの圧縮および解凍の両方を行う。それは圧縮/解凍アルゴリズムの実装です。

<!いくつかのコーデックはスプリット可能な圧縮と呼ばれるものをサポートしていること、またコーデックはデータの圧縮と解凍の速度と圧縮の程度が異なることを知っておく必要があります。

分割可能な圧縮 は、Hadoopコンテキストでは重要な概念です。 Hadoopの仕組みは、ファイルのブロックサイズ設定より大きい場合にファイルを分割し、個々のファイル分割を異なるマッパーで並行して処理できることです。 <!ほとんどのコーデックでは、テキストファイルの分割は、同じファイルからの他の分割とは独立して圧縮解除できないため、これらのコーデックはスプリット可能ではないと言われているため、MapReduceの処理は単一のマッパーに限定されています。 ファイルはスプリットに基づいて個々の部分ではなく、全体としてのみ解凍できるため、そのようなファイルの並列処理は不可能であり、ジョブが単一のマッパーを待つため、パフォーマンスが大幅に低下する可能性があります。独立して解凍することができない複数のデータブロックを処理する。 スプリット可能な圧縮は、テキストファイルの要素にすぎません。バイナリファイルの場合、Hadoop圧縮コーデックはファイルの種類(SequenceFile、Avro、ProtocolBufferなど)に応じて、バイナリエンコードされたコンテナ内のデータを圧縮します。 パフォーマンスと言えば、Hadoopクラスタに書き込まれているデータを圧縮することに関連するコスト(処理リソースと時間の点で)があります。 コンピュータでは、人生と同じように、何も無料ではありません。データを圧縮するときは、ディスク領域の処理サイクルを交換しています。また、そのデータが読み込まれているときには、データの解凍に関連するコストもかかります。追加のパフォーマンスオーバーヘッドに対してストレージの節約のメリットを考慮に入れてください。

MapReduceジョブへの入力ファイルに圧縮データが含まれている場合、そのデータをHDFSから読み取るために必要な時間が短縮され、ジョブのパフォーマンスが向上します。入力データはMapReduceで読み取られると自動的に解凍されます。

入力ファイル拡張子は、サポートされているコーデックがデータの自動解凍に使用されるかどうかを決定します。たとえば、a。 gz拡張子は、ファイルをgzip圧縮ファイルとして識別します。また、MapReduce処理フローにおいて、マップフェーズの中間出力を圧縮することも有用である。マップ関数の出力はディスクに書き込まれ、ネットワーク経由で削減タスクに送信されるため、出力を圧縮するとパフォーマンスが大幅に向上します。

将来の使用のためにMapReduceの出力を履歴ファイルとして保存する場合、このデータを圧縮するとHDFSの必要なスペースが大幅に削減されます。多くの異なる圧縮アルゴリズムおよびツールが存在し、それらの特性および強さは様々である。最も一般的なトレードオフは、圧縮率(ファイルが圧縮される度合い)と圧縮/復元速度の間のトレードオフです。 Hadoopフレームワークはいくつかのコーデックをサポートしています。フレームワークは、ほとんどの入力および出力ファイル形式を透過的に圧縮および解凍します。 次のリストは、Hadoopフレームワークでサポートされている一般的なコーデックを示しています。特定のユースケースの要求に最も近いコーデックを選択してください(たとえば、処理速度が重要なワークロードでは、高圧縮率のコーデックが選択されています)。

Gzip:

A compression GNUプロジェクトで採用されたユーティリティであるGzip(GNU zipの略)は、圧縮されたファイルを生成します。 gz拡張子。 gunzipコマンドを使用して、Gzipを含むいくつかの圧縮ユーティリティで作成されたファイルを解凍することができます。

Bzip2:

ユーザビリティの観点から、Bzip2とGzipは似ています。 Bzip2はGzipよりも優れた圧縮率を生成しますが、はるかに遅いです。実際、Hadoopで使用できるすべての圧縮コーデックのうち、Bzip2ははるかに遅いです。

クエリをほとんど必要としないアーカイブを設定していて、スペースに高いプレミアがある場合は、おそらくBzip2を検討する価値があります。

スナッピー:

Googleのスナッピーコーデックは、適度な圧縮率を提供しますが、速い圧縮率と圧縮解除速度を提供します。 (実際には、最も高速な解凍速度を持つため、頻繁に照会される可能性が高いデータセットにとっては非常に望ましい)。

Snappyコーデックは、他のHadoopサブプロジェクトをサポートする一般的なユーティリティのセットであるHadoop Common 。 Snappyは、Snappyコーデックをサポートしていない最新バージョンのHadoopのアドオンとして使用できます。

LZO:

Snappyと同様に、LZO(Lempel-Ziv-Oberhumerの略語、コンピュータ・サイエンスのトリオでアルゴリズムを思いついた人)は、適度な圧縮率を提供しますが、速い圧縮と解凍の速度を提供します。 LZOはGNU Public License(GPL)の下でライセンスされています。

LZOは分割可能な圧縮をサポートしており、MapReduceジョブによる圧縮テキストファイル分割の並列処理が可能です。可変長圧縮ブロックでは、圧縮ファイルを安全に分割できるマッパーに指示するための索引が必要であるため、LZOはファイルを圧縮するときに索引を作成する必要があります。 LZOは、テキストファイルを圧縮する必要がある場合にのみ、本当に望ましいものです。

Hadoopコーデック

  • コーデック ファイル拡張子

  • 分割可能? 圧縮度

    圧縮速度

  • Gzip 。 gz 999なし999中999 Bzip 2 999。 bz2

    はい

  • 遅い

    スナッピー

。スナッピー

Hadoopのデータを圧縮する - ダミー

エディタの選択

自転車の点検チェックリスト - ダミー

自転車の点検チェックリスト - ダミー

すぐに自転車の点検をするために数分。あなたの自転車を一時的に与えることは、あなたの次の乗り心地の安全性、快適性、そして楽しさを高めることができます。乗車準備の一環として、次の手順に従ってください:車輪のクイックリリースレバーを開閉して、確認します。

必須サイクリング用具 - ダミー

必須サイクリング用具 - ダミー

あなたはバイクの乗り心地をさらに楽しくするために何百万ものものを買うことができます。自転車用に必要なアクセサリーをいくつかご紹介します。ヘルメット:ヘルメットを着用することはオーストラリアとニュージーランドの法律です。

自転車の範囲を閲覧可能 - ダミー

自転車の範囲を閲覧可能 - ダミー

あなたはサイクリングをすることに決めましたが、その重要なキットを欠いている - バイク!あなたが望む自転車のタイプを正確に知っていない限り、良いアドバイスは、あなたの時間を費やして、自転車で何をするのか、どこに乗るのかを本当に考えてみることです。

エディタの選択

アプリとプライバシー - ダミーを特定する

アプリとプライバシー - ダミーを特定する

Spotifyアプリケーションに登録すると、あなたの個人的な詳細の一部にアクセスする。たとえば、Top10アプリを使用してプレイリストを公開するには、既存のFacebookアカウントにリンクする必要があります。このプロセス中、Facebookはあなたに特定の種類の共有を許可するかどうか尋ねます。

モバイル対応携帯電話を識別する - ダミー

モバイル対応携帯電話を識別する - ダミー

SpotifyモバイルはiPhoneで最も人気がありますが、優れたAndroidバージョン(basks Androidマーケットの5つ星評価のうち5つの評価では5位に入っています)が急速に追いついています。

特集 - ダミー

特集 - ダミー

スポットメイキングは、モバイルでも、あらゆる音楽への普遍的な即時アクセスを可能にしますデバイスまたはデスクトップコンピュータ。 Facebookは人々が古い友達と再会して新しい友達を作るのを助け、Spotifyの助けを借りて青春の歌を再発見し、友人や検索を通じて新鮮な音楽を発見しました。

エディタの選択

IOSアプリケーションでオブジェクト指向設計を使用する方法 - ダミー

IOSアプリケーションでオブジェクト指向設計を使用する方法 - ダミー

IOSは、動作がオブジェクトに関連付けられているプログラムを設計するさまざまな方法です。説明するために、紅茶とスープの作り方を検討することを検討してください。しかし、即座に代わりに活動に飛び込んではいけません。探偵が犯罪現場に入るように行動してください。

IOSアプリケーションでハイレベル抽象化を使用してビデオを再生する方法 - ダミー

IOSアプリケーションでハイレベル抽象化を使用してビデオを再生する方法 - ダミー

このセクションでは、MPMoviePlayerViewControllerクラスの高レベル抽象化を使用してiOSアプリケーションでビデオを再生する方法を説明します。 - (IBAction)playVideo:(id)sender {MPMoviePlayerViewController * moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:movieURL];このコードは、ビデオビューコントローラ内のTTTVideoViewControllerファイルからです。 [self presentMoviePlayerViewControllerAnimated:moviePlayer];}シンプルさ自体!必要なのはURLです。

IOSアプリケーションでJavaスクリプトオブジェクト表記を使用する方法 - ダミー

IOSアプリケーションでJavaスクリプトオブジェクト表記を使用する方法 - ダミー

JavaScript Object Notation (JSON)はiOSアプリのデータを表現する上で事実上の標準になっています。 JSONを使用して、Web上でデータを転送したり、長期保存データを保存および取得するためのフォーマットとして使用することができます。 JSONは、人間が読める形式であり、マシンが理解しやすい形式です。 JSONのデータは1つにまとめることができます...

高速 LZO 。すべての圧縮アルゴリズムは、圧縮の程度とそれらが達成できる圧縮の速度との間のトレードオフを行わなければならない。リストされているコーデックでは、圧縮時と圧縮時のバランスが圧縮時にどのようになるかを制御できます。
たとえば、Gzipでは、負の整数(またはキーワード)を指定して圧縮の速度を調整できます。-1は最も速い圧縮レベルを示し、-9は最も遅い圧縮レベルを示します。デフォルトの圧縮レベルは-6です。