私が始めようとしているのは、私がKafkaを完全に新しくしてLinuxにはかなり新しいと言うことから始めたいと思います。これがちょっと単純な答えに終わったら、親切にしてください! :)Kafka MySQLソースに接続
私がしようとしていることは、コンフルエントのKafka Connectを使用して、センサデータを分または分単位でストリームしているMySQLデータベースから読み込み、次にKafkaをデータをデータウェアハウスおよび/またはMongoDBに即座にルーティングして報告するか、Webアプリケーションからカフカに直接つなげる「ETLパイプライン」を提供しています。
私は最初のガイドとして、Robin MoffattのseriesとConfluentのJDBC Source Connector Quickstartを使用しています。これらがホストされているところでは、私はAmazon RDS MySQLデータベースとUbuntu 16.04.2と別のAWS EC2 t2.largeインスタンスを使用してKafka Connectを実行しています。
Robinのワークフローを使用して、私は設定ファイルを作成しましたが、彼が使用するjson形式は使用していません。私はクイックスタート記事のフォーマットを使用しています。
name=jdbc_source_mysql_4427_Data
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
key.converter=io.confluent.connect.avro.AvroConverter
key.converter.schema.registry.url=http://localhost:8081
value.converter=io.confluent.connect.avro.AvroConverter
value.converter.schema.registry.url=http://localhost:8081
connection.url=jdbc:mysql://lndbtest.cdveaddpnevv.us-east-2.rds.amazonaws.com:3306/LNDBv1?user=adminRDS&password=*****
table.whitelist=4427_Data
mode=timestamp
timestamp.column.name=TmStamp
validate.non.null=false
topic.prefix=mysql-
そして、それはで保存されます。
/usr/bin/confluent load jdbc_source_mysql_4427_Data -d /etc/kafka-connect-jdbc/kafka-connect-jdbc-source.properties
をして、このエラーを取得:
/etc/kafka-connect-jdbc/kafka-connect-jdbc-source.properties
私はその後、実行
{
"error_code": 400,
"message": "Connector configuration is invalid and contains the following 2 error(s):\nInvalid value java.sql.SQLException: No suitable driver found for jdbc:mysql://lndbtest.cdveaddpnevv.us-east-2.rds.amazonaws.com:3306/LNDBv1?user=adminRDS&password=*** for configuration Couldn't open connection to jdbc:mysql://lndbtest.cdveaddpnevv.us-east-2.rds.amazonaws.com:3306/LNDBv1?user=adminRDS&password=***\nInvalid value java.sql.SQLException: No suitable driver found for jdbc:mysql://lndbtest.cdveaddpnevv.us-east-2.rds.amazonaws.com:3306/LNDBv1?user=adminRDS&password=*** for configuration Couldn't open connection to jdbc:mysql://lndbtest.cdveaddpnevv.us-east-2.rds.amazonaws.com:3306/LNDBv1?user=adminRDS&password=***\nYou can also find the above list of errors at the endpoint `/{connectorType}/config/validate`"
}
ドライバの問題のようです。私の質問は、「MySQL JDBCドライバをEC2インスタンスにダウンロードする必要があるのですか、またはそれがConfluent Platformパッケージに含まれている必要がありますか?
また、私の全体的なアイデアはKafka Connectによく似ていますか?
前述のとおり、私はこれらの技術には新しいですが、何かを学ぶ最も良い方法は、すぐに飛び込んで問題を解決しようとすることです。どんなアイデアや提案も大歓迎です。ありがとうございました!
ありがとう、@ dawsaw。私はこれが非常に初心者であることは知っていますが、私はLinuxにとって新しいものですが、ワーカークラスパスにドライバを追加することをお勧めするドキュメントはありますか?私はapt-getダウンロード/インストールをうまくやっていますが、圧縮されたtar.gzを使うのはまっすぐではありません。あまりにもWindows GUIの私の人生で台無しにされて... – bneelon
https://docs.confluent.io/current/connect/userguide.html#installing-pluginsに記載されているのと同様のことができます。 jarをshare/java/kafka-connect-jdbcに置くことによって、インストールに直接jarファイルを追加することもできます。そこには、コネクタ付きの他のドライバもあります。 – dawsaw
あなたの助けを借りて私はそれに取り組みましたが、私が遭遇した1つの問題は、MySQLテーブル名の多くが数字で始まり、 "Illegal Initial Character"というエラーを投げたことです。それを回避する方法はありますか?私は手紙から始まるテーブルを試してみましたが、うまくいきました。ありがとう。 – bneelon