flink sql 에서 kafka connector type 을 지원하고, document 에도 예제는 잘 정리되어있다. 하지만, Kafka 에 SCRAM-SHA-512 인증이 있어서 properties 값을 적용해야하는 경우 어떻게 해야하는지 예시가 없는듯 하다. 이걸 해결하는 방법을 알려주고자 한다. 보통 kafka consumer 를 직접 만들때, 다음과 같은 형태의 연결정보에 이용한다는걸 가정하고 예제를 들어보겠다. # 연결정보 bootstrap.servers=kafka.myhome.com:9093 schema.registry.url=http://schema.myhome.com:8081 # 인증관련설정 sasl.mechanism=SCRAM-SHA-512 security.protocol=SASL_P..
우선 이 문제가 발생한것은 Pageable 객체를 사용하는데, WebMvcConfiguration 관련 세팅을 사용자가 직접 세팅할때 관련된 처리가 누락되어 나타나는 문제로 나타났다. 즉, 내가 수동으로 설정한 WebConfig 가 WebAutoConfig 를 대체하면서 문제가 된 케이스... 컨트롤러에서 Pageable 처리를 할때, 해당 값은 아래와 같이 별도의 어노테이션이 없이 동작하는데, 이런 선언없이 동작하는 매직(?!)을 실수로 빠지게 구성한것이다. Pageable 관련된 내용은 아래 링크에 설명이 잘된편이니 궁금하면 참고하자. https://tecoble.techcourse.co.kr/post/2021-08-15-pageable/ @Api(value = "ItemController") @Sw..
참고로 이 문제는 Flink 1.14.x 버전대에서 JDK11 버전을 이용할때 아래와 같은 문제가 발생된다. 나같은 경우 hadoop 2.6.x 버전에 hive 2.3.6 을 사용하는데, JDK 호환성의 영향이 존재했었다. https://issues.apache.org/jira/browse/HIVE-22415 https://issues.apache.org/jira/browse/HADOOP-12760 $ java -version openjdk version "11.0.13" 2021-10-19 LTS OpenJDK Runtime Environment 18.9 (build 11.0.13+8-LTS) OpenJDK 64-Bit Server VM 18.9 (build 11.0.13+8-LTS, mixed mod..

오래된 레거시를 보니 swagger 1.x 기반이었는데, 세팅이 되다 말았는지 ui 형태로 볼수가 없었다. 그래서 과감하게 3.x 로 넘어가려고 했는데 오류가 나서 2.x 로 띄운걸 정리하고자 한다. 버전별로 swagger 를 볼 수 있는 주소가 다른데, 2.x 버전대는 정상적으로 세팅했다면 8080 포트로 띄웠다고 가정하면, 아래와 같은 url 로 로컬에서 확인이 가능하다. (참고로 swagger 버전별로 저 주소패턴도 달라진다) API 주소 : http://127.0.0.1:8080/v2/api-docs UI 주소 : http://127.0.0.1:8080/swagger-ui.html 의존성 추가하기 우선 과거에 있던 swagger 1.x 버전대는 제거하고 다음과 같이 maven 의존성을 추가했다. ..

내가 겪은 상황은 SpringBoot 는 1.4.1 버전을 사용중이었고, log4j 보안문제때문에 2.17.0 으로 변경했을때 나타난 문제이다. 일반적으로 NoSuchmethodError 의 경우는 버전이 변경되면서, 해당 메소드의 인자 갯수나 타입이 변경될때 나타나는 경우가 일반적이다. 그래서 이땐 해당 버전을 맞춰주면 보통 해결이 된다. 16:14:54.829 [main] ERROR org.springframework.boot.SpringApplication - Application startup failed java.lang.NoSuchMethodError: org.apache.logging.log4j.core.config.ConfigurationFactory.getConfiguration(Lorg..
내가 겪은 케이스는 A 클러스터환경에서, B 클러스터에 붙을수 있도록 nameservice 를 추가후, B클러스터에 붙을때 나타났던 현상이다. 베이스가 되는 hadoop config 은 커버로스 인증을 써야하는 형태로 세팅이 되어있다보니, 인증이 없는 클러스터를 접속하려고 할때, 다른 두 환경에서 세팅이 충돌난 문제이다. A 하둡 클러스터 (커버로스 인증필요) B 하둡 클러스터 (인증 없음) 예를 들면, 오류메시지는 아래와 같다. # ----------------------------- # A 클러스터 접근 (커버로스 인증 필요) # ----------------------------- $ kinit -kt /user1/airflow/airflow.keytab airflow@AHADOOP.MYHOME.C..
pip 를 통해 패키지를 설치하려고 했는데, 다음과 같이 오류가 나는 상황이 존재한다. 결론부터 말하면, 버전이 너무 오래되서 8.1.2 에서 22.2.2 로 바로 업데이트를 못하는 상황이다. 변경사항이 너무 많기 때문에, 과거버전에서 바로 업데이트하는것이 미지원 되는걸로 보인다. $ sudo pip install --upgrade pip Collecting pip Downloading https://files.pythonhosted.org/packages/4b/30/e15b806597e67057e07a5acdc135216ccbf76a5f1681a324533b61066b0b/pip-22.2.2.tar.gz (2.0MB) 100% |████████████████████████████████| 2.0MB 5..
통합 테스트를 하려고 했는데, MYSQL 의존성이 있어서 세팅이 필요한 경우가 있다. 가장 가볍게 구성하려면, Docker 를 이용하는게 가장 손쉬운것 같다. docker 를 이용해서 mysql 8 버전을 띄우고, 외부접근 가능한 계정까지 만들어 보자. 1. docker 를 통해 mysql 기동하기 docker 가 설치되어있다면 아주 간단한 명령어로 기동이 가능하다. docker pull mysql:8.0.22 docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=암호 -d -p 3306:3306 mysql:8.0.22 만약, 프로세스가 종료되도 db의 데이터가 유지되어야 한다면 볼륨마운트를 해야한다. (안그러면 컨테이너 종료하면 사라짐) 실행할 때 -v ..