目次:
- RHiveフレームワークは、R言語とHiveの間のブリッジとして機能します。 RHiveは、R固有の関数でHiveのSQLライクなクエリ言語(HiveQL)を拡張することにより、Hadoopに格納されたデータにRの豊富な統計ライブラリとアルゴリズムを提供します。 RHive関数を使用すると、HiveQLを使用して、Hiveを使用してカタログ化したHadoopクラスタのデータにR統計モデルを適用できます。
- Rプログラマが利用できるもう1つのオープンソースフレームワークは、Hadoopでのデータの配布と分析の管理を支援するパッケージの集まりであるRHadoopです。
- Revolution R(Revolution Analyticsによる)は、Hadoop分散システムでのR統合をサポートする商用R製品です。 Revolution Rは、HadoopのRのパフォーマンス、機能性、使いやすさを向上させることを約束します。 Rに似た深い分析を提供するために、Revolution Rは企業規模の大規模データ収集用に特別に開発された統計分析アルゴリズムのコレクションである同社のScaleRライブラリを利用しています。
- Big Rは、RとIBMのHadoop製品BigInsightsのエンドツーエンド統合を提供し、R開発者がHadoopデータを分析できるようにします。目的は、Rのプログラミング構文とコーディングのパラダイムを利用して、操作されたデータがHDFSにとどまることを保証することです。 Rデータ型はこれらのデータストアのプロキシとして機能します。つまり、R開発者は低レベルのMapReduce構文やHadoop固有のスクリプト言語(Pigなど)について考える必要はありません。
ビデオ: Scale R to Big Data with Hadoop & Spark 2024
当初、大きなデータとRは自然な友人ではありませんでした。 Rプログラミングでは、すべてのオブジェクトを1台のマシンのメインメモリにロードする必要があります。このアーキテクチャの限界は、大きなデータが方程式の一部になるとすぐに実現されます。一方、Hadoopなどの分散ファイルシステムでは、強力な統計手法が欠如していますが、複雑な操作やタスクのスケーリングには理想的です。コストのかかるスーパーコンピューティングハードウェアへの投資を必要とする垂直スケーリングソリューションは、分散した汎用ハードウェアクラスタによって提供されるコスト価値のリターンと競合することができません。
<! - 1 - >
R言語のメモリ内の単一マシンの制限に準拠するために、データ科学者は、分析を利用可能なサンプルデータのサブセットのみに限定しなければならないことがよくありました。 Hadoopとのより深い統合に先立ち、R言語のプログラマは、大規模なデータセットによって引き起こされるメモリ内の課題を1台のマシンで克服するためのスケールアウト戦略を提案しました。これは、メッセージパッシングシステムとページングを使用して実現されました。この技術は、メインメモリに同時に格納するには大きすぎるデータセットに対して作業を容易にすることができます。しかし、その低レベルのプログラミング手法は、並列プログラミングのパラダイムに慣れていない人にとっては、習得が急であることを示しています。
<! - 2 - >
Rの統計機能とHadoopの分散クラスタの統合には、SQLクエリ言語とのインタフェースとHadoop Streamingとの統合の2つの方法があります。前者の目的は、HiveやPigなどの既存のSQLデータウェアハウスプラットフォームを活用することです。これらのスキーマは、Hadoopデータを使用して統計ジョブを実行するための高度なプログラミングを提供するために、SQLスタイルの文を使用してHadoopジョブプログラミングを単純化します。<! - 3 - >
MapReduceジョブをJava以外の言語(Rを含む)でプログラムしたいプログラマの場合、2番目の選択肢は、HadoopのStreaming APIを使用することです。ユーザが提出したMapReduceジョブは、UNIXの標準ストリームとシリアライゼーションの助けを借りてデータ変換を行い、プログラマが最初に入力した言語にかかわらず、HadoopへのJava準拠の入力を保証します。開発者は、MapReduceの分散コンピューティング機能と、Rによって悪用されるような方法でHDFSのほぼ無制限のストレージ容量を活用するためのさまざまな戦略を探求し続けています。
HadoopとRの統合は進行中であり、 (BigInsightsの一環としてのBig R)とRevolution Analytics(Revolution R Enterprise)があります。 RHiveやRHadoopなど、Hadoopと高度なプログラミング言語とクエリ言語を統合するブリッジングソリューションも利用できます。
基本的に、各システムは、より大きなデータセットにR言語の深い分析能力を提供することを目指しています。
RHive
RHiveフレームワークは、R言語とHiveの間のブリッジとして機能します。 RHiveは、R固有の関数でHiveのSQLライクなクエリ言語(HiveQL)を拡張することにより、Hadoopに格納されたデータにRの豊富な統計ライブラリとアルゴリズムを提供します。 RHive関数を使用すると、HiveQLを使用して、Hiveを使用してカタログ化したHadoopクラスタのデータにR統計モデルを適用できます。
RHadoop
Rプログラマが利用できるもう1つのオープンソースフレームワークは、Hadoopでのデータの配布と分析の管理を支援するパッケージの集まりであるRHadoopです。
rmr2:
-
rmr2パッケージは、Hadoop準拠のMapReduceジョブへのR言語の変換をサポートしています(効率的な低レベルのMapReduceコードを生成します)より高いレベルのRコードから)。 rhdfs:
-
rhdfsパッケージは、HDFSストアを介してファイルを管理するためのR言語APIを提供します。 rhdfsを使用すると、ユーザーはHDFSストアからRデータフレーム(マトリックス)に読み込むことができ、同様にこれらのRマトリックスのデータをHDFSストレージに書き戻すことができます。 rhbase:
-
rhbaseパッケージもR言語APIを提供しますが、人生の目標はHDFSファイルではなくHBaseストアのデータベース管理です。 Revolution R
Revolution R(Revolution Analyticsによる)は、Hadoop分散システムでのR統合をサポートする商用R製品です。 Revolution Rは、HadoopのRのパフォーマンス、機能性、使いやすさを向上させることを約束します。 Rに似た深い分析を提供するために、Revolution Rは企業規模の大規模データ収集用に特別に開発された統計分析アルゴリズムのコレクションである同社のScaleRライブラリを利用しています。
ScaleRは、RプログラムコードをHadoopクラスタ上で高速に実行することを目的としており、R開発者はMapReduceではなく統計アルゴリズムに専念することができます。さらに、データ準備、ビジュアライゼーション、統計テストなど、数多くの分析タスクを処理します。
IBM BigInsights Big R
Big Rは、RとIBMのHadoop製品BigInsightsのエンドツーエンド統合を提供し、R開発者がHadoopデータを分析できるようにします。目的は、Rのプログラミング構文とコーディングのパラダイムを利用して、操作されたデータがHDFSにとどまることを保証することです。 Rデータ型はこれらのデータストアのプロキシとして機能します。つまり、R開発者は低レベルのMapReduce構文やHadoop固有のスクリプト言語(Pigなど)について考える必要はありません。
BigInsights Big Rテクノロジは、フラットファイル、HBase、およびHiveストレージ形式を含む複数のデータソースをサポートし、Hadoopクラスタ全体でRコードの並列およびパーティション実行を提供します。これは、基礎となるHDFSおよびMapReduceフレームワークの多くの複雑さを隠し、Big R機能が構造化データと非構造化データの両方で包括的なデータ分析を実行できるようにします。最後に、Big Rの統計エンジンのスケーラビリティにより、R開発者は事前定義された統計的手法と新しいアルゴリズムの作成者の両方を利用することができます。