apache / seatunnel

SeaTunnel is a next-generation super high-performance, distributed, massive data integration tool.
https://seatunnel.apache.org/
Apache License 2.0
8.07k stars 1.83k forks source link

[Bug] seatunnel and seatunnel-web are deployed in the same pod, Exceptiton: Authentication failed. The configured cluster name on the client (see ClientConfig.setClusterName()) does not match the one configured in the cluster or the credentials set in the Client security config could not be authenticated #7945

Closed einherjar9527 closed 3 weeks ago

einherjar9527 commented 3 weeks ago

Search before asking

What happened

  1. Build an image from a Dockerfile, seatunnel version: 2.3.8, seatunnel-web version: 1.0.3

    FROM seatunnel:2.3.8

    ENV SEATUNNEL_HOME="/opt/seatunnel" ENV SEATUNNEL_VERSION="2.3.8" ENV SEATUNNEL_WEB_VERSION="1.0.3" ENV SEATUNNEL_WEB_HOME="/opt/seatunnel-web" ENV ST_WEB_BASEDIR_PATH=${SEATUNNEL_WEB_HOME}/ui

    COPY ./apache-seatunnel-web-${SEATUNNEL_WEB_VERSION}.tar.gz /opt

    WORKDIR /opt RUN tar -zxf apache-seatunnel-web-${SEATUNNEL_WEB_VERSION}.tar.gz && \ mv apache-seatunnel-web-${SEATUNNEL_WEB_VERSION} seatunnel-web && \ rm -rf apache-seatunnel-web-${SEATUNNEL_WEB_VERSION}.tar.gz

    RUN chmod 644 ${SEATUNNEL_HOME}/config/hazelcast-client.yaml && \ cp ${SEATUNNEL_HOME}/config/hazelcast-client.yaml ${SEATUNNEL_WEB_HOME}/conf/ &&\ chmod 644 ${SEATUNNEL_HOME}/connectors/plugin-mapping.properties && \ cp ${SEATUNNEL_HOME}/connectors/plugin-mapping.properties ${SEATUNNEL_WEB_HOME}/conf/

  2. deploy in k8s
  3. Execute in podRUN sh bin/seatunnel-backend-daemon.sh start
  4. seatunnel-web log Snipaste_2024-10-29_21-04-16

SeaTunnel Version

2.3.8

SeaTunnel Config

#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

seatunnel:
  engine:
    history-job-expire-minutes: 1440
    backup-count: 1
    queue-type: blockingqueue
    print-execution-info-interval: 60
    print-job-metrics-info-interval: 60
    slot-service:
      dynamic-slot: true
    checkpoint:
      interval: 10000
      timeout: 60000
      storage:
        type: hdfs
        max-retained: 3
        plugin-config:
          namespace: /tmp/seatunnel/checkpoint_snapshot
          storage.type: hdfs
          fs.defaultFS: file:///tmp/ # Ensure that the directory has written permission
    telemetry:
      metric:
        enabled: false

Running Command

sh /opt/seatunnel/bin/seatunnel.sh --config /opt/seatunnel/config/v2.streaming.conf.template -e local

Error Exception

2024-10-29 14:09:34.769 seatunnel seatunnel-0 WARN [main] [ClientLoggingService$DefaultLogger.log():104] - hz.client_1 [seatunnel] [5.1] ClientConnection{alive=false, connectionId=1, channel=NioChannel{/127.0.0.1:41381->localhost/127.0.0.1:5801}, remoteAddress=null, lastReadTime=2024-10-29 14:09:34.765, lastWriteTime=2024-10-29 14:09:34.764, closedTime=2024-10-29 14:09:34.767, connected server version=null} closed. Reason: Failed to authenticate connection
com.hazelcast.client.AuthenticationException: Authentication failed. The configured cluster name on the client (see ClientConfig.setClusterName()) does not match the one configured in the cluster or the credentials set in the Client security config could not be authenticated
        at com.hazelcast.client.impl.connection.tcp.TcpClientConnectionManager.checkAuthenticationResponse(TcpClientConnectionManager.java:995)
        at com.hazelcast.client.impl.connection.tcp.TcpClientConnectionManager.onAuthenticated(TcpClientConnectionManager.java:898)
        at com.hazelcast.client.impl.connection.tcp.TcpClientConnectionManager.getOrConnectToAddress(TcpClientConnectionManager.java:615)
        at com.hazelcast.client.impl.connection.tcp.TcpClientConnectionManager.lambda$doConnectToCandidateCluster$3(TcpClientConnectionManager.java:505)
        at com.hazelcast.client.impl.connection.tcp.TcpClientConnectionManager.connect(TcpClientConnectionManager.java:459)
        at com.hazelcast.client.impl.connection.tcp.TcpClientConnectionManager.doConnectToCandidateCluster(TcpClientConnectionManager.java:505)
        at com.hazelcast.client.impl.connection.tcp.TcpClientConnectionManager.doConnectToCluster(TcpClientConnectionManager.java:411)
        at com.hazelcast.client.impl.connection.tcp.TcpClientConnectionManager.connectToCluster(TcpClientConnectionManager.java:372)
        at com.hazelcast.client.impl.clientside.HazelcastClientInstanceImpl.start(HazelcastClientInstanceImpl.java:381)
        at com.hazelcast.client.HazelcastClient.constructHazelcastClient(HazelcastClient.java:460)
        at com.hazelcast.client.HazelcastClient.newHazelcastClientInternal(HazelcastClient.java:416)
        at com.hazelcast.client.HazelcastClient.newHazelcastClient(HazelcastClient.java:136)
        at org.springframework.boot.autoconfigure.hazelcast.HazelcastClientConfiguration.getHazelcastInstance(HazelcastClientConfiguration.java:55)
        at org.springframework.boot.autoconfigure.hazelcast.HazelcastClientConfiguration.access$000(HazelcastClientConfiguration.java:47)
        at org.springframework.boot.autoconfigure.hazelcast.HazelcastClientConfiguration$HazelcastClientConfigFileConfiguration.hazelcastInstance(HazelcastClientConfiguration.java:69)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
        at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653)
        at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:638)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1352)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1195)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
        at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:953)
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145)
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:745)
        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:420)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1317)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306)
        at org.apache.seatunnel.app.SeatunnelApplication.main(SeatunnelApplication.java:36)
2024-10-29 14:09:34.770 seatunnel seatunnel-0 WARN [main] [ClientLoggingService$DefaultLogger.log():104] - hz.client_1 [seatunnel] [5.1] Exception during initial connection to [localhost]:5801: com.hazelcast.client.AuthenticationException: Authentication failed. The configured cluster name on the client (see ClientConfig.setClusterName()) does not match the one configured in the cluster or the credentials set in the Client security config could not be authenticated
2024-10-29 14:09:34.770 seatunnel seatunnel-0 WARN [main] [ClientLoggingService$DefaultLogger.log():104] - hz.client_1 [seatunnel] [5.1] Unable to get live cluster connection, retry in 1000 ms, attempt: 1, cluster connect timeout: 3000 ms, max backoff: 30000 ms
2024-10-29 14:09:35.771 seatunnel seatunnel-0 INFO [main] [ClientLoggingService$DefaultLogger.log():104] - hz.client_1 [seatunnel] [5.1] Trying to connect to [localhost]:5801
2024-10-29 14:09:35.775 seatunnel seatunnel-0 WARN [main] [ClientLoggingService$DefaultLogger.log():104] - hz.client_1 [seatunnel] [5.1] ClientConnection{alive=false, connectionId=2, channel=NioChannel{/127.0.0.1:41591->localhost/127.0.0.1:5801}, remoteAddress=null, lastReadTime=2024-10-29 14:09:35.774, lastWriteTime=2024-10-29 14:09:35.773, closedTime=2024-10-29 14:09:35.775, connected server version=null} closed. Reason: Failed to authenticate connection
com.hazelcast.client.AuthenticationException: Authentication failed. The configured cluster name on the client (see ClientConfig.setClusterName()) does not match the one configured in the cluster or the credentials set in the Client security config could not be authenticated
        at com.hazelcast.client.impl.connection.tcp.TcpClientConnectionManager.checkAuthenticationResponse(TcpClientConnectionManager.java:995)
        at com.hazelcast.client.impl.connection.tcp.TcpClientConnectionManager.onAuthenticated(TcpClientConnectionManager.java:898)
        at com.hazelcast.client.impl.connection.tcp.TcpClientConnectionManager.getOrConnectToAddress(TcpClientConnectionManager.java:615)
        at com.hazelcast.client.impl.connection.tcp.TcpClientConnectionManager.lambda$doConnectToCandidateCluster$3(TcpClientConnectionManager.java:505)
        at com.hazelcast.client.impl.connection.tcp.TcpClientConnectionManager.connect(TcpClientConnectionManager.java:459)
        at com.hazelcast.client.impl.connection.tcp.TcpClientConnectionManager.doConnectToCandidateCluster(TcpClientConnectionManager.java:505)
        at com.hazelcast.client.impl.connection.tcp.TcpClientConnectionManager.doConnectToCluster(TcpClientConnectionManager.java:411)
        at com.hazelcast.client.impl.connection.tcp.TcpClientConnectionManager.connectToCluster(TcpClientConnectionManager.java:372)
        at com.hazelcast.client.impl.clientside.HazelcastClientInstanceImpl.start(HazelcastClientInstanceImpl.java:381)
        at com.hazelcast.client.HazelcastClient.constructHazelcastClient(HazelcastClient.java:460)
        at com.hazelcast.client.HazelcastClient.newHazelcastClientInternal(HazelcastClient.java:416)
        at com.hazelcast.client.HazelcastClient.newHazelcastClient(HazelcastClient.java:136)
        at org.springframework.boot.autoconfigure.hazelcast.HazelcastClientConfiguration.getHazelcastInstance(HazelcastClientConfiguration.java:55)
        at org.springframework.boot.autoconfigure.hazelcast.HazelcastClientConfiguration.access$000(HazelcastClientConfiguration.java:47)
        at org.springframework.boot.autoconfigure.hazelcast.HazelcastClientConfiguration$HazelcastClientConfigFileConfiguration.hazelcastInstance(HazelcastClientConfiguration.java:69)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
        at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653)
        at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:638)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1352)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1195)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
        at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:953)
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145)
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:745)
        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:420)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1317)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306)
        at org.apache.seatunnel.app.SeatunnelApplication.main(SeatunnelApplication.java:36)
2024-10-29 14:09:35.776 seatunnel seatunnel-0 WARN [main] [ClientLoggingService$DefaultLogger.log():104] - hz.client_1 [seatunnel] [5.1] Exception during initial connection to [localhost]:5801: com.hazelcast.client.AuthenticationException: Authentication failed. The configured cluster name on the client (see ClientConfig.setClusterName()) does not match the one configured in the cluster or the credentials set in the Client security config could not be authenticated
2024-10-29 14:09:35.776 seatunnel seatunnel-0 WARN [main] [ClientLoggingService$DefaultLogger.log():104] - hz.client_1 [seatunnel] [5.1] Unable to get live cluster connection, retry in 1050 ms, attempt: 2, cluster connect timeout: 3000 ms, max backoff: 30000 ms

Zeta or Flink or Spark Version

zeta2.3.8

Java or Scala Version

openjdk version "1.8.0_342"

Screenshots

No response

Are you willing to submit PR?

Code of Conduct

liunaijie commented 3 weeks ago

Hi @einherjar9527 , did you start the seatunnel server before execute RUN sh bin/seatunnel-backend-daemon.sh start You need start the seatunnel cluster first, then start the web.

image

einherjar9527 commented 3 weeks ago

Hi @einherjar9527 , did you start the seatunnel server before execute RUN sh bin/seatunnel-backend-daemon.sh start You need start the seatunnel cluster first, then start the web.

image

thank you very much for your reply, my command to start the engine is [sh ./bin/seatunnel.sh -m local -c config/v2.streaming.config.template], Just change it to [sh ./bin/seatunnel-cluster -d] and can runing

einherjar9527 commented 3 weeks ago

thank you very much for your reply