2016-09-06 6 views
0

私はカフカ0.10の実行中のインスタンスを持っており、現在HDFSにデータを格納するためにGobblinを使用しています。私はKafka Connectに切り替えたいと思っていました。私が調査したところで、Confluentがコネクタを提供していることがわかりました。カフカHDFSコネクタ - 完全なコンフルエントなし

ただし、Confluentプラットフォーム全体を使用せずにこのコネクタを使用する方法はありますか?例えば、関連するスクリプトをConfluentソースからコピーして、何とか私のKafkaインスタンスで使用することができますか? 私は基本的にはまだこの物を通して自分の道を学んでいるので、私はまだこの空間に精通していません。

ありがとうございました。

+1

コンフルエントプラットフォームはOS Kafkaと互換性があるため、動作するはずです。しかし、なぜCPを使用しない - これはあなたの人生を簡単になります:) –

答えて

0

はい、可能です。私はそれをやった。 Dockerコンテナで動作する、若干変更されたConfluent HDFSスタンドアロンコネクタを使用します。 ただし、SchemaRegistryも使用する必要があります。コネクタはSchemaRegistryに密接に結合されているためです。 また、特別な形式のメッセージを送信する必要があります。自動スキーマ認識をサポートするコンフルエントなカフカの消費者は、内部形式のメッセージを導入します。したがって、コンフルエントなコンシューマに対応するには、プロデューサは次の形式に従ってメッセージを作成する必要があります。

  • ヘッダ(5バイト)
    • メッセージ「マジックバイト」の最初のバイトは、次の4つのバイトは、符号化スキーマレジストリにスキーマのIDであるべきである常に0
    • なければなりませんビッグエンディアン形式です。
  • ペイロード(Avro \ Parquetオブジェクト、バイナリ符号化)。

PSメッセージがスキーマと一致しない場合、またはIDのスキーマがレジストリに存在しない場合、コンシューマはサイレントに失敗します:ワーカースレッドは停止しますが、アプリケーションはまだメモリにハングアップします出口。

関連する問題