2017-08-23 18 views
0

ファイルからKafkaにNeo4jコマンドを書き込むカスタムコネクタがあり、それをデバッグしたいと思います。だから、私はConfluent v3.3.0をダウンロードし、時間をかけてそれに慣れました。しかし、私は自分自身がコネクタをロードしようとしているのを知っています。私は、次のエラーを得たことが、このエラー以前のようにJSONファイルとしてファイルを解析しようとしていることを暗示していカスタムコネクタ設定ファイルをJavaプロパティ形式として解析するにはどうすればよいですか?

parse error: Invalid string: control characters from U+0000 through U+001F must be escaped at line 1, column 124 
parse error: Invalid numeric literal at line 2, column 0 

:私はその.propertiesファイルは、私は次のエラーを取得するファイルを使用してコネクターをロードしようとすると、コネクタロードしようとしたとき:

Warning: Install 'jq' to add support for parsing JSON 

をそして私は、インストールさJQを醸造し、現在旧エラーを取得されていました。

このファイルは、.propertiesのために暗黙のうちに考えられるJavaプロパティ形式として解析されたいと思いますが、どこかの設定で明示的にする必要がありますか?

更新:

@Konstantine Karantasisにより示唆されるように、私はJSONに.propertiesファイルを変換しますが、前が、最初の行のないように私は同じエラーを取得:私は三重のチェックを

parse error: Invalid numeric literal at line 2, column 0 

私の書式設定といくつかのエラーで検索しましたが、短くなってきました。書式設定でエラーが発生した場合、または私が気にしていないKafka ConnectでJSONファイルを使用する際に微妙な違いがあるかどうか教えてください。

Javaプロパティ:

name=neo4k-file-source 
connector.class=neo4k.filestream.source.Neo4jFileStreamSourceConnector 
tasks.max=1 
file=Neo4jCommands.txt 
topic=neo4j-commands 

はJSONに変換:あなたのコネクターを開始するために使用している

[{ 
    "name": "neo4k-file-source", 
    "connector": { 
    "class": "neo4k.filestream.source.Neo4jFileStreamSourceConnector" 
    }, 
    "tasks": { 
    "max": 1 
    }, 
    "file": "Neo4jCommands.txt", 
    "topic": "neo4j-commands" 
}] 

答えて

1

チェックアウトhttps://www.confluent.io/blog/simplest-useful-kafka-connect-data-pipeline-world-thereabouts-part-1/を実行しているときに

  • 編集CLIが返されたファイルの種類と一致するように、これを試してみてください。

    { 
        "name": "neo4k-file-source", 
        "config": { 
         "connector.class": "neo4k.filestream.source.Neo4jFileStreamSourceConnector", 
         "tasks.max": 1, 
         "file": "Neo4jCommands.txt", 
         "topic": "neo4j-commands" 
        } 
    } 
    
  • +0

    JSONを使用して、ロードしました。記事を読んでもらって、私のプロジェクトで拾うことができるものがあるかどうかを確認します。ありがとうございました! –

    0

    コンフルエントCLIは、あなたのプロパティファイルの種類を考え出すについてスマートにしようとします。拡張名(.properties)に依存せず、入力ファイルのfileを呼び出し、結果をASCII文字列と照合します。

    これは、Javaプロパティファイル(https://en.wikipedia.org/wiki/.properties)の現在の定義に準拠していますが、UTF-8でエンコードされたファイルまたはエスケープされたユニコード文字を含むファイルと一致するように拡張する必要があります。

    2つのオプションがあります。

    1. プロパティを代わりにJSON形式に変換します。あなたの例ではconfluent CLI

      を使用してロードされている有効なjsonファイルの例については、file <yourconf.properties>

    +0

    ちょっと@コンスタンチンKarantasis、私は2番目に近づく方法をかなり知らないので、最初のオプションを試しました。私のCLIの理解はかなり基本的です。JSONに変換した後、無効な数値リテラルがあるという新しいエラーが発生しました。私は3倍のフォーマットをチェックしてエラーを検索しましたが、短くなりました。 –

    +0

    'jq'だけでjsonを解析できますか? –

    +0

    私の理解には、はい。単に "cat | jq"を使用してください。それは私のJSONをわずかに異なる書式で吐き出します。 –

    関連する問題