JanusGraph 0.5.2 คาสซานดราแบบฝัง java.lang.NoSuchMethodError: com.codahale.metrics.Snapshot

เรากำลังตั้งค่า JanusGraph 0.5.2 ด้วยโหมด Cassandra แบบฝัง
เมื่อเราเริ่ม Janus ในโหมดนี้ มันจะแสดงข้อยกเว้นด้านล่างในบันทึก:

org.apache.cassandra.service.CassandraDaemon - Exception in thread Thread[OptionalTasks:1,5,main]
java.lang.NoSuchMethodError: com.codahale.metrics.Snapshot: method <init>()V not found
    at org.apache.cassandra.metrics.DecayingEstimatedHistogramReservoir$EstimatedHistogramReservoirSnapshot.<init>(DecayingEstimatedHistogramReservoir.java:353)
    at org.apache.cassandra.metrics.DecayingEstimatedHistogramReservoir.getSnapshot(DecayingEstimatedHistogramReservoir.java:224)
    at com.codahale.metrics.Histogram.getSnapshot(Histogram.java:54)
    at com.codahale.metrics.Timer.getSnapshot(Timer.java:142)
    at org.apache.cassandra.db.ColumnFamilyStore$3.run(ColumnFamilyStore.java:446)
    at org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor$UncomplainingRunnable.run(DebuggableScheduledThreadPoolExecutor.java:118)
    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)

ฉันค้นหามันบนเน็ต ดูเหมือนว่าจะเป็นปัญหาการพึ่งพา maven ของ metrics-core

มีวิธีแก้ไขปัญหานี้ในการตั้งค่า JanusGraph หรือไม่ เราสามารถระงับข้อยกเว้นนี้จากบันทึกหรือปิดการใช้งานการวัด Cassandra ได้หรือไม่
สิ่งนี้ไม่เคยเกิดขึ้นใน Janus 0.3.1

กรุณาช่วย


person NumeroUno    schedule 04.12.2020    source แหล่งที่มา


คำตอบ (1)


ดังนั้นปัญหานี้จึงมาอยู่ที่เวอร์ชันที่ขัดแย้งกันของ Codahale metrics-core JAR ฉันเชื่อว่าปัจจุบัน Cassandra ขึ้นอยู่กับ 3.1.5 และ JanusGraph (จริงๆ แล้ว Gremlin) มาพร้อมกับ (ทั้ง) 3.0.2 และ 3.2.2

วิธีแก้ปัญหาหนึ่งที่ เกี่ยวข้องกับการลบ 3.0.2 ออกจาก $JANUSGRAPH_HOME/lib

แต่ถ้าคุณไม่ต้องการยุ่งกับการพึ่งพาไลบรารี่ของโปรเจ็กต์ต่างๆ ทางออกที่ดีที่สุดน่าจะเป็นเพื่อให้แน่ใจว่า JanusGraph และ Cassandra ทำงานใน JVM แยกกัน

person Aaron    schedule 04.12.2020
comment
ขอบคุณ จะลองสิ่งนี้ เราไม่ต้องการทำงานใน JVM แยกกันในตอนนี้ - person NumeroUno; 04.12.2020
comment
ขอบคุณมาก @Aaron มันได้ผล - person NumeroUno; 04.12.2020
comment
@NumeroUno สุดยอดมาก! ดีใจที่สามารถช่วยได้! - person Aaron; 04.12.2020