目次:
ビッグデータは…まあ…サイズが大きい! ビッグデータとして分類できるデータの正確な量はあまり明確ではないため、その議論で行き詰まってしまわないようにしましょう。 ギガバイト単位のデータを扱うことに慣れている小さな会社の場合、10 TBのデータが大きいでしょう。 ただし、FacebookやYahooなどの企業にとっては、ペタバイトが大きい。
ビッグデータのサイズだけで、データベースや従来のファイラーなどの従来のストレージに保存することは不可能になります(少なくともコストがかかりすぎます)。 ギガバイトのデータを保存するコストについて話している。 従来のストレージファイラーを使用すると、ビッグデータを保存するのに多大な費用がかかる可能性があります。
ここでは、ビッグデータ、その課題、およびHadoopがそれらを解決する方法を見ていきます。 まず、ビッグデータの最大の課題。
ビッグデータは非構造化または半構造化されています
多くのビッグデータは構造化されていません。 たとえば、クリックストリームログデータは次のようになります。
タイムスタンプ、user_id、ページ、referrer_page
構造が不足しているため、リレーショナルデータベースはビッグデータの格納にあまり適していません。 さらに、数十億行のデータの保存に対応できるデータベースは多くありません。
ビッグデータを処理できなければ、それを保存しても意味がありません
ビッグデータの保存はゲームの一部です。 インテリジェンスをマイニングするために処理する必要があります。 従来のストレージシステムは、ビットを格納するという意味でかなり「ダム」です。 それらは処理能力を提供しません。
従来のデータ処理モデルでは、ストレージクラスターにデータが保存されており、処理のために計算クラスターにコピーされます。 結果はストレージクラスターに書き戻されます。
ただし、このモデルは、大量のデータを計算クラスターにコピーするのに時間がかかりすぎたり、不可能だったりする可能性があるため、ビッグデータではまったく機能しません。 それで答えは何ですか?
1つの解決策は、コンピューティングクラスターを兼ねるストレージクラスターなど、ビッグデータを所定の場所で処理することです。
したがって、上で見たように、ビッグデータは従来のストレージを無視します。 それでは、ビッグデータをどのように扱うのでしょうか?
Hadoopがビッグデータの問題を解決する方法
Hadoopは、マシンのクラスターで実行するように構築されています例から始めましょう。 たくさんの写真を保存する必要があるとしましょう。 単一のディスクから始めます。 単一のディスクを超える場合、マシン上にスタックされたいくつかのディスクを使用できます。 1台のマシンですべてのディスクを最大限に使用する場合、それぞれが多数のディスクを持つ多数のマシンを取得する必要があります。
これがまさにHadoopの構築方法です。 Hadoopは、最初からマシンのクラスターで実行するように設計されています。
Hadoopクラスターは水平方向にスケーリングします
Hadoopクラスターにノードを追加することで、より多くのストレージと計算能力を実現できます。 これにより、ますます強力で高価なハードウェアを購入する必要がなくなります。
Hadoopは非構造化/半構造化データを処理できます
Hadoopは、保存するデータにスキーマを適用しません。 任意のテキストおよびバイナリデータを処理できます。 そのため、Hadoopは非構造化データを簡単に消化できます。
Hadoopクラスターはストレージとコンピューティングを提供します
ストレージクラスターと処理クラスターを分離することは、ビッグデータに最適ではないことがわかりました。 ただし、Hadoopクラスターは、ストレージと分散コンピューティングをすべて1つに提供します。
Hadoopのビジネスケース
Hadoopは、妥当なコストでビッグデータ用のストレージを提供します従来のストレージを使用してビッグデータを保存すると、費用がかかる場合があります。 Hadoopは汎用ハードウェアを中心に構築されているため、かなり大きなストレージをリーズナブルなコストで提供できます。 Hadoopはペタバイト規模でフィールドで使用されています。
Clouderaのある調査では、企業は通常、1テラバイトあたり年間約25, 000〜50, 000ドルを費やすことが示されています。 Hadoopを使用すると、このコストは1テラバイトあたり年間数千ドルに下がります。 ハードウェアがどんどん安くなるにつれて、このコストは下がり続けています。
Hadoopでは、新しいデータまたは複数のデータをキャプチャできます。
データを保存するにはコストが高すぎるため、組織がデータの種類をキャプチャしないことがあります。 Hadoopは合理的なコストでストレージを提供するため、このタイプのデータをキャプチャして保存できます。
1つの例は、Webサイトのクリックログです。 これらのログのボリュームは非常に大きくなる可能性があるため、これらをキャプチャした組織は多くありません。 Hadoopを使用すると、ログをキャプチャして保存できます。
Hadoopを使用すると、データをより長く保存できます
保存されたデータの量を管理するために、企業は古いデータを定期的に削除します。 たとえば、過去3か月間のログのみを保存でき、古いログは削除できました。 Hadoopを使用すると、履歴データをより長く保存できます。 これにより、古い履歴データに対して新しい分析を行うことができます。
たとえば、ウェブサイトからクリックログを取得します。 数年前、これらのログは、人気のあるページなどの統計を計算するために短時間保存されていました。 現在、Hadoopを使用すると、これらのクリックログを長期間保存することができます。
Hadoopはスケーラブルな分析を提供します
これらのデータを分析できなければ、これらすべてのデータを保存しても意味がありません。 Hadoopは分散ストレージを提供するだけでなく、分散処理も提供します。つまり、大量のデータを並行して処理できます。 Hadoopの計算フレームワークはMapReduceと呼ばれます。 MapReduceはペタバイト規模で実証されています。
Hadoopは豊富な分析を提供します
ネイティブMapReduceは、主要なプログラミング言語としてJavaをサポートしています。 Ruby、Python、Rなどの他の言語も使用できます。
もちろん、カスタムMapReduceコードを書くことは、Hadoopでデータを分析する唯一の方法ではありません。 高レベルのMap Reduceが利用可能です。 たとえば、Pigという名前のツールは、データフロー言語のような英語を受け取り、それらをMapReduceに翻訳します。 別のツールであるHiveは、SQLクエリを取得し、MapReduceを使用して実行します。
ビジネスインテリジェンス(BI)ツールは、さらに高いレベルの分析を提供できます。 このタイプの分析用のツールもあります。
このコンテンツは、Mark KerznerとSujee Maniyamによる「Hadoop Illuminated」からの抜粋です。 Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported Licenseを介して利用可能になりました。