lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joe Obernberger <joseph.obernber...@gmail.com>
Subject Re: Can't recover - HDFS
Date Tue, 03 Jul 2018 12:55:30 GMT
Thank you Shawn -

I think the root issue is related to some weirdness with HDFS. Log file 
is here:
http://lovehorsepower.com/solr.log.4
Config is here:
http://lovehorsepower.com/solrconfig.xml
I don't see anything set to 20 seconds.

I believe the root exception is:

org.apache.hadoop.ipc.RemoteException(java.io.IOException): File 
/solr7.1.0/UNCLASS_30DAYS/core_node-1684300827/data/tlog/tlog.0000000000000008930 
could only be replicated to 0 nodes instead of minReplication (=1).  
There are 41 datanode(s) running and no node(s) are excluded in this 
operation.
         at 
org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.chooseTarget4NewBlock(BlockManager.java:1724)
         at 
org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:3449)
         at 
org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock(NameNodeRpcServer.java:692)
         at 
org.apache.hadoop.hdfs.server.namenode.AuthorizationProviderProxyClientProtocol.addBlock(AuthorizationProviderProxyClientProtocol.java:217)
         at 
org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addBlock(ClientNamenodeProtocolServerSideTranslatorPB.java:506)
         at 
org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
         at 
org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:617)
         at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1073)
         at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2281)
         at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2277)
         at java.security.AccessController.doPrivileged(Native Method)
         at javax.security.auth.Subject.doAs(Subject.java:422)
         at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1920)
         at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2275)

         at org.apache.hadoop.ipc.Client.call(Client.java:1504)
         at org.apache.hadoop.ipc.Client.call(Client.java:1441)
         at 
org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:230)
         at com.sun.proxy.$Proxy11.addBlock(Unknown Source)
         at 
org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.addBlock(ClientNamenodeProtocolTranslatorPB.java:423)
         at sun.reflect.GeneratedMethodAccessor28.invoke(Unknown Source)
         at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
         at java.lang.reflect.Method.invoke(Method.java:498)
         at 
org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:258)
         at 
org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:104)
         at com.sun.proxy.$Proxy12.addBlock(Unknown Source)
         at 
org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.locateFollowingBlock(DFSOutputStream.java:1860)
         at 
org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.nextBlockOutputStream(DFSOutputStream.java:1656)
         at 
org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:790)
2018-07-02 14:50:24.949 ERROR (indexFetcher-41-thread-1) 
[c:UNCLASS_30DAYS s:shard37 r:core_node-1684300827 
x:UNCLASS_30DAYS_shard37_replica_t-1246382645] 
o.a.s.h.ReplicationHandler Exception in fetching index
org.apache.solr.common.SolrException: Error logging add
         at 
org.apache.solr.update.TransactionLog.write(TransactionLog.java:420)
         at org.apache.solr.update.UpdateLog.add(UpdateLog.java:535)
         at org.apache.solr.update.UpdateLog.add(UpdateLog.java:519)
         at 
org.apache.solr.update.UpdateLog.copyOverOldUpdates(UpdateLog.java:1213)
         at 
org.apache.solr.update.UpdateLog.copyAndSwitchToNewTlog(UpdateLog.java:1168)
         at 
org.apache.solr.update.UpdateLog.copyOverOldUpdates(UpdateLog.java:1155)
         at 
org.apache.solr.cloud.ReplicateFromLeader.lambda$startReplication$0(ReplicateFromLeader.java:100)
         at 
org.apache.solr.handler.ReplicationHandler.lambda$setupPolling$12(ReplicationHandler.java:1160)
         at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
         at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
         at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
         at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
         at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
         at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
         at java.lang.Thread.run(Thread.java:748)

Thank you very much for the help!

-Joe


On 7/2/2018 8:32 PM, Shawn Heisey wrote:
> On 7/2/2018 1:40 PM, Joe Obernberger wrote:
>> Hi All - having this same problem again with a large index in HDFS.  A
>> replica needs to recover, and it just spins retrying over and over
>> again.  Any ideas?  Is there an adjustable timeout?
>>
>> Screenshot:
>> http://lovehorsepower.com/images/SolrShot1.jpg
> There is considerably more log detail available than can be seen in the
> screenshot.  Can you please make your solr.log file from this server
> available so we can see full error and warning log messages, and let us
> know the exact Solr version that wrote the log?  You'll probably need to
> use a file sharing site, and make sure the file is available until after
> the problem has been examined.  Attachments sent to the mailing list are
> almost always stripped.
>
> Based on the timestamps in the screenshot, it is taking about 22 to 24
> seconds to transfer 1750073344 bytes.  Which calculates to right around
> the 75 MB per second rate that you were configuring in your last email
> thread.  In order for that single large file to transfer successfully,
> you're going to need a timeout of at least 40 seconds.  Based on what I
> see, it sounds like the timeout has been set to 20 seconds.  The default
> client socket timeout on replication should be about two minutes, which
> would be plenty for a file of that size to transfer.
>
> This might be a timeout issue, but without seeing the full log and
> knowing the exact version of Solr that created it, it is difficult to
> know for sure where the problem might be or what can be done to fix it.
> We will need that logfile.  If there are multiple servers involved, we
> may need logfiles from both ends of the replication.
>
> Do you have any config in solrconfig.xml for the /replication handler
> other than the maxWriteMBPerSec config you showed last time?
>
> Have you configured anything (particularly a socket timeout or sotimeout
> setting) to a value near 20 or 20000?
>
> Thanks,
> Shawn
>
>
> ---
> This email has been checked for viruses by AVG.
> https://www.avg.com
>


Mime
View raw message