DockerRegistry 란? 도커이미지를 업로드하고 다운로드 할수 있는 저장소로 생각하면 쉽다. 우리가 maven 을 통해 deploy 하고 가져올수 있는것과 비슷하다. 기본적으로는 오픈된 https://hub.docker.com 을 이용해서 사용하는데, ip당 가져오는 횟수가 제한되어있기도 하고, 회사에서 별도로 이미지를 관리해야 하는 상황이 오면 결국 사내 DockerRegistry 를 운영할 수 밖에 없다. 여기서는 가장 쉽게 설치 가능한 방법을 알려주도록 하겠다. 1. 도커설치 초간단 설치가 가능한 이유는 Private Docker Registry 자체도 도커이미지로 존재하기 때문에 그걸 사용하기 때문이다. 물론 도커가 설치된 이후가 기본이겠지만 안되어있다면 도커부터 설치하도록 한다. 편의상 ..
이 오류의 원인은 결론부터 말하면, 요청횟수를 넘었다는 말이다. 이 말은 무엇이냐면, 도커의 이미지는 기본적으로 docker hub 에서 가져오게 되는데, 여기서 허용한 횟수를 넘었다는 말이다. ERROR: toomanyrequests: Too Many Requests. You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limits 원인 dockerhub 에 방문해보면 가격정책에 개인사용자의 경우 6시간마다 200개의 이미지만 pull 할 수 있는 제약이 존재한다. 개인이 이 횟수를 넘기는 쉽지 않지만, 하나의 서..
도커 이미지를 빌드할때 명령어를 기입하는 용도로 3가지의 표현이 존재한다. 이 차이가 뭔지 알고 넘어가도록 하자. 이 이해를 해야 docker run 을 통해 이미지를 활용할때 응용해서 실행 구성하는게 쉬워진다. 참고로 ENTRYPOINT 와 CMD 는 실행시점에 사용자가 변경가능한것도 특징중에 하나이다. 구분 RUN ENTRYPOINT CMD 명령어 사용시점 빌드시점 이미지 실행시점 실행시점 Dockerfile 기입횟수 여러라인에 표현가능 1번만 가능 1번만 가능 명령어 표현 명령어 그대로 타이밍 python sample.py 배열형태로 표현 ["python"] 배열형태로 표현 ["sample.py"] 특징 빌드시에 실행됨 ENTRYPOINT + CMD 를 조합할 경우 CMD 는 ENTRYPOINT 의..
서버에 설치된 하둡버전이 hadoop-3.3.1 버전이었는데, hadoop-3.2.3 의 다른 버전을 사용했을때 나타났던 문제이다. protobuf 는 원격지에 데이터를 직렬화 하기위한 인터넷 프로토콜인데 의존된 버전간이 달라지면서 호환성에 문제가 있는게 문제가 아닌가 의심된다. 결국 서버에 있는 하둡버전과 동일하게 클라이언트 환경을 다시 세팅후 성공했다. 신기한건 hadoop fs 명령으로 hdfs 를 확인할때는 문제가 없었는데, yarn 명령을 이용하려고 할때 문제가 발생되었다. # 서버는 3.3.1 , 현재 서버의 하둡클라이언트 버전은 3.2.3 $ yarn application -list 2022-09-07 17:50:51,598 WARN util.NativeCodeLoader: Unable to..
하둡바이너리 파일과 hdfs, yarn 관련 xml 을 모두 복사후 yarn application 을 확인하기위해 다음과 같이 실행했더니, 다음과 같은 오류가 발생했다. 참고로 커버로스 인증을 통해야 했고, 커버로스 인증은 kinit 으로 성공했다. 그리고 client 환경이 아니라 하둡이 설치된 서버에 직접 접속해서 테스트하면 이런 오류가 발생되지 않았고, 별도로 설치한 client 환경에서만 이런문제가 발생했다. $ kinit -k -t /user/gildong/gildong.keytab gildong@MYHOME.COM $ yarn application -list 2022-09-07 18:29:34,077 INFO impl.TimelineReaderClientImpl: Initialized Time..
증상 다음과 같이 Flink 에서 하둡클러스터의 yarn 기반에서 application 잘 invoke 되는지 테스트를 하려고 했는데, 다음과 같은 오류가 나는 경우가 발생했다. 참고로 오류메시지는 다르지만 기존에 "com/sun/jersey/core/util/FeaturesAndProperties" 클래스를 찾을수 없다며 오류를 냈던 케이스와 동일하게 해결이 가능했다. 2022.03.18 - [데이터처리/Flink] - [Flink] yarn-session.sh 오류 : java.lang.NoClassDefFoundError $ ./bin/flink run-application -t yarn-application ./examples/streaming/TopSpeedWindowing.jar ...생략....
docker 는 컨테이너 기반으로 독립된 환경을 제공하는데, 이미지를 docker hub 가 아닌 개인 저장소에 빌드 및 업로드 하고 싶을때는 private docker-registry 를 설치해야한다. 여기서는 docker 를 설치하고, private docker-reigistry 도 이미지를 통해 기동하는 구조로 설치하는 방법을 정리했다. docker 설치하기 sudo 로 root 권한을 사용하는 형태로 설치한다고 가정한다. root 권한이 있다면 sudo 는 생략가능하다. sudo wget -qO- http://get.docker.com/ | sh sudo systemctl start docker sudo systemctl enable docker sudo chmod 666 /var/run/dock..
Flink 1.14 에서는 잘 동작하던 쿼리가 Flink 1.15 에서 오류가 발생되었다. 쿼리는 kafka 테이블을 mysql 혹은 hdfs 에 sink 하는 로직이었고, 1.15.2 버전이 나와서 그걸 써도 동일한 문제가 발생되었다. Flink SQL> > INSERT INTO MysqlSource > SELECT > DATE_FORMAT(window_start, 'yyyy-MM-dd') AS ymd, > DATE_FORMAT(window_start, 'HHmm') AS hh24, > keyword, > COUNT(*) as cnt > FROM TABLE( > TUMBLE( > DATA => TABLE KafkaSource, > TIMECOL => DESCRIPTOR(logTime), > SIZE =..