1

この質問はイライラするように聞こえるかもしれませんが、実際のプログラミングとは何の関係もないかもしれません。これは、私が同僚と行った小さな議論のスピンオフです。彼は、HIVE と PIG を別々の「プログラミング モデル」として呼び出すことができると主張し続けました。これは、これらで MapReduce ジョブを記述する場合、特に HIVE でプログラミングしている場合は、MapReduce について考える必要がないからです。プログラマーの観点からは、MapReduce 部分は完全に抽象化されています。これは完全に SQL に似ています。

しかし、これらの言語で書かれたスクリプトは最終的に複数の mapreduce ジョブに変換されるため、私はちょっと同意しませんでした。したがって、これらは同じモデル用にプログラムするための高水準のプログラミング言語と呼ぶことができます。そして、ワードプログラミングモデルは、プログラマーではなく、クランチされるのを待っている基礎となるデータの観点から見る必要があります。

あなたの意見は何ですか?

4

1 に答える 1

2

私はそれを次のように定義します:HIVEとPIGは異なる抽象化レベルにあります。終わりの例えは、SQLとクエリ実行プランです。どちらもデータベースクエリの同じ問題を解決しますが、SQLは宣言型であり、結果がどうあるべきかを示し、クエリ実行プランはそれを達成するためのアクションを指定します。この例では、HIVEはSQLおよびPIG(クエリ実行プラン)です。
HIVEは宣言型であり、命令型PIGよりも高いレベルの抽象化に基づいていると言えます。したがって、論理的にHIVEリクエストをPIGに変換できます。

于 2011-02-11T17:55:11.037 に答える