Wir testen kafka connect im verteilten Modus, um Themeneinträge von kafka nach HDFS zu übertragen. Wir haben zwei Boxen. Eine, in der Kafka- und Tierpfleger-Dämonen laufen. Wir haben eine Instanz von kafka connect in dieser Box behalten. Wir haben eine andere Box, in der der HDFS-Namenscode vorhanden ist. Wir haben hier eine weitere Instanz von kafka connect aufbewahrt.Probleme beim Ausführen von kafka connect im verteilten Modus
Wir begannen Kafka, Tierpfleger und Kafka verbinden in der ersten Box. Wir haben kafka connect auch in der zweiten Box gestartet. Nun müssen wir gemäß der konfluenten Dokumentation den HDFS-Connector (oder irgendeinen anderen Connector für diese Angelegenheit) mit der REST-API starten. Nach dem Start von kafka connect in diesen beiden Feldern haben wir versucht, den Connector über die REST-API zu starten. Wir haben versucht, unter Befehl: -
curl -X POST -H "HTTP/1.1 Host: ip-10-16-34-57.ec2.internal:9092 Content-Type: application/json Accept: application/json" --data '{"name": "hdfs-sink", "config": {"connector.class":"io.confluent.connect.hdfs.HdfsSinkConnector", "format.class":"com.qubole.streamx.SourceFormat", "tasks.max":"1", "hdfs.url":"hdfs://ip-10-16-37-124:9000", "topics":"Prd_IN_TripAnalysis,Prd_IN_Alerts,Prd_IN_GeneralEvents", "partitioner.class":"io.confluent.connect.hdfs.partitioner.DailyPartitioner", "locale":"", "timezone":"Asia/Calcutta" }}' http://ip-10-16-34-57.ec2.internal:8083/connectors
Sobald wir hier die Eingabetaste drücken, erhalten wir unter Antwort:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/>
<title>Error 415 </title>
</head>
<body>
<h2>HTTP ERROR: 415</h2>
<p>Problem accessing /connectors. Reason:
<pre> Unsupported Media Type</pre></p>
<hr /><i><small>Powered by Jetty://</small></i>
</body>
</html>
Die connect-distributed.properties Datei auf etc/kafka/ist unten in sowohl der kafka verbinden Knoten. Wir haben auch die genannten drei Themen erstellt (connect-Offsets, connect-configs, connect-Status)
bootstrap.servers=ip-10-16-34-57.ec2.internal:9092
group.id=connect-cluster
key.converter=com.qubole.streamx.ByteArrayConverter
value.converter=com.qubole.streamx.ByteArrayConverter
enable.auto.commit=true
auto.commit.interval.ms=1000
offset.flush.interval.ms=1000
key.converter.schemas.enable=true
value.converter.schemas.enable=true
internal.key.converter=org.apache.kafka.connect.json.JsonConverter
internal.value.converter=org.apache.kafka.connect.json.JsonConverter
internal.key.converter.schemas.enable=false
internal.value.converter.schemas.enable=false
offset.storage.topic=connect-offsets
rest.port=8083
config.storage.topic=connect-configs
status.storage.topic=connect-status
offset.flush.interval.ms=10000
Was ist das Problem hier? Fehlt etwas, um kafka connect im verteilten Modus zu starten, um mit HDFS-Konnektoren zu arbeiten? kafka connect im Standalone-Modus funktioniert gut.