Nous testons kafka connect en mode distribué pour extraire les enregistrements de rubrique de kafka vers HDFS. Nous avons deux boîtes. Un dans lequel les démons kafka et zookeeper sont en cours d'exécution. Nous avons gardé une instance de kafka connect dans cette boîte. Nous avons une autre boîte où le namenode HDFS est présent. Nous avons gardé une autre instance de Kafka connect ici.Problèmes lors de l'exécution de kafka connect en mode distribué
Nous avons commencé kafka, zookeeper et kafka connect dans la première boîte. Nous avons aussi commencé à connecter kafka dans la deuxième case. Maintenant, conformément à la documentation confluente, nous devons démarrer le connecteur HDFS (ou tout autre connecteur d'ailleurs) en utilisant l'API REST. Ainsi, après avoir démarré kafka connect dans ces deux boîtes, nous avons essayé de démarrer le connecteur via l'API REST. Nous avons essayé ci-dessous commande: -
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
Dès que nous pressons entrer ici, nous obtenons une réponse ci-dessous:
<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>
Le fichier connect-distributed.properties à etc/kafka/est inférieure à la fois la Kafka connecter les nœuds. Nous avons créé ces trois sujets aussi bien (connecter décalages, connectez-configs, connectez-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
Quel est le problème ici? Manquons-nous quelque chose pour démarrer kafka connect en mode distribué pour fonctionner avec les connecteurs HDFS. Kafka Connect en mode autonome fonctionne très bien.