Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何调试多次重试后映射作业失败的原因_Java_Mapreduce_Hbase_Yarn_Mapper - Fatal编程技术网

Java 如何调试多次重试后映射作业失败的原因

Java 如何调试多次重试后映射作业失败的原因,java,mapreduce,hbase,yarn,mapper,Java,Mapreduce,Hbase,Yarn,Mapper,我编写了一个mapreduce作业,在特定时间范围内扫描hbase表,以计算分析所需的特定元素 MR工作中的制图员总是失败,但我不知道为什么。似乎每次我运行作业时,都会有不同数量的映射程序失败。Cloudera manager的纱线日志(见下文)无助于指出问题所在,尽管有人说我可能内存不足 它似乎重试多次,但每次都失败。我需要做什么才能让它停止失败,或者我如何记录事情以帮助我更好地确定发生了什么 下面是一个失败的绘图程序的记录 错误:org.apache.hadoop.hbase.client.

我编写了一个mapreduce作业,在特定时间范围内扫描hbase表,以计算分析所需的特定元素

MR工作中的制图员总是失败,但我不知道为什么。似乎每次我运行作业时,都会有不同数量的映射程序失败。Cloudera manager的纱线日志(见下文)无助于指出问题所在,尽管有人说我可能内存不足

它似乎重试多次,但每次都失败。我需要做什么才能让它停止失败,或者我如何记录事情以帮助我更好地确定发生了什么

下面是一个失败的绘图程序的记录

错误:org.apache.hadoop.hbase.client.RetriesHaustedException: 尝试后失败=36次,例外情况:2017年6月15日星期四16:26:57 PDT, null,java.net.SocketTimeoutException:callTimeout=60000, callDuration=60301:on上的行“152_p3401.db161139.sjc102.dbi_1496271480” 表“基于dbi_的_数据” region=dbi_-based_-data,151_p3413.db162024.iad4.dbi_14769743401486675565213.d83250d0682e648d165872afe5abd60e,hostname=hslave35118.ams9.mysecretdomain.com,600201483570489305, seqNum=19308931 at org.apache.hadoop.hbase.client.rpcretryingcallerwithreadreplications.throwEnrichedException(rpcretryingcallerwithreadreplications.java:276) 在 org.apache.hadoop.hbase.client.scannercallablewithreplications.call(scannercallablewithreplications.java:207) 在 org.apache.hadoop.hbase.client.scannercallablewithreplications.call(scannercallablewithreplications.java:60) 在 org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:200) 在 org.apache.hadoop.hbase.client.ClientScanner.call(ClientScanner.java:320) 在 org.apache.hadoop.hbase.client.ClientScanner.loadCache(ClientScanner.java:403) 在 org.apache.hadoop.hbase.client.ClientScanner.next(ClientScanner.java:364) 在 org.apache.hadoop.hbase.mapreduce.TableRecordReaderImpl.nextKeyValue(TableRecordReaderImpl.java:236) 在 org.apache.hadoop.hbase.mapreduce.TableRecordReader.nextKeyValue(TableRecordReader.java:147) 在 org.apache.hadoop.hbase.mapreduce.TableInputFormatBase$1.nextKeyValue(TableInputFormatBase.java:216) 在 org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:556) 在 org.apache.hadoop.mapreduce.task.MapContextImpl.nextKeyValue(MapContextImpl.java:80) 在 org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context.nextKeyValue(WrappedMapper.java:91) 位于org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144) org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:787)位于 org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)位于 org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164)位于 java.security.AccessController.doPrivileged(本机方法)位于 javax.security.auth.Subject.doAs(Subject.java:415)位于 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1693) 在org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)上 by:java.net.SocketTimeoutException:callTimeout=60000, callDuration=60301:on上的行“152_p3401.db161139.sjc102.dbi_1496271480” 表“基于dbi_的_数据” region=dbi_-based_-data,151_p3413.db162024.iad4.dbi_14769743401486675565213.d83250d0682e648d165872afe5abd60e,hostname=hslave35118.ams9.mysecretdomain.com,600201483570489305, seqNum=19308931 at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:159) 在 org.apache.hadoop.hbase.client.ResultBoundedCompletionService$QueueingFuture.run(ResultBoundedCompletionService.java:65) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在java.lang.Thread.run(Thread.java:745)处,由以下原因引起: java.io.IOException:调用 hslave35118.ams9.mysecretdomain.com/10.216.35.118:60020在上失败 本地异常:org.apache.hadoop.hbase.ipc.CallTimeoutException: 呼叫id=12,等待时间=60001,操作超时=60000过期。在 org.apache.hadoop.hbase.ipc.AbstractRpcClient.wrapException(AbstractRpcClient.java:291) 在 org.apache.hadoop.hbase.ipc.RpcClientImpl.call(RpcClientImpl.java:1272) 在 org.apache.hadoop.hbase.ipc.AbstractRpcClient.callBlockingMethod(AbstractRpcClient.java:226) 在 org.apache.hadoop.hbase.ipc.AbstractRpcClient$BlockingRpcChannelImplementation.callBlockingMethod(AbstractRpcClient.java:331) 在 org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$BlockingStub.scan(ClientProtos.java:34094) 在 org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:219) 在 org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:64) 在 org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:200) 在 org.apache.hadoop.hbase.client.scannercallablewithreplications$RetryingRPC.call(scannercallablewithreplications.java:360) 在 org.apache.hadoop.hbase.client.scannercallablewithreplications$retryngrpc.call(scannercallablewithreplications.java:334) 在 org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:126) ... 又有4宗是由于: org.apache.hadoop.hbase.ipc.CallTimeoutException:调用id=12, waitTime=60001,操作超时=60000已过期。在 org.apache.hadoop.hbase.ipc.Call.checkAndSetTimeout(Call.java:73)位于 org.apache.hadoop.hbase.ipc.RpcClientImpl.call(RpcClientImpl.java:1246) ... 还有13个


因此,对于我的情况,我需要扩展超时设置。在我的Java程序中,我必须添加以下行以消除异常:

    conf.set("hbase.rpc.timeout","90000");
    conf.set("hbase.client.scanner.timeout.period","90000");
找到了答案