Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

log4j:ERROR with kafka-avro-console-producer #45

Open
hth4 opened this issue May 10, 2021 · 6 comments
Open

log4j:ERROR with kafka-avro-console-producer #45

hth4 opened this issue May 10, 2021 · 6 comments

Comments

@hth4
Copy link

hth4 commented May 10, 2021

While following the installing instructions I run into the following error with the kafka-avro-console-producer:

kafka-avro-console-producer --broker-list localhost:9092 --topic example --property parse.key=true --property key.schema='{"type":"record",name":"key_schema","fields":[{"name":"id","type":"int"}]}' --property "key.separator=$" --property value.schema='{"type":"record","name":"value_schema","fields":[{"name":"id","type":"int"},{"name":"firstName","type":"string"},{"name":"lastName","type":"string"}]}'

log4j:ERROR Could not read configuration file from URL [file://root/confluent-6.1.1/bin/../etc/schema-registry/log4j.properties].
java.net.UnknownHostException: root
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
at java.net.Socket.connect(Socket.java:607)
at sun.net.ftp.impl.FtpClient.doConnect(FtpClient.java:962)
at sun.net.ftp.impl.FtpClient.tryConnect(FtpClient.java:924)
at sun.net.ftp.impl.FtpClient.connect(FtpClient.java:1019)
at sun.net.ftp.impl.FtpClient.connect(FtpClient.java:1005)
at sun.net.www.protocol.ftp.FtpURLConnection.connect(FtpURLConnection.java:311)
at sun.net.www.protocol.ftp.FtpURLConnection.getInputStream(FtpURLConnection.java:417)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:557)
at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:526)
at org.apache.log4j.LogManager.(LogManager.java:127)
at org.slf4j.impl.Log4jLoggerFactory.(Log4jLoggerFactory.java:66)
at org.slf4j.impl.StaticLoggerBinder.(StaticLoggerBinder.java:72)
at org.slf4j.impl.StaticLoggerBinder.(StaticLoggerBinder.java:45)
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150)
at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:417)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:362)
at com.typesafe.scalalogging.Logger$.apply(Logger.scala:48)
at kafka.utils.Log4jControllerRegistration$.(Logging.scala:25)
at kafka.utils.CommandLineUtils$.(CommandLineUtils.scala:28)
at kafka.tools.ConsoleProducer$ProducerConfig.(ConsoleProducer.scala:228)
at kafka.tools.ConsoleProducer$.main(ConsoleProducer.scala:41)
at kafka.tools.ConsoleProducer.main(ConsoleProducer.scala)
log4j:ERROR Ignoring configuration file [file://root/confluent-6.1.1/bin/../etc/schema-registry/log4j.properties].
log4j:WARN No appenders could be found for logger (kafka.utils.Log4jControllerRegistration$).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
java.util.NoSuchElementException: No value present
at java.util.Optional.get(Optional.java:135)
at io.confluent.kafka.formatter.SchemaMessageReader.parseSchema(SchemaMessageReader.java:212)
at io.confluent.kafka.formatter.SchemaMessageReader.getSchema(SchemaMessageReader.java:224)
at io.confluent.kafka.formatter.SchemaMessageReader.init(SchemaMessageReader.java:158)
at kafka.tools.ConsoleProducer$.main(ConsoleProducer.scala:43)
at kafka.tools.ConsoleProducer.main(ConsoleProducer.scala)

Is there more to install then copying the connector jar files?

@avelanarius
Copy link

What is your CONFLUENT_HOME environment variable? echo $CONFLUENT_HOME

In what directory (full path) did you install Confluent? Is it a directory only accessible to a root user (and does kafka-avro-console-producer have those permissions)?

@hth4
Copy link
Author

hth4 commented May 10, 2021

I installed my testing installation as root

CONFLUENT_HOME=/root/confluent-6.1.1
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin://root/confluent-6.1.1/bin:/root/confluent-hub/bin://root/confluent-cli

-rwxr-xr-x. 1 root root 1545 Mar 17 01:20 /root/confluent-6.1.1/bin/kafka-avro-console-producer

@avelanarius
Copy link

I think the problem is in your PATH, specifically:

//root/confluent-6.1.1/bin:/root/confluent-hub/bin://root/confluent-cli

// should be /. Due to such specification of path, schema-registry-run-class script ran by the kafka-avro-console-producer incorrectly builds a path:
https://github.com/confluentinc/schema-registry/blob/master/bin/schema-registry-run-class#L68

It tries to connect to file://root/confluent-6.1.1/bin/../etc/schema-registry/log4j.properties - invalid URI, instead of file:/root/confluent-6.1.1/bin/../etc/schema-registry/log4j.properties - valid URI. If you fix your PATH, it should start correctly (assuming kafka-avro-console-producer is started as root).

@hth4
Copy link
Author

hth4 commented May 10, 2021

you are right! After fixing the path this error gone away. Thanks!
Now I get:

[2021-05-10 17:37:12,527] ERROR Could not parse Avro schema (io.confluent.kafka.schemaregistry.avro.AvroSchemaProvider:57)
org.apache.avro.SchemaParseException: com.fasterxml.jackson.core.JsonParseException: Unexpected character ('n' (code 110)): was expecting double-quote to start field name
at [Source: (String)"{"type":"record",name":"key_schema","fields":[{"name":"id","type":"int"}]}"; line: 1, column: 19]
at org.apache.avro.Schema$Parser.parse(Schema.java:1396)
at org.apache.avro.Schema$Parser.parse(Schema.java:1382)
at io.confluent.kafka.schemaregistry.avro.AvroSchema.(AvroSchema.java:71)
at io.confluent.kafka.schemaregistry.avro.AvroSchemaProvider.parseSchema(AvroSchemaProvider.java:54)
at io.confluent.kafka.schemaregistry.SchemaProvider.parseSchema(SchemaProvider.java:63)
at io.confluent.kafka.formatter.SchemaMessageReader.parseSchema(SchemaMessageReader.java:212)
at io.confluent.kafka.formatter.SchemaMessageReader.getSchema(SchemaMessageReader.java:224)
at io.confluent.kafka.formatter.SchemaMessageReader.init(SchemaMessageReader.java:158)
at kafka.tools.ConsoleProducer$.main(ConsoleProducer.scala:43)
at kafka.tools.ConsoleProducer.main(ConsoleProducer.scala)
Caused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character ('n' (code 110)): was expecting double-quote to start field name
at [Source: (String)"{"type":"record",name":"key_schema","fields":[{"name":"id","type":"int"}]}"; line: 1, column: 19]
at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1840)
at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:712)
at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:637)
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddName(ReaderBasedJsonParser.java:1784)
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextFieldName(ReaderBasedJsonParser.java:932)
at com.fasterxml.jackson.databind.deser.std.BaseNodeDeserializer.deserializeObject(JsonNodeDeserializer.java:250)
at com.fasterxml.jackson.databind.deser.std.JsonNodeDeserializer.deserialize(JsonNodeDeserializer.java:68)
at com.fasterxml.jackson.databind.deser.std.JsonNodeDeserializer.deserialize(JsonNodeDeserializer.java:15)
at com.fasterxml.jackson.databind.ObjectMapper._readValue(ObjectMapper.java:4189)
at com.fasterxml.jackson.databind.ObjectMapper.readTree(ObjectMapper.java:2586)
at org.apache.avro.Schema$Parser.parse(Schema.java:1394)
... 9 more
java.util.NoSuchElementException: No value present
at java.util.Optional.get(Optional.java:135)
at io.confluent.kafka.formatter.SchemaMessageReader.parseSchema(SchemaMessageReader.java:212)
at io.confluent.kafka.formatter.SchemaMessageReader.getSchema(SchemaMessageReader.java:224)
at io.confluent.kafka.formatter.SchemaMessageReader.init(SchemaMessageReader.java:158)
at kafka.tools.ConsoleProducer$.main(ConsoleProducer.scala:43)
at kafka.tools.ConsoleProducer.main(ConsoleProducer.scala)

Did I made another stupid mistake?

@hth4
Copy link
Author

hth4 commented May 10, 2021

found the typo myself ...

'{"type":"record",name": ...
'{"type":"record","name":...

many thanks for the fast response!

@haaawk
Copy link

haaawk commented May 11, 2021

Can we close the issue now, @hth4?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants