【问题标题】:SEVERE error writing to S3 backup写入 S3 备份的严重错误
【发布时间】:2015-07-16 21:55:40
【问题描述】:

我正在运行 OpsCenter 5.1.1 和 Datastax Enterprise 4.5.1。这是 AWS 上的一个 3 节点集群,我正在备份到 S3(仍然......)我开始看到一个新错误。我认为这与我发布的 b4 错误不同。

$ cqlsh Connected to Test Cluster at localhost:9160. [cqlsh 4.1.1 | Cassandra 2.0.8.39 | CQL spec 3.1.1 | Thrift protocol 19.39.0]

我在 agent.log 文件中看到了这个错误

node1_agent.log: SEVERE: error after writing 15736832/16777216 bytes to https://cassandra-dev-bkup.s3.amazonaws.com/snapshots/407bb4b1-5c91-43fe-9d4f-767115668037/sstables/1430904167-reporting_test-transaction_lookup-jb-288-Index.db?partNumber=2&uploadId=.MA3X4RYssg7xL_Hr7Msgze.J4exDq9zZ_0Y7qEj9gZhJ570j73kZNr5_nbxactmPMJeKf0XyZfEC0KAplWOz9lpyRCtNeeDCvCmtEXDchH8F1J2c57aq4MrxfBcyiZr java.io.IOException: Error writing request body to server at sun.net.www.protocol.http.HttpURLConnection$StreamingOutputStream.checkError(HttpURLConnection.java:3192) at sun.net.www.protocol.http.HttpURLConnection$StreamingOutputStream.write(HttpURLConnection.java:3175) at com.google.common.io.CountingOutputStream.write(CountingOutputStream.java:53) at com.google.common.io.ByteStreams.copy(ByteStreams.java:179) at org.jclouds.http.internal.JavaUrlHttpCommandExecutorService.writePayloadToConnection(JavaUrlHttpCommandExecutorService.java:308) at org.jclouds.http.internal.JavaUrlHttpCommandExecutorService.convert(JavaUrlHttpCommandExecutorService.java:192) at org.jclouds.http.internal.JavaUrlHttpCommandExecutorService.convert(JavaUrlHttpCommandExecutorService.java:72) at org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:95) at org.jclouds.rest.internal.InvokeSyncToAsyncHttpMethod.invoke(InvokeSyncToAsyncHttpMethod.java:128) at org.jclouds.rest.internal.InvokeSyncToAsyncHttpMethod.apply(InvokeSyncToAsyncHttpMethod.java:94) at org.jclouds.rest.internal.InvokeSyncToAsyncHttpMethod.apply(InvokeSyncToAsyncHttpMethod.java:55) at org.jclouds.rest.internal.DelegatesToInvocationFunction.handle(DelegatesToInvocationFunction.java:156) at org.jclouds.rest.internal.DelegatesToInvocationFunction.invoke(DelegatesToInvocationFunction.java:123) at com.sun.proxy.$Proxy48.uploadPart(Unknown Source) at org.jclouds.aws.s3.blobstore.strategy.internal.SequentialMultipartUploadStrategy.prepareUploadPart(SequentialMultipartUploadStrategy.java:111) at org.jclouds.aws.s3.blobstore.strategy.internal.SequentialMultipartUploadStrategy.execute(SequentialMultipartUploadStrategy.java:93) at org.jclouds.aws.s3.blobstore.AWSS3BlobStore.putBlob(AWSS3BlobStore.java:89) at org.jclouds.blobstore2$put_blob.doInvoke(blobstore2.clj:246) at clojure.lang.RestFn.invoke(RestFn.java:494) at opsagent.backups.destinations$create_blob$fn__12007.invoke(destinations.clj:69) at opsagent.backups.destinations$create_blob.invoke(destinations.clj:64) at opsagent.backups.destinations$fn__12170.invoke(destinations.clj:192) at opsagent.backups.destinations$fn__11799$G__11792__11810.invoke(destinations.clj:24) at opsagent.backups.staging$start_staging_BANG_$fn__12338$state_machine__7576__auto____12339$fn__12344$fn__12375.invoke(staging.clj:61) at opsagent.backups.staging$start_staging_BANG_$fn__12338$state_machine__7576__auto____12339$fn__12344.invoke(staging.clj:59) at opsagent.backups.staging$start_staging_BANG_$fn__12338$state_machine__7576__auto____12339.invoke(staging.clj:56) at clojure.core.async.impl.ioc_macros$run_state_machine.invoke(ioc_macros.clj:940) at clojure.core.async.impl.ioc_macros$run_state_machine_wrapped.invoke(ioc_macros.clj:944) at clojure.core.async.impl.ioc_macros$take_BANG_$fn__7592.invoke(ioc_macros.clj:953) at clojure.core.async.impl.channels.ManyToManyChannel$fn__4097.invoke(channels.clj:102) at clojure.lang.AFn.run(AFn.java:24) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745)

【问题讨论】:

  • cassandra-dev-bkup.s3.amazonaws.com/snapshots/… 的 s3 中有部分文件吗?
  • 那里有一个文件:Bucket: cassandra-dev-bkup Folder: sstables Name: 1430904167-reporting_test-transaction_lookup-jb-288-Index.db Link: [This is a private link] https://s3.amazonaws.com/cassandra-dev-bkup/snapshots/407bb4b1-5c91-43fe-9d4f-767115668037/sstables/1430904167-reporting_test-transaction_lookup-jb-288-Index.db Size: 38866048 Last Modified: Wed May 06 12:00:58 GMT-400 2015 Owner: clutch_point ETag: 9f9dd7ae2c2aa9d77ed56c7057f36394-3 Expiry Date: None Expiration Rule: N/A
  • 在服务器(node1)上有一个对应的文件:ubuntu@ip-10-0-1-191:/var/lib/cassandra/data/reporting_test/transaction_lookup$ ls -alrt *Index.db -rw-r--r-- 2 cassandra cassandra **38866048** May 6 09:22 reporting_test-transaction_lookup-jb-288-Index.db -- 大小一样
  • 所以 s3 和文件系统 ^^ 上的文件是 38866048 字节。这与严重错误中的 15736832/16777216 字节不匹配。你能仔细检查一下吗?可能是不同的 SSTABLE
  • 我有这个$ cat /usr/share/datastax-agent/conf/datastax-agent-env.sh JVM_OPTS="$JVM_OPTS -Xmx256M" JVM_OPTS="$JVM_OPTS -Djclouds.mpu.parts.magnitude=100000" JVM_OPTS="$JVM_OPTS -Djclouds.mpu.parts.size=16777216" 是因为最后一部分小于parts.size 导致的错误吗?

标签: cassandra-2.0 datastax-enterprise opscenter


【解决方案1】:

TL;DR -

您的 SSTable 为 38866048 字节,位于您的文件系统和 S3 上。这意味着文件已转移,您的状态良好。无需担心这个错误(尽管我打开了一个内部票据来处理这种异常而不是抛出转储)。

详细信息 - 我怀疑发生的事情的摘要

1) 当您到达 sstable 的 16777216 字节切片中的 15736832 时,出现文件传输错误。

2) 此时 OpsCenter 尚未完成表传输或将部分版本留在 s3 中

3) 稍后的另一次备份尝试移动了 sstable,没有出现错误,并且存在有效的备份。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-22
    • 2017-04-30
    • 1970-01-01
    • 2021-05-19
    • 2019-01-05
    • 2021-04-13
    • 2018-06-14
    • 1970-01-01
    相关资源
    最近更新 更多