duc-dn opened a new issue, #11925:
URL: https://github.com/apache/iceberg/issues/11925

   ### Query engine
   
   _No response_
   
   ### Question
   
   Hi team,
   I am using Kafka Connect to sink data as format iceberg with Hive catalog
   However, my hive-metastore service requires SSL to connect it
   I tried to add config into IcebergSinkConfig.java :
   ```
     private static final String HIVE_METASTORE_CLIENT_AUTH_MODE = 
"iceberg.catalog.hive.metastore.client.auth.mode";
     private static final String HIVE_METASTORE_PLAIN_PASSWORD = 
"iceberg.catalog.hive.metastore.client.plain.password";
     private static final String HIVE_METASTORE_PLAIN_USERNAME = 
"iceberg.catalog.hive.metastore.client.plain.username";
     private static final String HIVE_METASTORE_USE_SSL = 
"iceberg.catalog.hive.metastore.use.SSL";
     private static final String HIVE_METASTORE_TRUSTSTORE_TYPE = 
"iceberg.catalog.hive.metastore.truststore.type";
     private static final String HIVE_METASTORE_TRUSTSTORE_PATH = 
"iceberg.catalog.hive.metastore.truststore.path";
     private static final String HIVE_METASTORE_TRUSTSTORE_PASSWORD = 
"iceberg.catalog.hive.metastore.truststore.password";
   ```
   - When running connector, these config is loaded into IcebergSinkConfig 
values:
   ```
   2025-01-07 04:06:38,486 INFO [ductest|task-0] IcebergSinkConfig values: 
        iceberg.catalog = landingdev
        iceberg.catalog.hive.metastore.client.auth.mode = PLAIN
        iceberg.catalog.hive.metastore.client.plain.password = sdfdsfdsfds
        iceberg.catalog.hive.metastore.client.plain.username = devadmin
        iceberg.catalog.hive.metastore.truststore.password = vcxvcxv
        iceberg.catalog.hive.metastore.truststore.path = 
file:///opt/hms/secrets/truststore.jks
        iceberg.catalog.hive.metastore.truststore.type = JKS
        iceberg.catalog.hive.metastore.use.SSL = true
   ```
   
   But I faced an error:
   ```
   2025-01-07 04:06:45,107 INFO [ductest|task-0] HMS client filtering is 
enabled. (org.apache.hadoop.hive.metastore.HiveMetaStoreClient) 
[task-thread-ductest-0]
   2025-01-07 04:06:45,107 INFO [ductest|task-0] Resolved metastore uris: 
[thrift://lh-lakehouse-hive-metastore-svc.zen.svc.cluster.local:9083] 
(org.apache.hadoop.hive.metastore.HiveMetaStoreClient) [task-thread-ductest-0]
   2025-01-07 04:06:45,107 INFO [ductest|task-0] Trying to connect to metastore 
with URI (thrift://lh-lakehouse-hive-metastore-svc.zen.svc.cluster.local:9083) 
in binary transport mode (org.apache.hadoop.hive.metastore.HiveMetaStoreClient) 
[task-thread-ductest-0]
   2025-01-07 04:06:45,137 INFO [ductest|task-0] Opened a connection to 
metastore, URI 
(thrift://lh-lakehouse-hive-metastore-svc.zen.svc.cluster.local:9083) current 
connections: 1 (org.apache.hadoop.hive.metastore.HiveMetaStoreClient) 
[task-thread-ductest-0]
   2025-01-07 04:06:45,280 WARN [ductest|task-0] set_ugi() not successful, 
Likely cause: new client talking to old server. Continuing without it. 
(org.apache.hadoop.hive.metastore.HiveMetaStoreClient) [task-thread-ductest-0]
   org.apache.thrift.transport.TTransportException: Socket is closed by peer.
        at 
org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:184)
        at org.apache.thrift.transport.TTransport.readAll(TTransport.java:109)
        at 
org.apache.thrift.protocol.TBinaryProtocol.readStringBody(TBinaryProtocol.java:417)
        at 
org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:256)
        at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:77)
        at 
org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.recv_set_ugi(ThriftHiveMetastore.java:5837)
        at 
org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.set_ugi(ThriftHiveMetastore.java:5823)
        at 
org.apache.hadoop.hive.metastore.HiveMetaStoreClient.open(HiveMetaStoreClient.java:811)
        at 
org.apache.hadoop.hive.metastore.HiveMetaStoreClient.<init>(HiveMetaStoreClient.java:277)
        at 
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
 Method)
        at 
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
        at 
java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at 
java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
        at 
java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
        at 
org.apache.hadoop.hive.metastore.utils.JavaUtils.newInstance(JavaUtils.java:84)
        at 
org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.<init>(RetryingMetaStoreClient.java:101)
        at 
org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:154)
        at 
org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:125)
        at 
org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:118)
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at 
org.apache.iceberg.common.DynMethods$UnboundMethod.invokeChecked(DynMethods.java:60)
        at 
org.apache.iceberg.common.DynMethods$UnboundMethod.invoke(DynMethods.java:72)
        at 
org.apache.iceberg.common.DynMethods$StaticMethod.invoke(DynMethods.java:185)
        at 
org.apache.iceberg.hive.HiveClientPool.newClient(HiveClientPool.java:63)
        at 
org.apache.iceberg.hive.HiveClientPool.newClient(HiveClientPool.java:34)
        at org.apache.iceberg.ClientPoolImpl.get(ClientPoolImpl.java:125)
        at org.apache.iceberg.ClientPoolImpl.run(ClientPoolImpl.java:56)
        at org.apache.iceberg.ClientPoolImpl.run(ClientPoolImpl.java:51)
        at 
org.apache.iceberg.hive.CachedClientPool.run(CachedClientPool.java:122)
        at 
org.apache.iceberg.hive.HiveTableOperations.doRefresh(HiveTableOperations.java:146)
        at 
org.apache.iceberg.BaseMetastoreTableOperations.refresh(BaseMetastoreTableOperations.java:97)
        at 
org.apache.iceberg.BaseMetastoreTableOperations.current(BaseMetastoreTableOperations.java:80)
        at 
org.apache.iceberg.BaseMetastoreCatalog.loadTable(BaseMetastoreCatalog.java:49)
        at 
io.tabular.iceberg.connect.data.IcebergWriterFactory.createWriter(IcebergWriterFactory.java:54)
        at 
io.tabular.iceberg.connect.channel.Worker.lambda$writerForTable$4(Worker.java:157)
        at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1220)
        at 
io.tabular.iceberg.connect.channel.Worker.writerForTable(Worker.java:156)
        at 
io.tabular.iceberg.connect.channel.Worker.lambda$routeRecordStatically$1(Worker.java:112)
        at java.base/java.util.Arrays$ArrayList.forEach(Arrays.java:4235)
        at 
io.tabular.iceberg.connect.channel.Worker.routeRecordStatically(Worker.java:110)
        at io.tabular.iceberg.connect.channel.Worker.save(Worker.java:99)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
        at io.tabular.iceberg.connect.channel.Worker.write(Worker.java:85)
        at io.tabular.iceberg.connect.channel.TaskImpl.put(TaskImpl.java:42)
        at 
io.tabular.iceberg.connect.IcebergSinkTask.put(IcebergSinkTask.java:76)
        at 
org.apache.kafka.connect.runtime.WorkerSinkTask.deliverMessages(WorkerSinkTask.java:583)
        at 
org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:336)
        at 
org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:237)
        at 
org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:206)
        at 
org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:202)
        at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:257)
        at 
org.apache.kafka.connect.runtime.isolation.Plugins.lambda$withClassLoader$1(Plugins.java:177)
        at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:857)
   2025-01-07 04:06:45,286 INFO [ductest|task-0] RetryingMetaStoreClient 
proxy=class org.apache.hadoop.hive.metastore.HiveMetaStoreClient ugi=1000750000 
(auth:SIMPLE) retries=1 delay=1 lifetime=0 
(org.apache.hadoop.hive.metastore.RetryingMetaStoreClient) 
**[task-thread-ductest-0]**
   ```
   I enabled SSL with iceberg.catalog.hive.metastore.use.SSL = true, but it 
doesn't seem to have any effect. The logs still show Opened a connection to 
metastore instead of Opened an SSL connection to metastore, as expected from 
the Hive Metastore Client class 
(https://github.dev/apache/hive/blob/master/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java
 (line 833)
   So, can you recommend any solution to resolve this problem?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to