0

静寂とそのストーム ボルトを使用してデータをdruidに送信したいので、ストーム トポロジ (静寂の依存関係を含む) を作成し、それを jar ファイルにコンパイルしてから、ローカル モードでその jar ファイルを使用してストームを実行します。しかし、私は問題に遭遇しました: ストーム ボルト ショーは何も問題なく、ドルイドのオーバーロード ノードは何もログに記録しません。ストームボルトで送信されたデータがオーバーロードに届かなかったような気がします。

問題を見つけたい。ストーム構成のデバッグを有効にしました

conf.setDebug(true);

spoutすべてのとの詳細情報を表示するだけで、のデバッグ ログ情報boltは表示されません。tranquilityストームをに変更してみlogback/cluster.xmlました

<root level="DEBUG">
  <appender-ref ref="A1"/>
</root>

しかし、うまくいかないようです。プロジェクトの最上位ディレクトリに log4j.xml を追加してみます。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true"
    xmlns:log4j='http://jakarta.apache.org/log4j/'>

    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" 
          value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
        </layout>
    </appender>

    <root>
        <level value="DEBUG" />
        <appender-ref ref="console" />
    </root>

</log4j:configuration>

それも機能しません。

静けさのソース コードを掘り下げたところ、静けさは log4j に依存する ladylog ライブラリに依存していることがわかったので、プロジェクトに log4j.xml を追加するとデバッグ モードが有効になり、この BeamBotのデバッグ出力を確認できると思いました。

log4j を使用する loglady ライブラリを使用する tranquiity ライブラリを使用する jar と、logback を使用する嵐によって実行される私の jar を作成したため、私は完全に混乱しています。誰か私にいくつかの提案をしてもらえますか?

4

1 に答える 1

0

次に、そのjarファイルをローカルモードで使用してストームを実行します

ローカル モードで jar ファイルを実行するため、変更しても意味がありませんlogback/cluster.xml。通常、Storm は、storm-core-0.9.4.jarローカル モードの場合と同様に、特定の依存関係から既定の構成を読み取ります。ただし、トポロジで構成を手動で変更する場合は除きます。試してみるには、クラスター モードでトポロジを実行する必要があります。

一方、log4j は相反する問題が多いため、slf4jこのように log4j のデフォルト ライブラリとして使用します。

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class MyBolt {
    private static final Logger LOG = LoggerFactory
            .getLogger(MyBolt.class);
}

このようなすべての依存関係で他のすべてのlog4jライブラリを除外します

<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka_2.10</artifactId>
    <version>0.8.2.1</version>
    <scope>provided</scope>
    <exclusions>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
        </exclusion>
        <exclusion>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
        </exclusion>
    </exclusions>
</dependency>

お役に立てれば。

于 2015-06-29T07:07:15.127 に答える