Specifications
- Client Version: 1.8.0
- InfluxDB Version: v3
- JDK Version: OpenJDK 17.0.18 Runtime Environment (Red_Hat-17.0.18.0.8-1) (build 17.0.18+8-LTS)
- Platform: Linux/RedHat
- Apache Flink Version: 1.18.1
Code sample to reproduce problem
- Create a simple Apache Flink streaming job
- Implement a custom
RichSinkFunction
- Initialize the InfluxDB v3 Java client inside
open()
public class InfluxSink extends RichSinkFunction<String> {
private transient InfluxDBClient client;
@Override
public void open(Configuration parameters) {
ClientConfig config = new ClientConfig.Builder()
.host("https://host:8181")
.token("TOKEN".toCharArray())
.database("DB")
.build();
this.client = InfluxDBClient.getInstance(config);
}
@Override
public void invoke(String value, Context context) {
// no-op
}
}
Expected behavior
The InfluxDB v3 Java client should initialize successfully inside the Flink operator (open()), just like it does in a standalone Java application.
Actual behavior
Client initialization fails with:
java.lang.IllegalArgumentException: Address types of NameResolver 'unix' not supported by transport
Additional info
If the host is provided without scheme host:8181 the following error occurs:
java.lang.IllegalArgumentException: java.net.URISyntaxException: Expected scheme-specific part at index 9: grpc+tcp:
Using: https://host:8181 resolves the URI issue but results in the NameResolver error above.
This appears to be related to gRPC / Apache Arrow Flight initialization within the Flink runtime.
Possible contributing factors:
- gRPC NameResolver provider selection (unexpected "unix" resolver)
- ServiceLoader behavior inside Flink (child-first classloading)
- Classpath or dependency conflicts (gRPC / Netty / Arrow)
Questions:
- Is the InfluxDB v3 Java client officially supported inside Apache Flink jobs?
- Are there known issues with Arrow Flight in environments with custom classloaders (e.g., Flink)?
- Does the client rely on specific gRPC NameResolver providers that might not be available in this context?
- Is there a way to enforce a specific resolver (e.g., DNS) or transport configuration?
Specifications
Code sample to reproduce problem
RichSinkFunctionopen()Expected behavior
The InfluxDB v3 Java client should initialize successfully inside the Flink operator (open()), just like it does in a standalone Java application.
Actual behavior
Client initialization fails with:
Additional info
If the host is provided without scheme
host:8181the following error occurs:Using:
https://host:8181resolves the URI issue but results in the NameResolver error above.This appears to be related to gRPC / Apache Arrow Flight initialization within the Flink runtime.
Possible contributing factors:
Questions: