Hi Adam,

On Oct 4, 2013, at 4:38am, Adam Warski wrote:

> Hello,
> 
> I'm trying to run the hadoop-based recommender job 
> (org.apache.mahout.cf.taste.hadoop.item.RecommenderJob) from Mahout 0.8 on 
> EMR. I'm using the "Amazon Distribution" Hadoop, which is version 1.0.3. 
> Locally running the job with that version works just fine - I get the 
> expected output.
> 
> On EMR, however, the job fails with the given exception: 
> java.lang.NoSuchMethodError: org.apache.lucene.util.PriorityQueue.<init>(I)V 
> (full stack trace: https://gist.github.com/adamw/6824585).
> 
> Looking at the EMR documentation 
> (http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-ami.html),
>  the AMI contains Lucene 2.9.4, while Mahout uses 4.3.0. And indeed, in 
> Lucene 2.x there's not PriorityQueue(int) constructor, while in Lucene 4.x 
> there is.
> 
> Is there some known way to solve this problem and run Mahout on EMR? I though 
> about using a bootstrap action, but then replacing lucene will probably 
> trigger a long chain of dependencies which would have to be updated as well.

We wound up in the same situation, and went ahead with updating everything to 
Solr/Lucene 4.2.1, IIRC.

The one oddity we ran into was a Solr (not Lucene) dependency on a newer 
version of HttpClient (4.2.3) than what was installed on EMR's servers, so we 
also had to update that jar and about 4 other friends from the HttpCore family.

If you go this route, you'll want to hop onto a slave in your EMR cluster and 
take a look at all of the jars in the Hadoop /lib directory, as it's a long 
(and somewhat odd) list that should be reviewed against what your project 
depends on.

-- Ken

--------------------------
Ken Krugler
+1 530-210-6378
http://www.scaleunlimited.com
custom big data solutions & training
Hadoop, Cascading, Cassandra & Solr





Reply via email to