When creating a table definition in the UI (using ...
# troubleshooting
p
When creating a table definition in the UI (using v0.7.1) I'm getting an http error 500 to the /tables POST endpoint with the following message:
Copy code
code: 500
error: "org.apache.pinot.plugin.stream.kafka20.KafkaConsumerFactory"
Does anyone know what this means?
Here are some associated screenshots
The table definition is accepted in the validate http method so I'm assuming that the spec is ok.
k
Hi @Pedro Silva - I sometimes have look in the logs (controller, broker(s), servers) to get more details when an error comes back via the REST API. Though others on Slack might instinctively know what causes that specific problem.
p
Thank you for the input, I found that
org.apache.pinot.plugin.stream.kafka20.KafkaConsumerFactory
is not in the classpath:
Copy code
2021/05/06 15:48:21.790 ERROR [PinotTableRestletResource] [grizzly-http-server-1] org.apache.pinot.plugin.stream.kafka20.KafkaConsumerFactory
java.lang.ClassNotFoundException: org.apache.pinot.plugin.stream.kafka20.KafkaConsumerFactory
	at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[?:1.8.0_282]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[?:1.8.0_282]
I thought that this particular class always comes by default, isn't that the case?
k
I had thought so too. Normally the beginning of the log file will have info from when the service started up, which includes a list of loaded plugins. So I’d look for that next.
🙌 1
d
The default path dir on K8S loads all plugins, if you customized it as the doc instruct, you will not load the kafka and other plugins by default
p
That was exactly it, thank you Daniel. As an improvement suggestion, there should be a way to append plugins instead of replacement.
d
Plugin scanning is recursive, so you only need to adapt you plugin dir accordingly
p
Understood, thank you very much Daniel. I misinterpreted the documentation thinking we had to override the java property with our plugins
d
Tar-based pinot needs to be configured with the plugin dir, but the k8s deployment auto configures it. And the doc is not contextual to the k8s. I’ve been through the same troubleshooting 🙂
👍 1