Repository navigation
Description
Expected behavior 期望表现
{type something here...}
Actual behavior 实际表现
Exception in thread "main" com.baidu.hugegraph.rest.ClientException: Failed to do request
at com.baidu.hugegraph.rest.RestClient.request(RestClient.java:69)
at com.baidu.hugegraph.rest.RestClient.delete(RestClient.java:186)
at com.baidu.hugegraph.api.graphs.GraphsAPI.clear(GraphsAPI.java:82)
at com.baidu.hugegraph.driver.GraphsManager.clear(GraphsManager.java:54)
at com.graph.service.SingleExample.clearGraphByName(SingleExample.java:205)
at com.graph.service.SingleExample.main(SingleExample.java:210)
Caused by: javax.ws.rs.ProcessingException: java.net.SocketTimeoutException: Read timed out
at org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:287)
at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:252)
at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:684)
at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:681)
at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
at org.glassfish.jersey.internal.Errors.process(Errors.java:228)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:444)
at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:681)
at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:411)
at org.glassfish.jersey.client.JerseyInvocation$Builder.delete(JerseyInvocation.java:360)
at com.baidu.hugegraph.rest.RestClient.lambda$delete$5(RestClient.java:187)
at com.baidu.hugegraph.rest.RestClient.request(RestClient.java:67)
... 5 more
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:171)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:735)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:678)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1587)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
at org.glassfish.jersey.client.internal.HttpUrlConnector._apply(HttpUrlConnector.java:399)
at org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:285)
... 17 more
Steps to reproduce the problem 复现步骤
- {step 1}
- {step 2}
- {step 3}
Status of loaded data 数据状态
Vertex/Edge summary 数据量
- loaded vertices amount: {like 10 million}
- loaded edges amount: {like 20 million}
- loaded time: {like 200s}
Vertex/Edge example 数据示例
{type something here...}
Schema(VertexLabel, EdgeLabel, IndexLabel) 元数据结构
{type something here...}
Specifications of environment 环境信息
- hugegraph version: {like v0.7.4}
- operating system: {like centos 7.4, 32 CPUs, 64G RAM}
- hugegraph backend: {like cassandra 3.10, cluster with 20 nodes, 3 x 1TB HDD disk each node}
Activity
javeme commentedon Dec 25, 2018
@1315861791 请问hugegraph是哪个版本?这个问题是超时了,可能数据量比较大。
fgz00 commentedon Dec 25, 2018
@javeme 您好,我用的版本是0.8.0,数据量在1万以内。我在配置文件中设置了超时时间也没用的。
配置如下:
task.wait_timeout=300
scriptEvaluationTimeout: 300000
我是在java 程序用用这行代码操作的:
hugeClient.graphs().clear(graphName,"I'm sure to delete all data");
javeme commentedon Dec 25, 2018
@1315861791 client也需要设置超时时间:
HugeClient(String url, String graph, int timeout),另外请问使用的后端存储是什么类型?fgz00 commentedon Dec 25, 2018
@javeme 非常感谢。后端存储用的是hbase。
我给client设置了超时时间以后报错如下:
Exception in thread "main" class com.baidu.hugegraph.backend.BackendException: Exception in backend
at com.baidu.hugegraph.exception.ServerException.fromResponse(ServerException.java:44)
at com.baidu.hugegraph.client.RestClient.checkStatus(RestClient.java:63)
at com.baidu.hugegraph.rest.RestClient.delete(RestClient.java:189)
at com.baidu.hugegraph.api.graphs.GraphsAPI.clear(GraphsAPI.java:82)
at com.baidu.hugegraph.driver.GraphsManager.clear(GraphsManager.java:54)
at com.graph.service.SingleExample.clearGraphByName(SingleExample.java:205)
at com.graph.service.SingleExample.main(SingleExample.java:210)
Caused by: org.apache.hadoop.hbase.regionserver.NoSuchColumnFamilyException: org.apache.hadoop.hbase.regionserver.NoSuchColumnFamilyException: Column family table does not exist in region hbase:meta,,1.1588230740 in table 'hbase:meta', {TABLE_ATTRIBUTES => {IS_META => 'true', coprocessor$1 => '|org.apache.hadoop.hbase.coprocessor.MultiRowMutationEndpoint|536870911|'}, {NAME => 'info', BLOOMFILTER => 'NONE', VERSIONS => '10', IN_MEMORY => 'true', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', CACHE_DATA_IN_L1 => 'true', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '8192', REPLICATION_SCOPE => '0'}
at org.apache.hadoop.hbase.regionserver.HRegion.checkFamily(HRegion.java:7884)
at org.apache.hadoop.hbase.regionserver.HRegion.get(HRegion.java:6920)
at org.apache.hadoop.hbase.regionserver.RSRpcServices.get(RSRpcServices.java:2027)
at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:33644)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2191)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:112)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:183)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:163)
fgz00 commentedon Dec 25, 2018
@javeme 多执行了几次就删除掉了。麻烦问一下我要做一个web服务的话client能不能像数据库连接池一样一直存在。如果我这样写的话会不会出现client过时的情况二无法使用:
private static HugeClient hugeClient;
javeme commentedon Dec 25, 2018
@1315861791 client可以一直存在的。
fgz00 commentedon Dec 25, 2018
@javeme 感谢你的回答,我是不是可以这样理解:HugeClient(String url, String graph, int timeout),这里的timeout表示的是client提交的单个任务的超时时间?
javeme commentedon Dec 25, 2018
@1315861791 是的,具体是指一次发送request出去之后到接收到对应response之间的时间。
fgz00 commentedon Dec 25, 2018
@javeme 明白了,非常感谢!