Hadoop を初めて使用するので、Hadoop がシナリオで機能することを知りたいです。
動的 Web プロジェクトの作成中に、Java/C# からクエリを送信して、MySQL データベースにデータを保存および取得していました。
私は自分のプロジェクトで Hadoop サービスを使用していますが、hadoop は、外部データベースを使用する代わりに、データを保存して必要に応じて取得できるビルド データベース システムを提供していますか。
前もって感謝します。
Hadoop は組み込み DB を提供しません。それはたった2つのことです:
Web サービスを扱っているため、非常に迅速な応答が必要になると思います。私見、Hadoop(正確にはHDFS)、またはその他のFSは、そのようなシナリオでは適切な選択ではありません。その理由は、HDFS にはランダム/読み取り機能が欠けているためです。これは、Web プロジェクトにとって非常に重要です。
同じことがハイブにも当てはまります。RDBMS と同様の方法でデータを管理しますが、実際には RDBMS ではありません。基盤となるストレージ メカニズムは、依然としてHDFS ファイルです。さらに、Hive クエリを発行して結果を取得すると、クエリは最初にMR ジョブに変換されてから結果が生成されるため、応答が遅くなります。
最も安全な方法は、HBaseを使用することです。あなたの場合のように、データへのランダムでリアルタイムの読み取り/書き込みアクセスが必要な場合は、間違いなくより良い選択です。Hadoop プラットフォームの一部ではありませんが、Hadoop で使用するためにゼロから構築されました。既存の HDFS クラスター上で動作し、さまざまな HBase API (ケースに適合) または MR (リアルタイムのものではありません。大量のデータをバッチ処理する必要がある場合に適合) を介して直接操作できます。追加のインフラストラクチャを必要とせずに、簡単にセットアップして使用できます。
ここで注意すべき重要な点の 1 つは、HBase は NoSQL DB であり、RDBMS の規則や用語に従っていないことです。そのため、最初はデザインに少し手を加える必要があるかもしれません。
HBase 以外にも、NoSQL DB であるCassandraなどのオプションがあります。
HTH