The M/R job over the http api seems to be working to me. curl -X POST http://192.168.1.39:8098/mapred -H "Content-Type: application/json" -d @query.json
query.json: {"inputs":{"bucket":"mentions","index":"docUID_bin","key":"5b9d1a6250dbd3e77ff004a12d06958745ee32844ad4aa668001bbe69b5efcf8"},"query":[{"reduce":{"language":"erlang","module":"riak_kv_mapreduce","function":"reduce_identity","arg":"{reduce_phase_only_1, true}"}}]} Results: [["mentions","1907d031c88b8df2fc5128114615133d4184cedaea55964c3cee0ef9fe566f13"],["mentions","1bb5ce4aba0bf240698876530948c807d50e6f04a7358b7514c756dd295775ae"],["mentions","1f5f8f78951c6842ad6bcc96e3839ca8240b71372d2ab4826411fdfc84fedeb1"],["mentions","330856dabfa3a1c5b9ca8051686d8d7f387a23c795493a4e8f33d84861756d4f"],["mentions","338fffb9740b2f0c50b2da52a73b4861be318868082db3748eb95a47654981bd"],["mentions","5eef2b9cd6f7faf34548c9700069527287574690ab3dabf4c4f186753ffc5417"],["mentions","7ec9217a7a87c9e43a94170bb1ab8c13566233823ef6f77ef9c455a289c4bdf8"],["mentions","a588d7f0fb413d52a895a5d7e7fcfc966e9a56c42456e7821d2e5fa93b5671ba"],["mentions","aaacde92acf2c61abf9a4104f263283aed6233da08efb6ebbf13f83dfcfa1e7c"]] Looks good to me. It has an extra "mentions" term, but I think the java client explicitly drops that when converting the m/r results. Alex On Tue, Oct 25, 2011 at 9:12 AM, Russell Brown <russel...@basho.com> wrote: > > On 25 Oct 2011, at 13:58, Alexander Robbins wrote: > > Thanks for the classpath tip. That was it. > > Ok, using the HTTP client I don't get the same weird results. (It is > noticeably slower, but that is to be expected I think.) > > > Ok, cool (sort off). > > Would it be too much trouble if I asked you to run the following M/R job > using the HTTP API, using curl, so I can narrow things down further still? > If you just insert *your* bucket, index and value: > > curl -X POST http://127.0.0.1:8098/mapred -H "Content-Type: > application/json" -d @- > > {"inputs":{"bucket":"YOUR_BUCKET_PLEASE","index":"YOUR_INDEX_PLEASE","key":"YOUR_VALUE_PLEASE"},"query":[{"reduce":{"language":"erlang","module":"riak_kv_mapreduce","function":"reduce_identity","arg":"{reduce_phase_only_1, > true}"}}]} > > > It would really help figure out at what point the problem is. If this M/R > works OK then I'll raise a bug against the Java client. > > Cheers > > Russell > > > Alex > > On Mon, Oct 24, 2011 at 4:11 PM, Russell Brown <russel...@basho.com>wrote: > >> >> On 24 Oct 2011, at 21:56, Alexander Robbins wrote: >> >> Hey, sorry for the delay. I'm having trouble switching to the HTTP client. >> I'm getting this error whenever I try to use it: (Using riak java client >> version 1.0.1) >> >> org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager: method >> <init>()V not found >> >> >> Caused by: >> >> java.lang.NoSuchMethodError: >> org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager: method >> <init>()V not found >> at >> com.basho.riak.client.http.util.ClientUtils.newHttpClient(ClientUtils.java:77) >> at >> com.basho.riak.client.http.util.ClientHelper.<init>(ClientHelper.java:71) >> at com.basho.riak.client.http.RiakClient.<init>(RiakClient.java:62) >> at com.basho.riak.client.http.RiakClient.<init>(RiakClient.java:58) >> at >> com.basho.riak.client.raw.http.HTTPRiakClientFactory.newClient(HTTPRiakClientFactory.java:75) >> ... >> >> >> This is the setup code I'm using for the HTTP client: >> client = HTTPRiakClientFactory.getInstance().newClient( >> new HTTPClientConfig.Builder().withHost("192.168.1.92").build()) >> >> >> You can shorten this to >> >> RiakFactory.newClient( new >> HTTPClientConfig.Builder().withHost("192.168.1.92").build()) >> >> i.e. you don't need to use the specific factory directly, RiakFactory will >> select the correct factory for the type of config it is given. >> >> >> I don't see how I could be causing that error. Any ideas? >> >> >> Classpath issue. You have an older HTTP Client jar on your class path, >> 4.0.x. The 4.1.1 Apache HTTP Client that the RJC depends on has a no-arg >> TSCM constructor, the 4.0.x release did not. >> >> >> Alex >> >> On Mon, Oct 24, 2011 at 3:02 PM, Russell Brown <russel...@basho.com>wrote: >> >>> >>> On 24 Oct 2011, at 20:21, Alexander Robbins wrote: >>> >>> > Using a new Riak 1.0 cluster. >>> > >>> > We added data in with a secondary index. When getting the data back out >>> the results list is odd. >>> > >>> > [null, null, null, null, null, null, null, null, null, null, null, >>> null, null, null, null, null, null, null, null, null, a, c, 9, d, 9, 1, d, >>> d, 0, e, 5, 5, 6, 8, c, 6, d, 4, 8, f, >>> e1b865342e2d81fac6b99dfa157dd8550ecc0b68caad2fb55c12e9fa5b1532c2, >>> 85dca536068b8ead86c14c009c8a919457d2326419c16e0cd7f3b23a8776e2c8, >>> be2f346c56827912cc4e21b765bd28d520a46833d08b8207ca6b49c8da2351d2, >>> 1907d031c88b8df2fc5128114615133d4184cedaea55964c3cee0ef9fe566f13, >>> 1bb5ce4aba0bf240698876530948c807d50e6f04a7358b7514c756dd295775ae, >>> 1f5f8f78951c6842ad6bcc96e3839ca8240b71372d2ab4826411fdfc84fedeb1, >>> 330856dabfa3a1c5b9ca8051686d8d7f387a23c795493a4e8f33d84861756d4f, >>> 338fffb9740b2f0c50b2da52a73b4861be318868082db3748eb95a47654981bd, >>> 5eef2b9cd6f7faf34548c9700069527287574690ab3dabf4c4f186753ffc5417, >>> 7ec9217a7a87c9e43a94170bb1ab8c13566233823ef6f77ef9c455a289c4bdf8, >>> a588d7f0fb413d52a895a5d7e7fcfc966e9a56c42456e7821d2e5fa93b5671ba, >>> 767655d6443a337b2d3d89c0d1c38c3bac62398b74e0deef572508c54a2ad8b1, >>> 7ca77aa38e44942d769ab8b08753b008ad65fe5d0d8c6438b67849381300aa9f, >>> ab0a791a5a82345c5adce2c0d0d9013bab176e430d335228355781aa23a87f3e, >>> b42af37baa18e715ca64a7145783cd3fd0defa9b2dc18368ec4c647cbe710132, >>> c4d9c7b2cd837294cca10a581976a3f6d93d74cb2d30cac48384c64fc0bb6e2c, >>> c7c10ad62091e3c7ba304d8a58f02c180c76f47d8d1d4addb21b9a88da277e75, >>> 127f5b7255d61fcf0477a53d242c248cca824d9e60dafffc244d8e9df2bf7cbf, >>> 23636fa4ef8af2a1d26335a3c8daca24ec5cd7978ee2429615e2b60538d6c9e9, >>> 385d59cc404d3c7f097b2ae9e0e82768ac980c9ba157f6ea77d91ad49e812469, [, >>> mentions, 50c2c9983e2ea3806c6d5e34a19ed526844945d0a06c70557695dfaa15b70ba3] >>> > >>> > The 64 character strings are good. They exist in riak and can be >>> loaded. The other results make less sense. null, a, c, 9, [, and "mentions" >>> aren't valid keys. Any ideas what might have happened that the results from >>> a fetchIndex would have invalid keys? There are always 20 null responses and >>> 20 single character responses. The single character responses vary from >>> request to request. The "[" and "mentions" keys show up every time too. I'm >>> confused here, because I don't think this could be me adding bad data. This >>> list should be valid keys, as determined by riak, right? >>> >>> They should be valid keys, yes. To help narrow the issue down, could you >>> run the same query using the Java HTTP Client, please? The HTTP Client uses >>> the HTTP 2i endpoint, whereas the PB client uses map/reduce behind the >>> scenes. >>> >>> Cheers >>> >>> Russell >>> >>> > >>> > There is a possibility that another bucket has index values with >>> multibyte characters. Could that be breaking results in a separate bucket. >>> > >>> > Thanks in advance, >>> > Alex >>> > _______________________________________________ >>> > riak-users mailing list >>> > riak-users@lists.basho.com >>> > http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com >>> >>> >> _______________________________________________ >> riak-users mailing list >> riak-users@lists.basho.com >> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com >> >> >> > >
_______________________________________________ riak-users mailing list riak-users@lists.basho.com http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com