1. ホーム
  2. hadoop

[解決済み】Hadoop、HBase、Hive、Pigはいつ使う?

2022-04-20 01:13:04

質問

を使うメリットは何ですか? Hadoop または HBase または ハイブ ?

私の理解では HBase は、Map-Reduceの使用を避け、HDFSの上にカラム指向のストレージを持っています。 ハイブ のSQLライクなインターフェースです。 Hadoop HBase .

また、どのように ハイブ と比較すると ピッグ .

どのように解決するのですか?

MapReduceは単なる コンピューティングフレームワーク . HBaseは何の関係もない。とはいえ、MapReduceジョブを書けば、HBaseとの間で効率的にデータの出し入れをすることができます。あるいは、Javaなど他のHBase APIを使って逐次プログラムを書き、データを置いたり、取り出したりすることも可能です。しかし、私たちはHadoopやHBaseを使って膨大な量のデータを扱っているので、それではあまり意味がありません。通常のシーケンシャルなプログラムでは、データが巨大になると非常に効率が悪くなります。

質問の最初の部分に戻ると、Hadoopは基本的に次の2つのものです。 分散ファイルシステム(HDFS) + a 計算・処理フレームワーク(MapReduce) . 他のすべてのFSと同様に、HDFSもストレージを提供しますが、フォールトトレラントな方法で、高いスループットと低いデータ損失のリスク(レプリケーションがあるため)を提供します。しかし、FSであるHDFSには、次のような欠点があります。 ランダムな読み書きのアクセス . そこで登場するのがHBaseです。これは 分散型、スケーラブル、ビッグデータストア GoogleのBigTableをモデルにしている。データはキーとバリューのペアで保存されます。

Hiveに至っては。これは私たちにデータを提供します ウェアハウジング を既存のHadoopクラスタの上に置くことができます。それに加えて SQLライク このインターフェースは、あなたがSQLのバックグラウンドを持っている場合、あなたの仕事を容易にします。Hiveでテーブルを作成し、そこにデータを格納することができます。また、既存のHBaseのテーブルをHiveにマッピングして操作することも可能です。

Pigは基本的に データフロー言語 は、膨大な量のデータを非常に簡単かつ高速に処理することを可能にします。Pigは基本的に2つの部分から成ります: Pig インタープリタ と言語があります。 ピグラタン . PigスクリプトをPigLatinで書き、Pigインタプリタを使って処理します。MapReduceを書くのはいつも簡単ではありません。実際、場合によっては本当に苦痛になることもあります。

私が書いたのは Hadoopエコシステムの様々なツールの簡単な比較についての記事です。 少し前のことです。詳細な比較ではありませんが、それぞれのツールの簡単な紹介で、始める際の参考になると思います。 (私の回答に補足するもので、自己宣伝ではありません。)

HiveとPigのクエリは、どちらもフードの下でMapReduceジョブに変換されます。

HTH