2015-10-23 6 views
24

मैं कैसंड्रा-लोडर का उपयोग कर कैसंड्रा में एक बड़ा सीएसवी लोड कर रहा था।कैसंद्रा: शुरुआतीकरण के दौरान प्रतिबद्ध लॉग प्रसंस्करण करते समय त्रुटि के कारण बाहर निकलना

वीएम इस प्रक्रिया के दौरान डिस्क स्पेस से बाहर हो गया और दुर्घटनाग्रस्त हो गया। मैंने वीएम को और डिस्क स्थान आवंटित किया और कैसंद्रा शुरू करने की कोशिश की लेकिन एसएसटीबल्स के साथ समस्याओं के कारण शुरू होने से इनकार कर दिया और लॉग प्रतिबद्ध किया।

मैं nodetool repair नहीं चला सका क्योंकि यह नोड ऑनलाइन होने पर ही काम करता है। मैं sstablescrub भाग गया जो खत्म होने में लगभग 1 घंटा लगा। तो मैंने सोचा कि यह इसे ठीक कर सकता है।

लेकिन मैं अभी भी system.log

ERROR [SSTableBatchOpen:4] 2015-10-23 18:57:45,035 SSTableReader.java:506 - Corrupt sstable /var/lib/cassandra/data/keyspace1/location-777a33d0772911e597a98b820c5778a4/la-1709-big=[TOC.txt, CompressionInfo.db, Statistics.db, Digest.adler32, Data.db, Index.db, Filter.db]; skipping table 
org.apache.cassandra.io.sstable.CorruptSSTableException: java.io.EOFException 
     at org.apache.cassandra.io.compress.CompressionMetadata.<init>(CompressionMetadata.java:125) ~[apache-cassandra-2.2.3.jar:2.2.3] 
     at org.apache.cassandra.io.compress.CompressionMetadata.create(CompressionMetadata.java:86) ~[apache-cassandra-2.2.3.jar:2.2.3] 
     at org.apache.cassandra.io.util.CompressedSegmentedFile$Builder.metadata(CompressedSegmentedFile.java:142) ~[apache-cassandra-2.2.3.jar:2.2.3] 
     at org.apache.cassandra.io.util.CompressedPoolingSegmentedFile$Builder.complete(CompressedPoolingSegmentedFile.java:101) ~[apache-cassandra-2.2.3.jar:2.2.3] 
     at org.apache.cassandra.io.util.SegmentedFile$Builder.complete(SegmentedFile.java:187) ~[apache-cassandra-2.2.3.jar:2.2.3] 
     at org.apache.cassandra.io.util.SegmentedFile$Builder.complete(SegmentedFile.java:179) ~[apache-cassandra-2.2.3.jar:2.2.3] 
     at org.apache.cassandra.io.sstable.format.SSTableReader.load(SSTableReader.java:703) ~[apache-cassandra-2.2.3.jar:2.2.3] 
     at org.apache.cassandra.io.sstable.format.SSTableReader.load(SSTableReader.java:664) ~[apache-cassandra-2.2.3.jar:2.2.3] 
     at org.apache.cassandra.io.sstable.format.SSTableReader.open(SSTableReader.java:458) ~[apache-cassandra-2.2.3.jar:2.2.3] 
     at org.apache.cassandra.io.sstable.format.SSTableReader.open(SSTableReader.java:363) ~[apache-cassandra-2.2.3.jar:2.2.3] 
     at org.apache.cassandra.io.sstable.format.SSTableReader$4.run(SSTableReader.java:501) ~[apache-cassandra-2.2.3.jar:2.2.3] 
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_60] 
     at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_60] 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_60] 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_60] 
     at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60] 
Caused by: java.io.EOFException: null 
     at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:340) ~[na:1.8.0_60] 
     at java.io.DataInputStream.readUTF(DataInputStream.java:589) ~[na:1.8.0_60] 
     at java.io.DataInputStream.readUTF(DataInputStream.java:564) ~[na:1.8.0_60] 
     at org.apache.cassandra.io.compress.CompressionMetadata.<init>(CompressionMetadata.java:96) ~[apache-cassandra-2.2.3.jar:2.2.3] 
     ... 15 common frames omitted 
INFO [main] 2015-10-23 18:57:45,193 ColumnFamilyStore.java:382 - Initializing system_auth.role_permissions 
INFO [main] 2015-10-23 18:57:45,201 ColumnFamilyStore.java:382 - Initializing system_auth.resource_role_permissons_index 
INFO [main] 2015-10-23 18:57:45,213 ColumnFamilyStore.java:382 - Initializing system_auth.roles 
INFO [main] 2015-10-23 18:57:45,233 ColumnFamilyStore.java:382 - Initializing system_auth.role_members 
INFO [main] 2015-10-23 18:57:45,240 ColumnFamilyStore.java:382 - Initializing system_traces.sessions 
INFO [main] 2015-10-23 18:57:45,252 ColumnFamilyStore.java:382 - Initializing system_traces.events 
INFO [main] 2015-10-23 18:57:45,265 ColumnFamilyStore.java:382 - Initializing simplex.songs 
INFO [main] 2015-10-23 18:57:45,276 ColumnFamilyStore.java:382 - Initializing simplex.playlists 
INFO [pool-2-thread-1] 2015-10-23 18:57:45,289 AutoSavingCache.java:187 - reading saved cache /var/lib/cassandra/saved_caches/KeyCache-ca.db 
INFO [pool-2-thread-1] 2015-10-23 18:57:45,313 AutoSavingCache.java:163 - Completed loading (25 ms; 36 keys) KeyCache cache 
INFO [main] 2015-10-23 18:57:45,351 CommitLog.java:168 - Replaying /var/lib/cassandra/commitlog/CommitLog-5-1445578022702.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022703.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022704.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022705.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022706.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022707.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022708.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022709.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022710.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022712.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022713.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022714.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022715.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022716.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022717.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022719.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022720.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022721.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022722.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022723.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022724.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022725.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022727.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022728.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022730.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022731.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022732.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022733.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022734.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022736.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022738.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022740.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022741.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022743.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022744.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022745.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022746.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022748.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022749.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022750.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022751.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022752.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022753.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022755.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022756.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022758.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022759.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022760.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022761.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022763.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022764.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022765.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022766.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022767.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022768.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022769.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022770.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022771.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022772.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022773.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022774.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022775.log, /var/lib/cassandra/commitlog/CommitLog-5-1445578022776.log, /var/lib/cassandra/commitlog/CommitLog-5-1445588991268.log, /var/lib/cassandra/commitlog/CommitLog-5-1445589094722.log, /var/lib/cassandra/commitlog/CommitLog-5-1445589149527.log, /var/lib/cassandra/commitlog/CommitLog-5-1445595828633.log, /var/lib/cassandra/commitlog/CommitLog-5-1445595898055.log, /var/lib/cassandra/commitlog/CommitLog-5-1445596033717.log, /var/lib/cassandra/commitlog/CommitLog-5-1445596400441.log, /var/lib/cassandra/commitlog/CommitLog-5-1445596601854.log, /var/lib/cassandra/commitlog/CommitLog-5-1445598032544.log, /var/lib/cassandra/commitlog/CommitLog-5-1445598758663.log, /var/lib/cassandra/commitlog/CommitLog-5-1445601112953.log, /var/lib/cassandra/commitlog/CommitLog-5-1445601937334.log, /var/lib/cassandra/commitlog/CommitLog-5-1445601985416.log, /var/lib/cassandra/commitlog/CommitLog-5-1445604504389.log, /var/lib/cassandra/commitlog/CommitLog-5-1445606516196.log 
ERROR [main] 2015-10-23 18:59:05,091 JVMStabilityInspector.java:78 - Exiting due to error while processing commit log during initialization. 
org.apache.cassandra.db.commitlog.CommitLogReplayer$CommitLogReplayException: Mutation checksum failure at 4110758 in CommitLog-5-1445578022776.log 
     at org.apache.cassandra.db.commitlog.CommitLogReplayer.handleReplayError(CommitLogReplayer.java:622) [apache-cassandra-2.2.3.jar:2.2.3] 
     at org.apache.cassandra.db.commitlog.CommitLogReplayer.replaySyncSection(CommitLogReplayer.java:492) [apache-cassandra-2.2.3.jar:2.2.3] 
     at org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:388) [apache-cassandra-2.2.3.jar:2.2.3] 
     at org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:147) [apache-cassandra-2.2.3.jar:2.2.3] 
     at org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:189) [apache-cassandra-2.2.3.jar:2.2.3] 
     at org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:169) [apache-cassandra-2.2.3.jar:2.2.3] 
     at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:273) [apache-cassandra-2.2.3.jar:2.2.3] 
     at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:513) [apache-cassandra-2.2.3.jar:2.2.3] 
     at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:622) [apache-cassandra-2.2.3.jar:2.2.3] 
Exiting due to error while processing commit log during initialization. 

मैं इसे कैसे ठीक करूं में इस त्रुटि मिलती है? यह परीक्षण डेटा है, मैं इसे खोने के साथ ठीक हूँ। डेटा हानि से बचने के लिए इसे उत्पादन में कैसे संभाला जाएगा?

disk_failure_policy: ignore सेटिंग करने का प्रयास किया ताकि मैं सर्वर बनने के बाद nodetool repair चला सकूं। लेकिन सर्वर इस सेटिंग के साथ भी शुरू नहीं होता है।

मैं एक एकल नोड और प्रतिकृति कारक का संचालन कर रहा हूं 1. क्या अधिक नोड्स और एक> 1 प्रतिकृति कारक मुझे डेटा हानि के बिना इस तरह के किसी मुद्दे को ठीक करने में सक्षम बनाता है?

मैं कैसेंड्रा 2.2.3

उत्तर

14

उपयोग कर रहा हूँ कुछ प्रतिकृति होने निश्चित रूप से आप डेटा हानि के बिना इसे ठीक करने में मदद मिलेगी लेकिन यह एक मूल्य के साथ आएगा।

आपके सभी प्रयासों के बावजूद आप अपने दूषित sstable को पुनर्प्राप्त करने के लिए प्रबंधित नहीं कर सकते हैं। तो आप फिर से कैसंड्रा शुरू करने के लिए इसे अपने फाइल सिस्टम से हटाने का फैसला करते हैं। यदि आपके पास प्रतिकृति नहीं है तो आपका डेटा गुम हो गया है। लेकिन अगर आपके पास क्लस्टर पर प्रतिकृति है, तो आप संभवतः अन्य नोड्स से डेटा प्राप्त कर सकते हैं। यही है nodetool repair करो!

तो nodetool repair दूषित sstable की मरम्मत नहीं करता है। असल में nodetool repair लापता या असंगत डेटा खोजने के लिए नोड से नोड तक तालिकाओं की तुलना करें और फिर इसे सुधारें। आप here पर कैसे काम करते हैं, इस बारे में अधिक जानकारी प्राप्त कर सकते हैं।

हालांकि nodetool repair बहुत महंगा है, यह लंबा है और बहुत सी सीपीयू, डिस्क और नेटवर्क का उपयोग करता है। मरम्मत लाभ और कमियों के बारे में यह अच्छा post है।

+1

लॉग में देखा गया है, एक खराब एसएसटीबल फ़ाइल के बारे में शीर्ष अपवाद वार्ता और खराब कमिट लॉग फ़ाइल के बारे में नीचे अपवाद वार्ता। तो उन दो फाइलों को हटाने से यह ठीक हो जाएगा? (जैसा कि कैसंड्रा को डेटा हानि के साथ शुरू करने दें) – Dojo

+2

यह आगे बढ़ने का एक अच्छा तरीका नहीं है लेकिन मुझे कोई दूसरा नहीं पता है। और हाँ कैसंद्रा शुरू हो जाएगा। – DineMartine

+1

यह काम किया। कैसंद्रा ऊपर है। धन्यवाद। – Dojo

35

चूंकि आपको डेटा की परवाह नहीं है, \ data \ commitlogs से फ़ाइलों को निकालना सबसे आसान समाधान होना चाहिए।

2

बस कैसंड्रा में लॉग निर्देशिका में जाता है और लॉग फ़ाइलों को हटा देता है। यह ठीक काम करता है ....

7

इस प्रकार मैंने प्रतिबद्ध लॉग के साथ समस्या को ठीक किया। आपको केवल तभी ऐसा करना चाहिए यदि आप अपने प्रतिबद्ध लॉग की स्थिति को सुरक्षित रखने की परवाह नहीं करते हैं।

कोशिश

sudo systemctl restart cassandra

का उपयोग कर कैसेंड्रा पुनः आरंभ करने की तो मैं

systemctl status cassandra

जांच करें और देखें कि स्थिति 'से बाहर निकल गया' है तो वहाँ एक समस्या है।

sudo less /var/log/cassandra/system.log

का उपयोग कर कैसेंड्रा के लॉग को जांच और org.apache.cassandra.db.commitlog.CommitLogReplayer$CommitLogReplayException: Could not read commit log descriptor in file /var/lib/cassandra/commitlog/CommitLog-6-1498210233635.log

देख क्योंकि मैं कैसेंड्रा के राज्य मैं प्रतिबद्ध लॉग को हटाना संरक्षण के बारे में परवाह नहीं है और यह अब ठीक

अप बूट

sudo rm /var/lib/cassandra/commitlog/CommitLog* sudo systemctl restart cassandra

systemctl status cassandra (पुष्टि करनी चाहिए कि यह यह अब चल)

+0

यह समाधान मेरे लिए काम किया। इसे साझा करने के लिए धन्यवाद! –

संबंधित मुद्दे