日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

elastic 修改map_Amazon Elastic Map Reduce使用Apache Mahout计算建议

發布時間:2023/12/3 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 elastic 修改map_Amazon Elastic Map Reduce使用Apache Mahout计算建议 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

elastic 修改map

Apache Mahout是一個“可擴展的機器學習庫”,其中包括各種單節點和分布式推薦算法的實現。 在上一篇博客文章中, 我描述了如何在單個節點上實現在線推薦系統來處理數據。 如果數據太大而無法放入內存(> 100M首選項數據點)怎么辦? 然后我們別無選擇,只能看一下Mahout的分布式推薦器實現!

分布式推薦器基于Apache Hadoop。 這是一項需要輸入用戶偏好列表,計算項目共現矩陣并為每個用戶輸出前K個建議的工作。 有關此博客如何工作以及如何在本地運行的介紹性博客,請參見此博客文章 。

我們當然可以在自定義的Hadoop群集上運行此作業,但是僅使用預先配置的作業(如EMR)會更快(且痛苦更少)。 但是,有一個小問題。 EMR上提供的最新Hadoop版本是1.0.3,其中包含Apache Lucene 2.9.4的jar。 但是,推薦程序作業取決于Lucene 4.3.0,這將導致以下漂亮的堆棧跟蹤:

2013-10-04 11:05:03,921 FATAL org.apache.hadoop.mapred.Child (main): Error running child : java.lang.NoSuchMethodError: org.apache.lucene.util.PriorityQueue.<init>(I)Vat org.apache.mahout.math.hadoop.similarity.cooccurrence.TopElementsQueue.<init>(TopElementsQueue.java:33)at org.apache.mahout.math.hadoop.similarity.cooccurrence.RowSimilarityJob$UnsymmetrifyMapper. map(RowSimilarityJob.java:405)at org.apache.mahout.math.hadoop.similarity.cooccurrence.RowSimilarityJob$UnsymmetrifyMapper. map(RowSimilarityJob.java:389)at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:771)at org.apache.hadoop.mapred.MapTask.run(MapTask.java:375)at org.apache.hadoop.mapred.Child$4.run(Child.java:255)at java.security.AccessController.doPrivileged(Native Method)at javax.security.auth.Subject.doAs(Subject.java:415)at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1132)at org.apache.hadoop.mapred.Child.main(Child.java:249)

如何解決呢? 好吧,我們“只是”需要在EMR Hadoop安裝中更新Lucene。 我們可以為此使用引導操作 。 具體步驟如下:

  • 下載lucene-4.3.0.tgz(例如從此處 )并將其上傳到S3存儲桶中; 將文件公開。
  • 將該腳本也上傳到存儲桶中; 稱之為例如update-lucene.sh : #!/bin/bash cd /home/hadoop wget https://s3.amazonaws.com/bucket_name/bucket_path/lucene-4.3.0.tgz tar -xzf lucene-4.3.0.tgz cd lib rm lucene-*.jar cd .. cd lucene-4.3.0 find . | grep lucene- | grep jar$ | xargs -I {} cp {} ../lib

    該腳本將在Hadoop節點上運行,并將更新Lucene版本。 確保更改腳本并輸入正確的存儲桶名稱和存儲桶路徑,以使其指向公共Lucene存檔。

  • mahout-core-0.8-job.jar到存儲桶
  • 最后,我們需要將輸入數據上傳到S3。 輸出數據也將保存在S3上。
  • 現在,我們可以開始設置EMR作業流程。 轉到Amazon控制臺上的EMR頁面,然后開始創建新的工作流程。 我們將使用“ Amazon Distribution” Hadoop版本,并使用“ Custom JAR”作為作業類型。

  • “ JAR位置”必須指向我們上載Mahout jar的位置,例如s3n://bucket_name/bucket_path/mahout-0.8-job.jar (請確保將其更改為指向真實的存儲桶!)。 至于jar參數,我們將運行RecommenderJob并使用對數似然性: org.apache.mahout.cf.taste.hadoop.item.RecommenderJob --booleanData --similarityClassname SIMILARITY_LOGLIKELIHOOD --output s3n://bucket_name/output --input s3n://bucket_name/input.dat

    這也是指定S3上輸入數據的位置和輸出寫入位置的地方。

  • 然后,我們可以選擇要使用的計算機數量。 當然,這取決于輸入數據的大小以及所需的結果速度。 這里主要要更改的是“核心實例組”計數。 2是測試的合理默認值。

  • 我們可以保持高級選項不變
  • 現在我們進入更重要的步驟之一:設置引導程序動作。 我們需要設置兩個:
    • 內存密集型配置(否則您會很快看到一個OOM)
    • 我們的自定義update-lucene操作(路徑應指向S3,例如s3://bucket_name/bucket_path/update-lucene.sh )

  • 就是這樣! 現在,您可以創建并運行作業流程,在幾分鐘/幾小時/幾天之后,您將在S3上等待結果。

    參考: Amazon Elastic Map Reduce可以通過 JCG合作伙伴 Adam Warski的Blog(Adam Warski博客) 使用Apache Mahout計算建議 。

    翻譯自: https://www.javacodegeeks.com/2013/10/amazon-elastic-map-reduce-to-compute-recommendations-with-apache-mahout.html

    elastic 修改map

    總結

    以上是生活随笔為你收集整理的elastic 修改map_Amazon Elastic Map Reduce使用Apache Mahout计算建议的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。