人々がデータを処理するのを支援するための多くのツール/フレームワーク(ビッグデータ環境)について聞いたことがあります。
1つはHadoopと呼ばれ、もう1つはnoSQLの概念です。処理のポイントの違いは何ですか?
それらは補完的ですか?
コメント
- 研究努力の欠如のために投票されました。 HadoopとnoSQLは他の場所で明確に定義されています。
- @Spacedman同意しますが、それは Area51 からの質問の例でした。有効だと思う前に削除されておらず、質問を投稿したときに答えがわかっていても(少なくとも一般的には)。
回答
Hadoopはデータベースではありません、Hadoopはエコシステム全体です。
ほとんどの人は、Hadoopについて話しているときに mapreduce のジョブを参照します。 mapreduceジョブは、大きなデータセットをいくつかの小さなデータチャンクに分割し、それらをノードのクラスターに分散して続行します。最終的に、各ノードからの結果は1つのデータセットとして再びまとめられます。
Hadoopに<String, Integer>
のセットをロードするとします。都市内のいくつかの近隣の人口で、各都市の近隣全体の平均人口を取得したい(図1)。
図1
[new york, 40394] [new york, 134] [la, 44] [la, 647] ...
これで、hadoopは最初にキーを使用して各値をマップします(図2)
図2
[new york, [40394,134]] [la, [44,647]] ...
マッピング後、各キーの値が新しい値(この例では各キーの値セットの平均)に減少します(図3)
図3
[new york, [20264]] [la, [346]] ...
これですべてのHadoopが実行され、結果をHDFSにロードできるようになりました( hadoop分散ファイルシステム)または任意のDBMSまたはファイルに。
これは非常に基本的なとシンプル ex Hadoopでできることは十分にあります。 Hadoopでは、はるかに複雑なタスクを実行できます。
質問ですでに述べたように、hadoopとnoSQLは補完的です。センサーからの数十億のデータセットがHBaseに保存され、Hadoopを通過して最終的にDBMSに保存されるセットアップをいくつか知っています。
回答
NoSQLは、何らかの関係を必要としないデータを格納する方法です。その設計の単純さと水平方向の拡張性、データを格納する1つの方法は、key : value
ペア設計です。これは、Hadoopと同様の処理に役立ちます。 NoSQLデータベースの使用は、実際に発生している問題のタイプによって異なります。
ここに優れたウィキペディアのリンク NoSQL
Hadoopは、膨大な量のデータを格納および処理することを目的としたシステムです。これは分散ファイルシステムのdfsです。これを行う理由は、その設計の中心で、ハードウェア障害が一般的であると想定しているためです。したがって、同じ情報の複数のコピーを作成し、それを複数のマシンとラックに分散します。したがって、1つがダウンしても、問題はありません。さらに2つのコピーがあります。ウィキペディアからのHadoopへの優れたリンクもあります。私の意見では、これは単なるストレージではなく、処理でもあることがわかります。 Hadoop