⭐ Programming 35

Upstream과 Downstream

Upstream 주어진 시스템에서 데이터나 자원의 원본 또는 이전 단계(상류) 특정 프로세스나 작업에 필요한 입력이 되는 원본 데이터 처리 파이프라인에서 데이터를 생성하거나 공급하는 시스템 또는 컴포넌트 Downstream 주어진 시스템에서 데이터나 자원의 목적지 또는 후속 단계(하류) 특정 프로세스나 작업 결과물을 전달하거나 처리하는 대상 데이터 처리 파이프라인에서 데이터를 소비하거나 처리하는 시스템 또는 컴포넌트 규칙 의존성 : 각 항목은 상류에 있는 모든 항목에 의존 가치 : downstream으로 이동할 수록 각 단계는 더 많은 가치를 추구 결론: x가 다른 항목에 가치를 추가하거나 의존하는 경우, x는 downstream SW 의존성: 컴포넌트 C는 B에, B는 A에 의존 -> A는 B보다 상류..

Chpater 3. 하둡 클러스터 생성 및 환경 설정

1. 하둡 설치 타입 독립형(Standalone) 로컬 파일 시스템에 데이터를 저장 단일 맵퍼와 단일 리듀서를 이용 자신의 코드를 실행하는 개발자에게 적합 가상 분산형 실제 멀티노드(분산) 클러스터처럼 모든 서비스를 설정할 수 있음 모든 데몬(데이터 노드, 네임 노드, 리소스 매니저 프로세스)는 단일 노드에서 동작 실제 운영 환경에서 사용 x 완전 분산형 여러 서버에 걸쳐 하둡을 설치 데이터 복제, 고가용성 설정 가능 다중 서버를 통해 각 프로세스들을 위한 데몬 운영 2. 운영 시스템의 유용한 유틸리티 yum Red Hat Enterprise Linux RPM SW 패키지를 가져와 설정, 삭제, 검색, 관리할 수 있게 해주는 툴 우문투 리눅스에서는 apt-get rpm Red Hat, SUSE, Fedo..

Chapter 2. 하둡 아키텍쳐

1. 하둡 아키텍쳐 하둡 클러스터 HDFS과 얀(클러스터 리소스 매니저)를 기반으로 하는 하둡 SW를 사용하는 컴퓨터들의 집합체 마스터 노드: 클러스터의 작업을 중재 워커 노드: 마스터의 명령을 수행하며 데이터가 저장되고 프로세싱 하둡 서비스 HDFS 서비스 얀 서비스 2. HDFS 아키텍처 데이터 스토리지 특징 대용량 데이터 세트 다루기 장애 허용 기본적으로 3번 복제가 되어 다른 노드에 데이터가 저장되기 때문에 장애 서버의 영향을 받지 않는다. (서버의 병렬화) 데이터 스트리밍 배치 프로세싱을 위해 디자인되었으며 데이터 세트에 대해 스트리밍 접속이 가능하도록 만들어졌다. 단순 데이터 일관성 모델 WORM(Wite Once Read Many access model)로 하나의 주체만 기록할 수 있다. 마..

Chapter 1. 하둡 소개 및 환경

1. 하둡이란? 하둡은 방대한 양의 데이터를 처리하는 플랫폼이다. 하둡의 핵심: HDFS(데이터 저장), 얀(프로세싱 프레임워크) 2. 하둡 특징 대용량 처리 능력: 파일 사이즈가 크고, 하둡 클러스터로 백만개 이상 저장 가능 장애 허용: 데이터를 다수의 서버에 복사한다. 높은 장애 대응력: 얀이나 HDFS는 디스크가 작동하지 않아도 계속 데이터 복사 업무를 수행한다. 데이터 스트리밍 액세서: 목차를 다는 것처럼 배치 프로세싱을 위한 스트리밍 액세스 간단한 데이터 일관성 모델: WORM(Wite Once Read Many access model) 3. 클러스터 컴퓨팅과 하둡 클러스터 클러스터 컴퓨팅 여러 대의 컴퓨터를 하나의 시스템으로 연결하여 하나의 큰 컴퓨터처럼 동작하도록 구성하는 기술 데이터 블록들..

docker-compose 실행 시 db 초기 세팅하는 법

docker-compose.yml service: db: volumes: - ./db/initdb:/docker-entrypoint-initdb.d volumes: 에서 sql문이 위치한 호스트 디렉토리와 마운트할 컨네이터 디렉토리를 작성 ./db/initdb/01-init-script.sql USE test; CREATE TABLE tb_user( ( `userId` int NOT NULL AUTO_INCREMENT, `username` varchar(30) NOT NULL, `password` varchar(50) NOT NULL, `createdAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '생성 일시', PRIMARY KEY (`userId`..

도커(Docker), 도커 컴포즈(Docker Compose), 쿠버네티스(Kubernetes)

1. 도커(Docker) 단일 호스트에서 단일 컨테이너 기반의 애플리케이션을 만들고 실행하기 위한 오픈 소스 플랫폼 애플리케이션과 해당 의존성을 컨테이너로 패키징하고, 호스트 환경과 독립적으로 실행하게 함 도커 엔진 (컨테이너 이미지를 생성하고 관리)/ 도커 파일(Dockerfile) (이미지 빌드)/ 도커 허브(Docker Hub) (이미지 배포 및 저장소) 로 구성 각각의 컨테이너를 따로 관리하기 어려울 때 도커 컴포즈를 사용 2. 도커 컴포즈(Docker Compose) 단일 호스트에서 여러 컨테이너로 구성된 애플리케이션을 관리하는 도구 YAML 파일: 컨테이너, 네트워크, 볼륨 등 설정 정의, 한 번에 여러 컨테이너를 시작,중지하는 등 작업을 수행 개발 환경에서 애플리케이션을 구성하고 실행하는 데..

jar 파일 이미지로 docker에서 실행하기(오프라인 환경)

dockerFile을 작성 FROM openjdk:8 WORKDIR /root COPY test.jar . CMD java -jar test.jar & * FROM 이미지 환경 WORKDIR 도커파일 위치 COPY 그 위치로 이 파일 이동해서 CMD 실행할 명령어 * window에서 작성했는데 dockerFile은 확장자가 없어야 한다해서 메모장으로 작성 후 "dockerFile"로 저장하면 확장자 없음 2. CMD 에 파일이 적혀있다면 그 파일과 같은 디렉토리에 두고 도커파일을 이미지로 build docker build --tag test:0.1 ./ * docker images로 빌드 되었는지 확인하고 3. 오프라인 환경으로 이미지를 옮기기 위해 tar 파일로 만들기 docker save -o tes..

property 우선 순위 (feat. application.properties)

jar 파일로 만들어서 리눅스에서 실행시키려 하는데 hostname이 자꾸 달라져서 고민 끝에 외부 설정 파일로 빼기로 했다. 그럼 jar 내부에 있는 properties보다 우선순위가 위에 있기 때문에 jar 밖에서 설정하면 그 부분을 따라가게 된다. 우선순위 순으로 정의한 프로퍼티 값이 오버라이딩된다. 유저 홈 디렉토리에 있는 spring-boot-dev-tools.properties 테스트에 있는 @TestPropertySource @SpringBootTest 어노테이션의 properties attribute 커맨드 라인 arguement SPRING_APPLICATION_JSON (환경 변수 또는 시스템 프로퍼티) 에 들어있는 property ServletConfig 파라미터 ServletCont..