Apache-flume-data-transfer-in-hadoop
Apache Flume-Hadoopでのデータ転送
ビッグデータ*は、私たちが知っているように、従来のコンピューティング技術では処理できない大きなデータセットのコレクションです。 ビッグデータを分析すると、貴重な結果が得られます。 *Hadoop は、シンプルなプログラミングモデルを使用してコンピューターのクラスター間で分散環境にビッグデータを格納および処理できるオープンソースフレームワークです。
ストリーミング/ログデータ
一般に、分析されるデータのほとんどは、アプリケーションサーバー、ソーシャルネットワーキングサイト、クラウドサーバー、エンタープライズサーバーなどのさまざまなデータソースによって生成されます。 このデータは、*ログファイル*および*イベント*の形式になります。
ログファイル-一般に、ログファイルはオペレーティングシステムで発生するイベント/アクションをリストする*ファイル*です。 たとえば、Webサーバーは、ログファイルにサーバーに対して行われたすべての要求をリストします。
そのようなログデータを収集すると、次の情報を取得できます-
- アプリケーションのパフォーマンスと、さまざまなソフトウェアおよびハードウェアの障害の特定。
- ユーザーの行動を把握し、より良いビジネス洞察を引き出します。
データをHDFSシステムに転送する従来の方法は、 put コマンドを使用することです。 put コマンドの使用方法を見てみましょう。
HDFS putコマンド
ログデータの処理における主な課題は、複数のサーバーで生成されたこれらのログをHadoop環境に移動することです。
Hadoop File System Shell は、Hadoopにデータを挿入し、そこからデータを読み取るコマンドを提供します。 以下に示すように、 put コマンドを使用して、Hadoopにデータを挿入できます。
putコマンドの問題
Hadoopの put コマンドを使用して、これらのソースからHDFSにデータを転送できます。 しかし、それは次の欠点に苦しんでいます-
- put コマンドを使用すると、一度に1つのファイルのみを転送できますが、データジェネレーターははるかに高いレートでデータを生成します。 古いデータで行われた分析の精度は低いため、リアルタイムでデータを転送するソリューションが必要です。
- put コマンドを使用する場合、データをパッケージ化する必要があり、アップロードの準備ができている必要があります。 Webサーバーは継続的にデータを生成するため、非常に難しいタスクです。
ここで必要なのは、 put コマンドの欠点を克服し、「ストリーミングデータ」をデータジェネレーターから集中ストア(特にHDFS)に少ない遅延で転送できるソリューションです。
HDFSの問題
HDFSでは、ファイルはディレクトリエントリとして存在し、ファイルが閉じられるまでファイルの長さはゼロと見なされます。 たとえば、ソースがHDFSにデータを書き込んでおり、ネットワークが操作の途中で(ファイルを閉じずに)中断された場合、ファイルに書き込まれたデータは失われます。
したがって、ログデータをHDFSに転送するには、信頼性が高く、構成可能で、保守可能なシステムが必要です。
注意-POSIXファイルシステムでは、ファイルにアクセスする(書き込み操作を実行するなど)ときはいつでも、他のプログラムはこのファイル(少なくともファイルの保存された部分)を読み取ることができます。 これは、ファイルが閉じる前にディスク上に存在するためです。
利用可能なソリューション
ストリーミングデータ(ログファイル、イベントなど)をさまざまなソースからHDFSに送信するには、次のツールを自由に使用できます-
Facebookのスクライブ
Scribeは、ログデータの集約とストリーミングに使用される非常に人気のあるツールです。 非常に多数のノードに対応し、ネットワークおよびノードの障害に強いように設計されています。
アパッチカフカ
Kafkaは、Apache Software Foundationによって開発されました。 オープンソースのメッセージブローカーです。 Kafkaを使用すると、フィードを高スループットで低遅延で処理できます。
Apache Flume
Apache Flumeは、ログデータ、イベントなどの大量のストリーミングデータを収集し、さまざまなWebserveから中央のデータストアに転送するためのツール/サービス/データ取り込みメカニズムです。
これは、主にさまざまなソースからHDFSにストリーミングデータを転送するように設計された、信頼性の高い分散型の構成可能なツールです。
このチュートリアルでは、Flumeの使用方法をいくつかの例とともに詳しく説明します。