3

私は DAS 3.0.0 を BAM の代わりに WSO2 API Manager 1.9.0/1.9.1 と Oracle for WSO2AM_STATS_DB で使用しようとしています。

私はhttp://blog.rukspot.com/2015/09/publishing-apim-runtime-statistics-to.htmlに従っています

Data Explorer テーブルの ORG_WSO2_APIMGT_STATISTICS_REQUEST と ORG_WSO2_APIMGT_STATISTICS_RESPONSE で、DAS のカーボン ダッシュボードのデータを確認できます。

ただし、データは Oracle に保存されません。そのため、AM の発行元で統計を表示できません。「データの公開が有効になっています。統計を表示するには、トラフィックを生成してください」と表示され続けます。

ログに次のエラーが表示されます。

[2015-12-08 13:00:00,022]  INFO {org.wso2.carbon.analytics.spark.core.AnalyticsT
ask} -  Executing the schedule task for: APIM_STAT_script for tenant id: -1234
[2015-12-08 13:00:00,037]  INFO {org.wso2.carbon.analytics.spark.core.AnalyticsT
ask} -  Executing the schedule task for: Throttle_script for tenant id: -1234
Exception in thread "dag-scheduler-event-loop" java.lang.NoClassDefFoundError: o
rg/xerial/snappy/SnappyInputStream
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:274)
        at org.apache.spark.io.CompressionCodec$.createCodec(CompressionCodec.sc
ala:66)
        at org.apache.spark.io.CompressionCodec$.createCodec(CompressionCodec.sc
ala:60)
        at org.apache.spark.broadcast.TorrentBroadcast.org$apache$spark$broadcas
t$TorrentBroadcast$$setConf(TorrentBroadcast.scala:73)
        at org.apache.spark.broadcast.TorrentBroadcast.<init>(TorrentBroadcast.s
cala:80)
        at org.apache.spark.broadcast.TorrentBroadcastFactory.newBroadcast(Torre
ntBroadcastFactory.scala:34)
        at org.apache.spark.broadcast.BroadcastManager.newBroadcast(BroadcastMan
ager.scala:62)
        at org.apache.spark.SparkContext.broadcast(SparkContext.scala:1291)
        at org.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DA
GScheduler$$submitMissingTasks(DAGScheduler.scala:874)
        at org.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DA
GScheduler$$submitStage(DAGScheduler.scala:815)
        at org.apache.spark.scheduler.DAGScheduler.handleJobSubmitted(DAGSchedul
er.scala:799)
        at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAG
Scheduler.scala:1426)
        at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAG
Scheduler.scala:1418)
        at org.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala:48)
Caused by: java.lang.ClassNotFoundException: org.xerial.snappy.SnappyInputStream
 cannot be found by spark-core_2.10_1.4.1.wso2v1
        at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(Bundl
eLoader.java:501)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.
java:421)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.
java:412)
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(De
faultClassLoader.java:107)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        ... 15 more

何か不足していますか?誰でもこの問題を理解するのを手伝ってもらえますか?

前もって感謝します。

4

1 に答える 1

4

すべてのライブラリ (jar) をプロジェクトの /WEB-INF/lib に移動します。これで、/WEB-INF/lib の下のすべてのライブラリ/jar がクラスパスの下に配置されます。

snappy-java jar ファイルを使用すると、必要に応じて機能します。

于 2015-12-08T08:25:19.800 に答える