私は、共同フィルタリングに mahout と hadoop がどのように使用されるかを理解しようとしている初心者です。私は単一ノードのカサンドラをセットアップしています。カサンドラからデータを取得したい
最初に Hadoop をインストールし、次に mahout を Cassandra と連携させるための明確なインストール手順はどこにありますか?
(これは、あなたが user@mahout.apache.org で尋ねた質問と同じだと思いますか? 私の回答をコピーしています。)
Hadoop はまったく必要ないかもしれません。そうでない場合は、簡単にするために使用しないことをお勧めします。ある点を超えてスケールするのは「必要悪」です。
Cassandra にデータを保持することはできますが、それをメモリに読み込めるようにする必要があります。ファイルとしてダンプできる場合は、FileDataModel を使用できます。または、FileDataModel のコードをエミュレートして、Cassandra に基づいたものを作成できます。
次に、2 つのニーズに簡単に答えます。
これは推奨の問題でもありません。UserSimilarity の実装を選択し、それを使用してユーザーを他のすべてのユーザーと比較し、類似度が最も高いユーザーを選択するだけです。(CachingUserSimilarity でラッピングすると非常に役立ちます。)
これは単なるレコメンダーの問題です。UserSimilarity と DataModel で GenericUserBasedRecommender を使用すれば完了です。
もちろん、これよりもはるかに複雑になる可能性がありますが、これは良い出発点です。
後で Hadoop を使用する場合は、その指示に従って Hadoop をセットアップする必要があります。Mahout の「セットアップ」はありません。レコメンダーについては、Hadoop クラスターで必要なジョブを呼び出す RecommenderJob クラスの 1 つを確認します。「hadoop」コマンドを使用して実行します。ここでも、Hadoop を理解する必要があります。
本Mahout in Actionでは、ほとんどの Mahout Hadoop ジョブについて詳細に説明しています。
実際、『Mahout in Action』という本は、イライラするドキュメントの不足から私を救ってくれました。
私はhttps://issues.apache.org/jira/browse/MAHOUT-180をフォローしていました...これは、エラーのみを与える「hadoop -jar」構文を示唆しています。本には代わりに「jar」があり、その修正により、私のテストジョブは問題なく実行されています。
これが私がしたことです:
http://bickson.blogspot.com/2011/02/mahout-svd-matrix-factorization.html?showComment=1298565709376#c3501116664672385942のユーティリティを使用して、行列の CSV 表現を mahout ファイル形式に変換しました。Hadoop ファイルシステムにコピーしました。
ラップトップで新しく構築した Mahout から mahout-examples-0.5-SNAPSHOT-job.jar を Hadoop クラスターのコントロール ボックスにアップロードしました。そこには他の象使いのものはありません。
これを実行しました:(hadoopが構成されていると仮定します。これは dfs -ls /user/danbri で確認します)
hadoop jar ./mahout-examples-0.5-SNAPSHOT-job.jar \ org.apache.mahout.math.hadoop.decomposer.DistributedLanczosSolver \ --input svdoutput.mht --output outpath --numRows 0 --numCols 4 --ランク50
...これが正しいかどうかは別の問題ですが、何かをしているようです!
次のチュートリアルに従って学習できます。理解しやすく、Hadoop の基本について明確に述べられています。