Spring Cloud Starter Stream Source JDBC에 포함된 JDBC 드라이버

Java|2020. 1. 30. 19:01

Spring Cloud Data Flow(스프링 클라우드 데이터 플로우)에서 JDBC 소스를 사용해 하이브(Hive)에 연결하는 중에 JDBC 드라이버 클래스를 못 찾는다는 오류가 발생했다. spring.datasource.driver-class-name 옵션값은 제대로 넣었다. 심지어 문서에선 클래스 이름을 안 넣으면 spring.datasource.url에 입력한 URL로 알아서 판단한다고 돼 있다.

생각해 보니, 이 모듈이 모든 데이터베이스의 JDBC 드라이버를 가지고 있을 턱이 없다. 어떤 JDBC 드라이버를 내장하고 있는지 조사해봤더니 다음과 같다.

  • H2
  • MariaDB
  • PostgreSQL
  • Microsoft SQL Server

직접 확인하고 싶다면 스프링 클라우드 스트림 프로젝트의 코드 저장소에서 pom.xml 파일을 보면된다.

참고로 MySQL을 사용한다면 spring.datasource.driver-class-name 옵션을 다음과 같이 입력해 MariaDB 드라이버를 사용하면 된다.

  • spring.datasource.driver-class-name=org.mariadb.jdbc.Driver

 

도움이 됐다면 공감 버튼을 클릭해 주세요. 감사합니다.

댓글()

유용한 크롬(Chrome) 단축키 - 탭(tab) 이동

기타|2020. 1. 18. 09:39

크롬을 사용하다 보면 키보드로 탭 이동을 해야 할 때가 있다.

단축키 Ctrl+9를 사용하면 탭 개수에 상관없이 마지막 탭으로 이동한다.

단축키 Ctrl+1~Ctrl+8을 사용하면 첫 번째 탭에서 여덟 번째 탭까지 손쉽게 이동할 수 있다.

 

도움이 됐다면 공감 버튼을 클릭해 주세요. 감사합니다.

댓글()

Ubuntu 16.04에서 발생하는 libseccomp2 의존성 문제

설치&설정|2019. 12. 23. 07:10

Ubuntu 16.04에서 docker(도커) 18.09 버전을 설치할 때 발생한 문제다.

도커 설치 문서를 참고해 설치를 진행했으나 다음과 같이 libseccomp2 패키지에 대한 의존성 문제가 발생했다.

root@ansible:~# sudo apt-get install docker-ce=5:18.09.9~3-0~ubuntu-xenial docker-ce-cli=5:18.09.9~3-0~ubuntu-xenial containerd.io
몇몇 패키지를 설치할 수 없습니다. 요청한 상황이 불가능할 수도 있고,
...
다음 패키지의 의존성이 맞지 않습니다:
 containerd.io : 의존: libseccomp2 (>= 2.4.0) 하지만 2.3.1-2.1ubuntu2~16.04.1 패키지를 설치할 것입니다

libseccomp2를 직접 설치해도 2.4 버전이 설치되진 않는다.

root@ansible:~# sudo apt-get install libseccomp2
libseccomp2 is already the newest version (2.3.1-2.1ubuntu2~16.04.1).

리눅스용 Libseccomp2 다운로드를 방문해 환경에 맞는 패키지를 다운로드한 후 설치한다.

root@ansible:~# curl -O http://archive.ubuntu.com/ubuntu/pool/main/libs/libseccomp/libseccomp2_2.4.1-0ubuntu0.16.04.2_amd64.deb

root@ansible:~# dpkg -i libseccomp2_2.4.1-0ubuntu0.16.04.2_amd64.deb
(데이터베이스 읽는중 ...현재 182339개의 파일과 디렉터리가 설치되어 있습니다.)
Preparing to unpack libseccomp2_2.4.1-0ubuntu0.16.04.2_amd64.deb ...
Unpacking libseccomp2:amd64 (2.4.1-0ubuntu0.16.04.2) over (2.3.1-2.1ubuntu2~16.04.1) ...
libseccomp2:amd64 (2.4.1-0ubuntu0.16.04.2) 설정하는 중입니다 ...
Processing triggers for libc-bin (2.23-0ubuntu11) ...

도커를 설치하고 동작을 확인한다.

root@ansible:~# sudo apt-get install docker-ce=5:18.09.9~3-0~ubuntu-xenial docker-ce-cli=5:18.09.9~3-0~ubuntu-xenial containerd.io

root@ansible:~# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:4df8ca8a7e309c256d60d7971ea14c27672fc0d10c5f303856d7bc48f8cc17ff
Status: Downloaded newer image for hello-world:latest

Hello from Docker!

 

도움이 됐다면 공감 버튼을 클릭해 주세요. 감사합니다.

댓글()

쿠버네티스(kubernetes)의 imagePullPolicy

Kubernetes|2019. 12. 22. 12:11

쿠버네티스의 기본 이미지 가져오기 정책(image pull policy)은 IfNotPresent다. 따라서 이미지가 이미 있으면 레지스트리에서 이미지를 가져오지 않고 로컬 이미지를 사용한다.

항상 레지스트리에서 이미지를 가져오게 하고 싶으면 다음과 같이 한다.

  • 컨테이너 구성(spec)의 imagePullPolicyAlways로 설정한다.
  • 컨테이너 구성에서 imagePullPolicy 항목을 없애고 태그가 :latest인 이미지를 사용한다. Always 정책이 적용된다.
  • 컨테이너 구성에서 imagePullPolicy 항목을 없애고 태그를 생략한 이미지를 사용한다. Always 정책이 적용된다.
  • AlwaysPullImages 어드미션 컨트롤러(Admission Controller)를 활성화한다.

lastest 태그는 상용 환경(production)에선 사용하지 않는 게 좋다. 어떤 이미지를 사용 중인지 알 수 없고 롤백 또한 어렵다.

이미지에 대한 더 다양한 내용은 다음 링크를 참고한다.

 

도움이 됐다면 공감 버튼을 클릭해 주세요. 감사합니다.

댓글()

minikube -The system cannot find the path specified..

Kubernetes|2019. 1. 7. 08:13

윈도우(Windows)에서 minikube start 명령을 실행했을 때 다음과 같은 오류가 발생하는 경우가 있다.

D:\tmp>minikube start --bootstrapper kubeadm --memory 4096
Starting local Kubernetes v1.12.4 cluster...
Starting VM...
Downloading Minikube ISO
 178.88 MB / 178.88 MB [============================================] 100.00% 0s
E0104 10:20:54.727967   15524 start.go:187] Error starting host: Error creating host: Error executing step: Creating VM.
: open /Users/daniel/.minikube/cache/iso/minikube-v0.32.0.iso: The system cannot find the path specified..

 Retrying.
E0104 10:20:54.732965   15524 start.go:193] Error starting host:  Error creating host: Error executing step: Creating VM.
: open /Users/daniel/.minikube/cache/iso/minikube-v0.32.0.iso: The system cannot find the path specified.
================================================================================
An error has occurred. Would you like to opt in to sending anonymized crash
information to minikube to help prevent future errors?
To opt out of these messages, run the command:
        minikube config set WantReportErrorPrompt false
================================================================================
Please enter your response [Y/n]:

이럴 때는 MINIKUBE_HOME 환경 변수를 설정하면 된다.

minikube를 Chocolatey로 설치했다면 다음과 같이 설정한 후 다시 minikube start 명령을 실행한다.

D:\tmp>set MINIKUBE_HOME=C:\ProgramData\chocolatey\lib\Minikube\tools
D:\tmp>minikube start --bootstrapper kubeadm --memory 4096

EOF

댓글()