Trouble generating CouchDb river


(ian mayo) #1

Hi all,
been battling with this all day. Ultimately I'm suffering from
NoClassDefFoundError for BulkRequestLoader. When I look in the jar
I can't find it.

Here's how I get to the problem:

Install couchdb-river:

bin/plugin -install elasticsearch/elasticsearch-river-couchdb/1.1.0

Start elasticsearch:

bin/elasticsearch -f

Responds with:
[2012-02-28 11:00:17,933][INFO ][node ] [Leir]
{0.18.7}[1508]: initializing ...
[2012-02-28 11:00:17,948][INFO ][plugins ] [Leir]
loaded [river-couchdb], sites []
[2012-02-28 11:00:20,031][INFO ][node ] [Leir]
{0.18.7}[1508]: initialized

Now for CouchDb.

I have initialisation file:
{
"type" : "couchdb",
"couchdb" : {
"host" : "localhost",
"port" : 5984,
"db" : "tracks",
"filter" : null
},
"index" : {
"index" : "tracks",
"type" : "tracks",
"bulk_size" : "100",
"bulk_timeout" : "10ms"
}
}

I load it with:

curl -T "{../init_file}" -XPUT 'localhost:9200/_river/tracks/_meta'

But, I see elasticsearch respond with:
[2012-02-28 11:00:46,213][INFO ][cluster.metadata ] [Leir]
[_river] creating index, cause [auto(index api)], shards [1]/[1],
mappings []
[2012-02-28 11:00:46,621][INFO ][cluster.metadata ] [Leir]
[_river] update_mapping [tracks] (dynamic)
[2012-02-28 11:00:46,703][WARN ][river ] [Leir]
failed to create river [couchdb][tracks]
org.elasticsearch.common.collect.ComputationException:
java.lang.NoClassDefFoundError: org/elasticsearch/action/bulk/
BulkRequestBuilder
at org.elasticsearch.common.collect.ComputingConcurrentHashMap
$ComputingValueReference.compute(ComputingConcurrentHashMap.java:325)
at org.elasticsearch.common.collect.ComputingConcurrentHashMap
$ComputingSegment.compute(ComputingConcurrentHashMap.java:140)
..
Caused by: java.lang.NoClassDefFoundError: org/elasticsearch/action/
bulk/BulkRequestBuilder
at java.lang.Class.getDeclaredMethods0(Native Method)
..
Caused by: java.lang.ClassNotFoundException:
org.elasticsearch.action.bulk.BulkRequestBuilder
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)

Now, if I close/restart ElasticSearch I get the same exceptions thrown/
reported.


(ian mayo) #2

Note: investigated further. BulkRequestLoader is in the source-repo,
so I downloaded 0.19RC. The CouchDb river plugin works fine with
this.

I'm now happily searching dozens of docs. Hooray.

I now realise the GitHub docs do clearly explain this (0.19 -> 1.1.0,
0.18 -> 1.0.0)

My bad.

Ian


(system) #3