56

products電子商取引 Web サイト用の 1,000 万の製品を含む MySQL データベースを検討します。

製品を分類する分類モジュールを設定しようとしています。MySQL から Hadoop にデータをインポートするために Apache Sqoop を使用しています。

機械学習フレームワークとして Mahout を使用して、分類アルゴリズムの 1 つを使用したかったのですが、 MLlibで提供されている Spark に遭遇しました。

  • では、2 つのフレームワークの違いは何でしょうか。
  • 主に、それぞれの利点、欠点、および制限は何ですか?
4

2 に答える 2

46

主な違いは、基礎となるフレームワークにあります。Mahout の場合は Hadoop MapReduce で、MLib の場合は Spark です。より具体的には、ジョブごとのオーバーヘッドの違いから
ML アルゴリズムが単一の MR ジョブにマッピングされている場合、主な違いは起動時のオーバーヘッドだけです。Hadoop MR では数十秒、Spark では 1 秒としましょう。したがって、モデル トレーニングの場合はそれほど重要ではありません。
アルゴリズムが多くのジョブにマップされている場合、状況は異なります。この場合、反復ごとのオーバーヘッドに同じ違いがあり、ゲームチェンジャーになる可能性があります。
100 回の反復が必要で、それぞれに 5 秒のクラスター CPU が必要であると仮定しましょう。

  • Spark の場合: 100*5 + 100*1 秒 = 600 秒かかります。
  • Hadoop の場合: MR (Mahout) では、100*5+100*30 = 3500 秒かかります。

同時に、Hadoop MR は Spark よりもはるかに成熟したフレームワークであり、大量のデータがあり、安定性が最も重要である場合は、Mahout を真剣な代替手段と見なします。

于 2014-05-07T10:45:22.607 に答える