HDFSのデータに対して、「ほぼリアルタイム」のデータ分析(OLAPのような)を行いたいです。
私の調査では、言及された3つのフレームワークがApache Hiveと比較して大幅なパフォーマンスの向上を報告していることが示されました。誰かがそれらのいずれかで実際的な経験を持っていますか?パフォーマンスだけでなく、安定性に関しても?
HiveとImpalaの比較またはSparkまたはDrillは、私には不適切に聞こえる場合があります。Hiveとこれらのツールの開発の目標は異なっていました。オフラインバッチ処理などのために構築されたもので、非常に巨大なデータセットでの結合などのデータ量の多い操作を実行する長時間実行ジョブが必要な場合に最適です。
一方、これらのツールは、real-timeness
念頭に置いて。あまり大きなデータではなく、リアルタイムでメモリに収まるデータをクエリする必要がある場合は、それらを選択してください。これらのツールを使用してBigDataでクエリを実行できないと言っているわけではありませんが、データのPB(IMHO)でリアルタイムクエリを実行している場合は、限界を押し上げることになります。
特定の会社が複数のPBのデータを持ち、顧客のリアルタイムのニーズにうまく対応していることを、あなたはしばしば見た(または読んだ)でしょう。しかし、実際には、これらの企業はほとんどの場合、データ全体を照会していません。だから、重要なことは適切な計画、when to use what
。あなたが私が作ろうとしているポイントを得ることを願っています。
あなたの実際の質問に戻って、私の見解では、これらのプロジェクトのほとんどはまだ完成していないため、現時点で合理的な比較を提供することは困難です。自力でいくつかの(または多分)作業を行う意思がない限り、まだ生産準備が整っていません。そして、これらの各プロジェクトには、その特定のプロジェクトに非常に固有の特定の目標があります。
For example
、Impalaは既存のHiveインフラストラクチャを活用するために開発されたため、ゼロから始める必要はありません。 Hiveが使用するのと同じメタデータを使用します。目標は、既存のHadoopウェアハウス上でリアルタイムクエリを実行することでした。一方、ドリルはnot only Hadoop
プロジェクト。また、MongoDB、Cassandra、Riak、Splunkなどの複数のビッグデータプラットフォームに分散クエリ機能を提供します。 SharkはApache Hiveと互換性があります。つまり、Hiveを使用する場合と同じHiveQLステートメントを使用して照会できます。違いは、Sharkは同じクエリがHiveで実行されるよりも最大30倍速く結果を返すことができることです。
Impalaは現在上手く機能しており、一部の人々はそれを使用していますが、残りの2つについては自信がありません。これらのツールはすべて優れていますが、データでこれらを試してから、処理のニーズ。しかし、私の経験によれば、Impalaは現時点で最善の策です。私は他のツールが良くないと言っているわけではありませんが、まだ十分に成熟していません。ただし、すでに実行中のHadoopクラスター(Apacheのhadoop for ex)で使用する場合は、ほとんどの人がImpalaをCDH機能として使用するため、追加の作業が必要になる場合があります。
注:これらすべては、私の経験のみに基づいています。何か間違ったことや不適切なものを見つけた場合はお知らせください。コメントや提案を歓迎します。そして、これがあなたの質問のいくつかに答えることを望みます。
"ImpalaはSharkと比較してどうですか?" UC Berkeley AMPLabのShark開発努力のリーダーであるReynold Xinからの回答です。