2016-08-08 23 views
0

Ich versuche, die Blob Store-API zu verwenden, um ein Jar in die .System-Sammlung zu posten, so dass ich ein benutzerdefiniertes Solr-Plugin auf alle meine Knoten laden kann. Der Versuch, das Glas zu schreiben mit:Solr Blob Store-API - Blob zu groß

curl -X POST -H 'Content-Type: application/octet-stream' --data-binary @myjar.jar http://localhost:9002/solr/.system/blob/myjar 

Aber mein Fett Glas ist 81 mb und es ist die SimplePostTool-Puffer überläuft. Gibt es eine Möglichkeit, dies zu erhöhen? Ich versuche ein Solr-Plugin in Solr 6 Cloud zu laden.

den Fehler:

"trace":"java.nio.BufferOverflowException\n\tat org.apache.solr.util.SimplePostTool.inputStreamToByteArray(SimplePostTool.java:644)\n\tat org.apache.solr.handler.BlobHandler.handleRequestBody(BlobHandler.java:102)\n\tat org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:156)\n\tat org.apache.solr.core.SolrCore.execute(SolrCore.java:2036)\n\tat org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:657)\n\tat org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:464)\n\tat org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:257)\n\tat org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:208)\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)\n\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)\n\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)\n\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)\n\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)\n\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1160)\n\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)\n\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)\n\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1092)\n\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)\n\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)\n\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:119)\n\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)\n\tat org.eclipse.jetty.server.Server.handle(Server.java:518)\n\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)\n\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:244)\n\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)\n\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)\n\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)\n\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:246)\n\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:156)\n\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)\n\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)\n\tat java.lang.Thread.run(Thread.java:745)\n", 

Antwort

1

Die Standardgröße eines Objekts in dem BLOB-Speicher ist 5 MB. Sie können die maximale Größe erhöhen, indem Sie den Konfigurationswert -Dblob.max.size.mb=nnn verwenden. Beachten Sie, dass Blobs auf dem Heap gespeichert werden und dass Sie beim Erstellen des Anforderungshandlers möglicherweise die runtimeLib=true verwenden müssen. (Diese Informationen und mehr finden Sie in den folgenden Links.)

Die Wiki-Seite, einschließlich der Kommentare am Ende, ist sehr informativ. https://cwiki.apache.org/confluence/display/solr/Blob+Store+API

Das SOLR jira Ticket der Blob Store-Funktion hat die Diskussion im Zusammenhang mit der Standardgröße zu erstellen: https://issues.apache.org/jira/browse/SOLR-6787