
[Spark] 도커 컨테이너의 열린 포트 확인하는 방법
먼저 패키지를 설치한다 apt-get install net-tools -y 다음 명령어로 쉽게 확인할 수 있다. netstat -tnlp | grep "LISTEN" 해당 컨테이너에서는 8080포트와 7077 포트를 사용중인데, 8080포트는 스파크 웹 UI 포트가 열린 것을 확인할 수 있고, 7077포트는 스파크 마스터 포트가 열린 것을 확인할 수 있다.
먼저 패키지를 설치한다 apt-get install net-tools -y 다음 명령어로 쉽게 확인할 수 있다. netstat -tnlp | grep "LISTEN" 해당 컨테이너에서는 8080포트와 7077 포트를 사용중인데, 8080포트는 스파크 웹 UI 포트가 열린 것을 확인할 수 있고, 7077포트는 스파크 마스터 포트가 열린 것을 확인할 수 있다.
아무런 설정을 하지 않고 단순히 우분투 18.04에 spark 실행에 필요한 jdk, spark 추가로 python 만 설치하고 스파크 마스터를 실행시켰을 때를 확인해보자 spark-env.sh 는 스파크 설정 파일인데 해당 파일은 스파크 설치 위치 (나는 /home에 설치를 했다.) /home/spark/conf/spark-env.sh.templete 파일이 있는데, 뒤에 .templete 만 지우고 스파크 마스터를 실행시켜보자. 작업중인 깃허브는 다음과 같다. https://github.com/ParkGyeongTae/spark-pgt/tree/main/0_spark 도커파일은 다음과 같다. FROM ubuntu:18.04 LABEL maintainer "ParkGyeongTae" # apt 설치시 ..
bash: javac: command not found 위와 같은 에러가 나오는 경우가 있다. 이는 두가지로 의심할 수 있다. 하나는 jdk를 설치를 안했을 경우이고, 또 하나는 jdk를 설치했으나 파일과 같은 형식으로 설치하면 환경변수가 설정되지않아 환경변수를 설정해줘야 하는 경우이다.
스파크는 jdk 에서 실행된다. 스파크를 설치하기 전 jdk를 선행적으로 설치해줘야한다. jdk 설치 여부는 아래의 명령어로 확인할 수 있다. javac -verison jdk를 설치해보자 먼저 패키지 업데이트 먼저 실행한다. apt update apt 를 이용해서 jdk 8버전을 설치하자 apt install openjdk-8-jdk -y 잘 설치 됐는지 확인해보자 javac -version
failed to solve with frontend dockerfile.v0: failed to create LLB definition: rpc error: code = Unknown desc = error getting credentials - err: exit status 1, out: `` 이런 에러가 발생할 때가 있다. 나의 경우에는 내가 가진 도커파일로 이미지를 만들 때 발생하는데, VSCode 터미널로 작업한다. 이 때 VSCode를 껏다가 다시키고, 빌드를 하면 정상동작하는 것을 확인할 수 있따
이번에는 나의 도커에 node-exporter 컨테이너와 cadvisor 컨테이너를 만들어서 웹 ui에 접속해보자! 먼저 폴더 구조는 다음과 같다. 이 모든 폴더를 압축한 파일은 다음과 같다. /cadvisor/cadvisor-remove/remove-image.sh : cadvisor 이미지 삭제 쉘 스크립트 /node-exporter/node-exporter-build/build-node-exporter.sh : 노드익스포터 이미지 만드는 스크립트 /node-exporter/node-exporter-dockerfile/Dockerfile : 도커파일 /node-exporter/node-exporter-remove/remove-image.sh : 노드익스포터 이미지 삭제 쉘 스크립트 /docker-c..
노드 익스포터를 만들 때 포트를 변경할 수 있다. 내용이 그대로 들어간 압축파일은 다음과 같다. build-node-exporter.sh : 이미지 만드는 파일 Dockerfile : 도커파일 remove-image.sh : 이미지 지우는 쉘 스크립트 docker-compose.yml : 컨테이너 만드는 파일 build-node-exporter.sh #!/bin/bash IMAGE_NAME=gyeongtae/node-exporter IMAGE_TAG=0.01 IMAGE_NAME_TAG=$IMAGE_NAME:$IMAGE_TAG if [[ "$(docker container ls -a --filter="status=exited" -q 2> /dev/null)" != "" ]]; then docker rm $..
회사에서 노드 익스포터를 사용할 일이 생겨서 정리해보자. 도커 허브에 이미 만들어진 노드 익스포터가 있지만 직접 만들어보자. 파일의 구조는 다음과 같다. 최상위 docker 폴더의 압축파일이다. build-node-exporter.sh 는 내가 만든 도커파일로 이미지를 만들 때 사용한다. build-node-exporter.sh #!/bin/bash IMAGE_NAME=node-exporter-pgt IMAGE_TAG=0.01 IMAGE_NAME_TAG=$IMAGE_NAME:$IMAGE_TAG if [[ "$(docker container ls -a --filter="status=exited" -q 2> /dev/null)" != "" ]]; then docker rm $(docker container ..
도커 파일을 실행하다가 다음과 같은 에러가 발생했다. 아무래도 권한 문제인 것 같다. 내 폴더의 구조는 다음과 같다. 내가 만든 build 쉘 스크립트 파일을 통해서 도커 이미지를 만들려고 했으나, 에러가 발생했다. 그래서 권한을 확인한다. 내부에 있는 쉘 스크립트 파일의 읽기쓰기 권한이 이상하다. 그래서 최상위 폴더인 node-exporter 라는 폴더의 하위폴더까지 모든 권한을 줘보자. Dockerfile과 docker-compose 파일에도 모든 권한을 주자. chmod -R 755 node-exporter chmod 755 Dockerfile chmod 755 docker-compose.yml ll 이제 하위폴더까지 바뀌었는지 확인해보자 이제 다시 빌드를 해보자 잘된다.. 권한 문제였다!
우분투를 사용하는데, 현재 내 우분투가 사용하는 포트가 궁금해서 명령어를 입력했더니 다음과 같은 에러가 발생했다. netstat -tnlp | grep "LISTEN" Command 'netstat' not found, but can be installed with: sudo apt install net-tools 이건 netstat라는 명령어가 설치 안됐다는 이야기인데, 설치해보자. sudo apt-get install net-tools 다시 명령어를 입력해보자 netstat -tnlp | grep "LISTEN" 잘 확인된다.