Skip to content

UNIMPLEMENTED Error when trying to run kafka with tensorflow #5964

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

Closed
srikanthjoshi opened this issue Jul 9, 2019 · 3 comments
Closed

UNIMPLEMENTED Error when trying to run kafka with tensorflow #5964

srikanthjoshi opened this issue Jul 9, 2019 · 3 comments

Comments

@srikanthjoshi
Copy link

srikanthjoshi commented Jul 9, 2019

Please answer these questions before submitting your issue.

What version of gRPC are you using?

Latest version

What did you expect to see?

Seeing UNIMPLEMENTED Error when trying to run https://github.com/kaiwaehner/tensorflow-serving-java-grpc-kafka-streams java code .

(srikanth) [root@brazossrik01 bin]# java -cp target/tensorflow-serving-java-grpc-kafka-streams-1.0-jar-with-dependencies.jar com.github.megachucky.kafka.streams.machinelearning.Kafka_Streams_TensorFlow_Serving_gRPC_Example
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Image Recognition Microservice is running...
Input images arrive at Kafka topic ImageInputTopic; Output predictions going to Kafka topic ImageOutputTopic
Image path: src/main/resources/example.jpg
Image = src/main/resources/example.jpg
io.grpc.StatusRuntimeException: UNIMPLEMENTED
	at io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:222)
	at io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:203)
	at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:132)
	at com.github.megachucky.kafka.streams.machinelearning.InceptionBlockingStub.classify(InceptionBlockingStub.java:63)
	at com.github.megachucky.kafka.streams.machinelearning.TensorflowObjectRecogniser.recognise(TensorflowObjectRecogniser.java:66)
	at com.github.megachucky.kafka.streams.machinelearning.Kafka_Streams_TensorFlow_Serving_gRPC_Example.lambda$main$0(Kafka_Streams_TensorFlow_Serving_gRPC_Example.java:91)
	at org.apache.kafka.streams.kstream.internals.AbstractStream$2.apply(AbstractStream.java:111)
	at org.apache.kafka.streams.kstream.internals.KStreamMapValues$KStreamMapProcessor.process(KStreamMapValues.java:40)
	at org.apache.kafka.streams.processor.internals.ProcessorNode.process(ProcessorNode.java:115)
	at org.apache.kafka.streams.processor.internals.ProcessorContextImpl.forward(ProcessorContextImpl.java:146)
	at org.apache.kafka.streams.processor.internals.ProcessorContextImpl.forward(ProcessorContextImpl.java:129)
	at org.apache.kafka.streams.processor.internals.ProcessorContextImpl.forward(ProcessorContextImpl.java:93)
	at org.apache.kafka.streams.processor.internals.SourceNode.process(SourceNode.java:84)
	at org.apache.kafka.streams.processor.internals.StreamTask.process(StreamTask.java:351)
	at org.apache.kafka.streams.processor.internals.AssignedStreamsTasks.process(AssignedStreamsTasks.java:104)
	at org.apache.kafka.streams.processor.internals.TaskManager.process(TaskManager.java:413)
	at org.apache.kafka.streams.processor.internals.StreamThread.runOnce(StreamThread.java:862)
	at org.apache.kafka.streams.processor.internals.StreamThread.runLoop(StreamThread.java:777)
	at org.apache.kafka.streams.processor.internals.StreamThread.run(StreamThread.java:747)
^C(srikanth) [root@brazossrik01 bin]# 

(srikanth) [root@brazossrik01 bin]# echo -e "src/main/resources/example.jpg" | /root/srikanth/kafkacat-master/kafkacat -b localhost:9092 -P -t ImageInputTopic
(srikanth) [root@brazossrik01 bin]# 

Please suggest if there is problem in ClientCalls.java file.

@dapengzhang0
Copy link
Member

dapengzhang0 commented Jul 12, 2019

It looks the server is not implementing classify method.

What version of gRPC are you using?
Latest version
...
at io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:222)

ClientCalls.java:222 is not like that in latest version. Can you double check the gRPC version in your runtime?

@srikanthjoshi
Copy link
Author

srikanthjoshi commented Jul 16, 2019

@dapengzhang0 - I downloaded latest version again and retried. It is failing with same problem:

(srikanth) [root@brazossrik01 srikanth]# git clone https://github.com/grpc/grpc-java.git
Cloning into 'grpc-java'...
remote: Enumerating objects: 517, done.
remote: Counting objects: 100% (517/517), done.
remote: Compressing objects: 100% (267/267), done.
remote: Total 93914 (delta 414), reused 293 (delta 224), pack-reused 93397
Receiving objects: 100% (93914/93914), 35.61 MiB | 15.74 MiB/s, done.
Resolving deltas: 100% (44856/44856), done.
(srikanth) [root@brazossrik01 srikanth]#

(srikanth) [root@brazossrik01 grpc-java]# export CXXFLAGS="-I /root/srikanth/protobuf/src" LDFLAGS="-L/root/srikanth/protobuf/src/.libs"
(srikanth) [root@brazossrik01 grpc-java]# cd compiler
(srikanth) [root@brazossrik01 compiler]# GRPC_BUILD_CMD="../gradlew java_pluginExecutable"
(srikanth) [root@brazossrik01 compiler]# eval $GRPC_BUILD_CMD
Starting a Gradle Daemon (subsequent builds will be faster)

> Configure project :grpc-compiler
*** Building codegen requires Protobuf version 3.7.1
*** Please refer to https://github.com/grpc/grpc-java/blob/master/COMPILING.md#how-to-build-code-generation-plugin

> Task :grpc-compiler:compileJava_pluginExecutableJava_pluginCpp
> Task :grpc-compiler:linkJava_pluginExecutable
> Task :grpc-compiler:java_pluginExecutable

BUILD SUCCESSFUL in 29s
2 actionable tasks: 2 executed
(srikanth) [root@brazossrik01 compiler]# echo $?
0
(srikanth) [root@brazossrik01 compiler]#

(srikanth) [root@brazossrik01 bin]# echo -e "src/main/resources/example.jpg" | /root/srikanth/kafkacat-master/kafkacat -b localhost:9092 -P -t ImageInputTopic
(srikanth) [root@brazossrik01 bin]# 

(srikanth) [root@brazossrik01 bin]# java -cp target/tensorflow-serving-java-grpc-kafka-streams-1.0-jar-with-dendencies.jar com.github.megachucky.kafka.streams.machinelearning.Kafka_Streams_TensorFlow_Serving_gRPC_Example
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Image Recognition Microservice is running...
Input images arrive at Kafka topic ImageInputTopic; Output predictions going to Kafka topic ImageOutputTopic
Image path: src/main/resources/example.jpg
Image = src/main/resources/example.jpg
io.grpc.StatusRuntimeException: UNIMPLEMENTED
	at io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:222)
	at io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:203)
	at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:132)
	at com.github.megachucky.kafka.streams.machinelearning.InceptionBlockingStub.classify(InceptionBlockingStub.java:63)
	at com.github.megachucky.kafka.streams.machinelearning.TensorflowObjectRecogniser.recognise(TensorflowObjectRecogniser.java:66)
	at com.github.megachucky.kafka.streams.machinelearning.Kafka_Streams_TensorFlow_Serving_gRPC_Example.lambda$main$0(Kafka_Streams_TensorFlow_Serving_gRPC_Example.java:91)
	at org.apache.kafka.streams.kstream.internals.AbstractStream$2.apply(AbstractStream.java:111)
	at org.apache.kafka.streams.kstream.internals.KStreamMapValues$KStreamMapProcessor.process(KStreamMapValues.java:40)
	at org.apache.kafka.streams.processor.internals.ProcessorNode.process(ProcessorNode.java:115)
	at org.apache.kafka.streams.processor.internals.ProcessorContextImpl.forward(ProcessorContextImpl.java:146)
	at org.apache.kafka.streams.processor.internals.ProcessorContextImpl.forward(ProcessorContextImpl.java:129)
	at org.apache.kafka.streams.processor.internals.ProcessorContextImpl.forward(ProcessorContextImpl.java:93)
	at org.apache.kafka.streams.processor.internals.SourceNode.process(SourceNode.java:84)
	at org.apache.kafka.streams.processor.internals.StreamTask.process(StreamTask.java:351)
	at org.apache.kafka.streams.processor.internals.AssignedStreamsTasks.process(AssignedStreamsTasks.java:104)
	at org.apache.kafka.streams.processor.internals.TaskManager.process(TaskManager.java:413)
	at org.apache.kafka.streams.processor.internals.StreamThread.runOnce(StreamThread.java:862)
	at org.apache.kafka.streams.processor.internals.StreamThread.runLoop(StreamThread.java:777)
	at org.apache.kafka.streams.processor.internals.StreamThread.run(StreamThread.java:747)

Can you please let me know how to proceed further ?

@ejona86
Copy link
Member

ejona86 commented Jul 16, 2019

We don't have Kafka/Tensorflow expertise. All we know is the server is not supporting the method you are calling. I don't even have enough expertise to recommend who you should contact instead. I see there was discussion at kaiwaehner/tensorflow-serving-java-grpc-kafka-streams#3 . All I can say is this should not be an OS-related problem.

@ejona86 ejona86 closed this as completed Jul 30, 2019
@lock lock bot locked as resolved and limited conversation to collaborators Oct 28, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants