2016-04-06 8 views
1

Я новичок в Apache Mahout. Я использую Apache mahout 0.11.2. Поэтому, чтобы попробовать, я создал java-класс под названием samplereccommender.java, как показано ниже.Пользовательские задания для инструкторов с использованием apache mahout 0.11.2 over hadoop

package f; 
import java.io.File; 
import java.io.IOException; 
import org.apache.mahout.cf.taste.common.TasteException; 
import org.apache.mahout.cf.taste.impl.model.file.FileDataModel; 
import org.apache.mahout.cf.taste.impl.neighborhood.ThresholdUserNeighborhood; 
import org.apache.mahout.cf.taste.impl.recommender.GenericUserBasedRecommender; 
import org.apache.mahout.cf.taste.impl.similarity.PearsonCorrelationSimilarity; 
import org.apache.mahout.cf.taste.model.DataModel; 
import org.apache.mahout.cf.taste.neighborhood.UserNeighborhood; 
import org.apache.mahout.cf.taste.recommender.RecommendedItem; 
import org.apache.mahout.cf.taste.recommender.UserBasedRecommender; 
import org.apache.mahout.cf.taste.similarity.ItemSimilarity; 
import org.apache.mahout.cf.taste.similarity.UserSimilarity; 
import java.util.List; 

public class SampleReccommender { 
    public static void main(String args[]){ 
     try{ 
      DataModel datamodel = new FileDataModel(new File(args[0])); 
      //Creating UserSimilarity object. 
      UserSimilarity usersimilarity = new PearsonCorrelationSimilarity(datamodel); 
      //Creating UserNeighbourHHood object. 
      UserNeighborhood userneighborhood = new ThresholdUserNeighborhood(1.0, usersimilarity, datamodel); 
      //Create UserRecomender 
      UserBasedRecommender recommender = new GenericUserBasedRecommender(datamodel, userneighborhood, usersimilarity); 
      List recommendations = (List) recommender.recommend(2, 3); 
      System.out.println(recommendations.size()); 
      for (int i=0; i< recommendations.size();i++) { 
       System.out.println(recommendations.get(i)); 
      } 
     } 
catch(Exception e){ 
    e.printStackTrace(); 
} 
}} 

мне удалось запустить этот код из командной строки, как
Java -cp n.jar f.SampleReccommender n_lib/wishlistdata.txt

Теперь от того, что я прочитал в Интернете, и книги " Маху в действии «Я понял, что тот же код можно запустить на hadoop, используя следующие команды. Сначала мне нужно включить my SampleReccommender.java в существующий apache-mahout-distribution-0.11.2/mahout-mr-0.11.2-job.jar. Поэтому я следовал следующей процедуре.

баночка уф /Users/rohitjain/Documents/apache-mahout-distribution-0.11.2/mahout-mr-0.11.2-job.jar samplerecommender.jar

я попытался запустить Mahout работу с помощью следующая команда

бен/Hadoop банка /Users/rohitjain/Documents/apache-mahout-distribution-0.11.2/mahout-mr-0.11.2-job.jar org.apache.mahout.cf.taste.hadoop .item.RecommenderJob -i /input/wishlistdata.txt -o/output/--recommenderClassName \ f.SampleRecommender

Но это дает мне ошибку, как:

Неожиданное --recommenderClassName при обработке Job-Specific Options:

Я попытался выше команды на основе синтаксиса данного «погонщик в действии» книга, которая, как указано ниже

hadoop jar mahout-core-0.5-job.jar \ org.apache.mahout.cf.taste.hadoop.pseudo.RecommenderJob \ -Dmapred.input.dir = input/ua.base.hadoop \ -Dmapred.output .dir = output \ --recommenderClassName \ org.apache.mahout.cf.taste.impl.recommender.slopeone.SlopeOneRecommender

Я делаю что-то неправильно? Также скажите, можно ли использовать код, который я использовал для автономной реализации, для recenderJobs или для этого требуется совместная реализация?

ответ

0

Mahout in Action устарел, а код, который вы используете, устарел.

В эти дни Mahout работает на более современных вычислительных платформах, таких как Spark. Для последнего рекомендателя Mahout вы можете начать с интерфейса командной строки, чтобы исправить элементы и интегрировать его с Solr или Eleamicsearch. Или вы можете пикап полностью интегрированы конца в конец решение связано ниже:

 Смежные вопросы

  • Нет связанных вопросов^_^