flowerfine / scaleph

Open data platform based on Kubernetes. Scaleph supports SeaTunnel、Flink and Doris backended by SeaTunnel on Flink engine、Flink Kubernetes Operator and Doris operator.
https://flowerfine.github.io/scaleph-repress-site/
Apache License 2.0
368 stars 103 forks source link

[Bug] [scaleph-api] java.lang.NullPointerException: rest.address must be set #395

Open bitian opened 1 year ago

bitian commented 1 year ago

Already searched before asking?

Scaleph Version or Branch

SeaTunnel2.3.0-beta,docker run Scaleph

What happened

图片 when I add cluster instance,show this error:java.lang.NullPointerException: rest.address must be set. Where do I need to configure this?

Error Exception

scaleph-api       | 2022-11-14 20:42:52.846 ERROR 5 [http-nio-8080-exec-1] c.s.s.a.e.GlobalExceptionHandler         122  行: [sys_admin] PUT /scaleph/api/flink/cluster-instance request_body: [{"flinkClusterConfigId":2}]
scaleph-api       | 
scaleph-api       | java.lang.NullPointerException: rest.address must be set
scaleph-api       |     at org.apache.flink.util.Preconditions.checkNotNull(Preconditions.java:104)
scaleph-api       |     at org.apache.flink.runtime.highavailability.HighAvailabilityServicesUtils.getWebMonitorAddress(HighAvailabilityServicesUtils.java:196)
scaleph-api       |     at org.apache.flink.runtime.highavailability.HighAvailabilityServicesUtils.createClientHAService(HighAvailabilityServicesUtils.java:138)
scaleph-api       |     at org.apache.flink.client.program.rest.RestClusterClient.<init>(RestClusterClient.java:171)
scaleph-api       |     at cn.sliew.scaleph.engine.flink.service.impl.FlinkServiceImpl.createExistingSessionCluster(FlinkServiceImpl.java:442)
scaleph-api       |     at cn.sliew.scaleph.engine.flink.service.impl.FlinkServiceImpl.createSessionCluster(FlinkServiceImpl.java:137)
scaleph-api       |     at cn.sliew.scaleph.api.controller.flink.ClusterInstanceController.createSessionCluster(ClusterInstanceController.java:66)
scaleph-api       |     at cn.sliew.scaleph.api.controller.flink.ClusterInstanceController$$FastClassBySpringCGLIB$$721e435a.invoke(<generated>)
scaleph-api       |     at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
scaleph-api       |     at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
scaleph-api       |     at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
scaleph-api       |     at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
scaleph-api       |     at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)
scaleph-api       |     at cn.sliew.scaleph.api.aspect.LogAspect.actionLogAround(LogAspect.java:104)
scaleph-api       |     at jdk.internal.reflect.GeneratedMethodAccessor197.invoke(Unknown Source)
scaleph-api       |     at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
scaleph-api       |     at java.base/java.lang.reflect.Method.invoke(Unknown Source)
scaleph-api       |     at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)
scaleph-api       |     at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:624)
scaleph-api       |     at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:72)
scaleph-api       |     at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
scaleph-api       |     at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
scaleph-api       |     at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
scaleph-api       |     at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
scaleph-api       |     at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
scaleph-api       |     at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
scaleph-api       |     at cn.sliew.scaleph.api.controller.flink.ClusterInstanceController$$EnhancerBySpringCGLIB$$dcd738f6.createSessionCluster(<generated>)
scaleph-api       |     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
scaleph-api       |     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
scaleph-api       |     at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
scaleph-api       |     at java.base/java.lang.reflect.Method.invoke(Unknown Source)
scaleph-api       |     at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
scaleph-api       |     at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
scaleph-api       |     at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
scaleph-api       |     at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
scaleph-api       |     at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
scaleph-api       |     at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
scaleph-api       |     at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071)
scaleph-api       |     at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964)
scaleph-api       |     at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
scaleph-api       |     at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:920)
scaleph-api       |     at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
scaleph-api       |     at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
scaleph-api       |     at javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
scaleph-api       |     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
scaleph-api       |     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
scaleph-api       |     at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
scaleph-api       |     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
scaleph-api       |     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
scaleph-api       |     at cn.sliew.scaleph.security.web.TokenFilter.doFilter(TokenFilter.java:85)
scaleph-api       |     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
scaleph-api       |     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
scaleph-api       |     at cn.sliew.scaleph.api.config.WebMvcConfig$WebLogInterceptor.doFilterInternal(WebMvcConfig.java:123)
scaleph-api       |     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
scaleph-api       |     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
scaleph-api       |     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
scaleph-api       |     at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)
scaleph-api       |     at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)
scaleph-api       |     at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)
scaleph-api       |     at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
scaleph-api       |     at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)
scaleph-api       |     at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)
scaleph-api       |     at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
scaleph-api       |     at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)
scaleph-api       |     at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)
scaleph-api       |     at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
scaleph-api       |     at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)
scaleph-api       |     at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
scaleph-api       |     at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)
scaleph-api       |     at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
scaleph-api       |     at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
scaleph-api       |     at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
scaleph-api       |     at cn.sliew.scaleph.security.web.TokenFilter.doFilter(TokenFilter.java:85)
scaleph-api       |     at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
scaleph-api       |     at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)
scaleph-api       |     at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)
scaleph-api       |     at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
scaleph-api       |     at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)
scaleph-api       |     at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)
scaleph-api       |     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
scaleph-api       |     at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
scaleph-api       |     at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)
scaleph-api       |     at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilt

Screenshots

No response

Are you willing to submit PR?

Code of Conduct

kalencaya commented 1 year ago

bootstrap flink cluster locally through bin/start-cluster.sh on FLINK_HOME then upload bin/flink-conf.yaml on resource center -> cluster credentials