firewall packet 의 흐름송신(outbound), 수신(inbound) 을 제어(제한) 하는 규칙(rule) 설정 특정 포트만 접근하도록 제한하는 것 기본적으로 방화벽은 기본 설정이 모두 close 상태로 시작 특정 port/protocal , ip(ran
docker 명령어 실습 환경: aws EC2
Mechanical Sympathy 기계적 동정심 : 컴퓨팅 서비스를 하려면 기계에 대한 이해가 필요함. (하드웨어의 동작원리를 아는게 중요함) 달성하려고 하는 목표에 가장 적합한 기술 접근방식을 사용하는 것. docker docker는 플랫폼이다 con
docker는 2013년에 dotcloud에서 생성 (솔로몬 하익스) container 기술은 원래 Linux에 포함된 LXC(Linux Container)라는 커널 기술을 활용한 것container은 100% LinuxContainer은 작은 가상화 sever ->
1) docker network 생성여러개의 container을 연결하기 위해서는 같은 network를 활용해야함. 2) mysql과 연결할 docker volume 생성 - docker volume 방식3) mysql 이미지로 container 설정이름 : mysql
internet 이라서 internet public = 구름도 public누구든지, 언제든지 인터넷 환경에 접속해서 IT 서비스를 받을 수 있다. VPC (격리형 클라우드)가상으로 내 땅을 만들어서 그 안에 데이터 저장iptables 로 모두 차단 (all deny)컴
도시의 개념을 포함함 AWS는 33개의 리전이 존재함https://aws.amazon.com/ko/about-aws/global-infrastructure/서울은 임대상태인데, 현재는 짓고 있음. 아마존 1호 : 버지니아 북부1) 대기시간서비스 배포시 고객 위
1) AWS 관리 콘솔2) AWS 명령줄 인터페이스 (AWS CLI)3) AWS 소프트웨어 개발키트 (SDK)java , c, node, js, 등 7가지 언어를 지원함. python 코딩 안에서 AWS 서비스를 호환할 수 있음. 4) CDK자동화 도구고객 클라우드 내
컴퓨팅 서비스 (CaaS - Compute as a Service) 컴퓨팅 서비스란? compute : 계산 computer : 연산기 즉, cpu, memory, disk와 같은 자원(resource)를 소비하는 서비스를 묶어서 컴퓨팅 서비스라고 함. EC2(El
Amazon Elasic Container Servicedocker의 image와 동일한 image 를 사용함docker의 container를 모아서 자동적으로 관리해주는 서비스 (증식해주거나 관리) Kubernetes와 동일하게 작업이 되지만, 이를 자동적으로 해주기
인터넷에 연결되어 있을 때 장치를 식별하기 위해 사용되는 일련의 번호를 말함.Ip 주소는 식별자의 역할을 하며 사용자의 위치(지역)를 정확하게 파악할 수 있게 함. 같은 네트워크 망을 사용하면 같은 인터넷 IP 주소를 가짐 지역 고객을 위해 지역을 정확하게 표기하고 싶
데이터 스토리지아 스토리지 디바이스를 제어하는 기술파일 또는 데이터베이스 항목과 같은 데이터를 가져와서 동일한 크기의 block으로 나눔 그 후 빠른 액세스 및 검색에 최적화된 방식으로 기본 물리적 스토리지에 데이터 블록 저장주로 정형데이터베이스, VM 파일 시스템 볼
데이터를 관리하기 위한 시스템데이터에 종류가 많고 어떤 데이터냐에 따라 저장 및 관리 방식이 달라짐1) 목적별로 사용가능2) 완전 관리형3) 규모에 따른 성능4) 보안 및 고가용성Amazon Relational Database Service AWS 클라우드에서 관계형
계산기좁은 의미의 컴퓨터 : CPU, RAM으로 이루어진 것넓은 의미의 컴퓨터 : 입출력장치, 보조기억 장치가 모두 포함되어 있는 것 데이터 : 컴퓨터가 이해하는 숫자, 문자, 이미지, 동영상 등과 같은 정적인 정보명령어 : 데이터를 움직이고 컴퓨터를 작동시키는 정보프
프로그램실행 가능한 명령어의 집합이며 메모리에 올라가지 않은 정적인 상태 프로그램은 하드 디스크와 같은 저장장치에는 저장되어 있지만, 메모리에는 올라가지 않은 상태즉, cpu가 계산중이지 않음 (= ram에 올라가있지 않음)예시 ) 파워포인트 , python 스크립트
미국의 전화회사 AT&T에 속한 벨연구소와 MIT가 1969년에 출시한 운영체제유닉스는 학교/회사와 같은 기관에 상업적으로 유로로 판매됨.유닉스는 개발자들이 소프트웨어를 개발하고 실행하기 편하게 개발됨 (비 개발자의 편의성을 염두하지 않음)리눅스는 유닉스 기반리눅스 토
stream이란?stream유닉스 계열 운영체제에서 프로그램(프로세스)을 드나드는 연속적인 데이터를 흐름표준 stream 이란?표준 Stream프로세스와 주변장치가 연결된 입출력 통로 (추상화된 통로)운영체제가 기동되면 대화형 셸(ssh, zsh 등)은 3개의 표준 스
1) ls설명: 현재 디렉토리에 있는 파일들과 디렉토리들의 리스트를 보여줍니다.옵션\-a : 현재 폴더부터 모든 항목들을 보여줌\-A : 현재(.)와 상위 폴더(..) 는 안보여줌\-F : 폴더를 경로로 보여줌 (dir1/) \-s : size를 알려줌ls 명령어를 실
Adavanced Packaing Toolcommand-line tool기능 1) 새로운 소프트웨어 패키지를 설치 및 삭제2) 존재하는 소프트웨어 패키지를 업그레이드3) 패키지 리스트를 업데이트 4) 온 우분투 시스템 업그레이드 등https://ubuntu.c
모든 것은 파일로 이루어져 있음 모든 파일들은 inode라는 주소를 보유하고 있음.파일의 종류1) 일반파일2) 디렉터리 : 다른 파일들의 위치정보(inode)를 모아서 가지고 있는 파일3) 링크파일 (hard/soft) : 원본 파일을 대신하여 다른 이름으로 파일명을
ps : 프로세스 확인 명령어다른 옵션 없이 사용한다면 현재 로그인한 유저에 의해 시작된 프로세스만 보여줌PID : Process IDTTY : 프로세스가 실행중인 터미널TIME : 프로세스가 실행되는데 걸린 시간CMD : 프로세스 실행 명령어모든 사용자에 대한 프로세
리눅스에서 압축이란 두가지가 존재함.1) tar여러 파일을 하나로 묶는 개념용량이 줄어드는 효과는 없음 2) gar.gz여러 파일을 하나로 압축해서 묶음용량이 줄어듦옵션\-c : 파일을 tar로 묶음\-v : 파일을 압축하거나 해제시 개별 파일을 화면에 출력\-f :
Open Systems Interconnection Model네트워크 시스템의 기능들을 표현하기 위해서 사용하는 개념적인 프레임 워크가 OSI Model 서로다른 컴퓨터들이 네트워크를 통해 데이터를 주고받는 방법을 규칙총 7 계층으로 나누어져 있음 (아래서부터 1계층부
리눅스에서 파이썬 가상 환경을 다루는 툴리눅스와 맥 계열에서 python 버전 관리를 할 때 추천윈도우는 아나콘다 추천python을 사용할 때 가장 중요한 핵심은 버전관리!1) pyenv 설치.bashrc에 환경설정 추가 (맨 아래에)3) 쉘 재시작1) 설치할 pyth
PostgreSQL은 오픈 소스의 관계형 데이터베이스 시스템모든 OS에 지원함다양한 관계형 데이터베이스 시스템이 존재하지만, mysql이 oracle로 인수당하면서 부분 유료화가 되며 많이 상승 중공식 사이트 : https://www.postgresql.org
CPU CPU란? central processing unit : 중앙 처리 장치 컴퓨터 시스템을 통제하고 프로그램 연산 실행, 처리 가장 핵심적인 컴퓨터 제어장치 혹은 그 기능을 내장한 칩 메모리에 저장된 명령어를 읽고, 해석하고 실행하는 칩 CPU의 구성 Regi
shell script 작성시에 가장 첫 줄에 사용하는 것bash shell을 사용하겠다는 의미로 사용함셔뱅은 바로 다음에 오는 문구를 실행한다는 뜻으로 bin/bash를 실행함을 의미함sehll script를 작성하고 나서 꼭 권한을 변경해줘야 실행할 수 있음.she
리눅스 명령어로 명령어가 실행되다가 중시되더라도 끊기지 않고 작업이 끝날때까지 실행될 수 있게 해줌.공식 문서https://www.gnu.org/software/coreutils/nohup프로세스가 데몬 형태로 실행될 수 있게 함 (프로세스가 생성됨)백그라운드
클라이언트 : 서버에게 자료나 데이터를 요청서버 : 클라이언트의 요청에 응답하여 원하는 데이터를 제공해줌 웹서버의 경우 응답을 html, css, js의 웹 프로그래밍 언어로 응답예시우리가 컴퓨터에서 EC2에 접속시에는,클라이언트 = 나 (imac) , 서버 = EC2
Flask : Flask 애플리케이션 생성 및 구성할때 사용request : HTTP 요청을 처리할 때 사용jsonify : JSON 데이터를 반환값으로 사용시 활용@app.route('/경로') : 라우팅으로 , 입력해주는 경로로 접근했을 때, 바로아래 함수의 ret
DB데이터를 통합하여 관리하는 데이터의 집합DBMS데이터 베이스를 관리하는 미들웨어 시스템으로 데이터 베이스 관리 시스템DBMS는 RDBMS와 NoSQL 두가지로 나뉨relational database management systemoracle, mysql, postg
데이터 다운로드 https://dev.mysql.com/doc/index-other.html에서 sakila schema, data 다운로드 다운로드 후에 다운로드 안에 sql_data 폴더 안에 넣어주기scp 이용해서 data 옮기기 (local -> ec2
insert into {table_name} (col명) value (내용)내용의 수와 col의 수는 동일해야함여러개의 value들을 한꺼번에 넣기world db로 실습 : https://dev.mysql.com/doc/index-other.html여기에서 w
field name, datatype, constraint컴퓨터 자원을 효율적으로 사용하기 위한 방법어떤 데이터인지에 따라서 저장 공간을 다르게 보유하기 때문에 (컴퓨터가)https://dev.mysql.com/doc/refman/5.7/en/data-type
데이터베이스, 테이블컬럼 인코딩 설정가능DB 인코딩 확인 table col 인코딩 확인인코딩 : 고급언어를 2진수로 표현디코딩 : 2진수를 고급언어로 변경서로 다른 인코딩, 디코딩 방식을 사용하면 깨짐 ascii : 기본euc-kr : ascii + 한글utf-8 :
외래키사용이유 : 데이터 무결성 유지UNIQUE 이나 PRIMARY KEY 제약 조건이 있어야 사용할 수 있음. 두개의 테이블을 관계를 만들어줌 하나에서 삭제 및 업데이트 한다고 해도 error 가 뜸. 혹은 다른 설정들이 존재함. (다른 테이블도 업데이트 하게 하거나
올림, 반올림, 버림자리수 안쓰면 그냥 정수로 나옴row 데이터 갯수 출력문자열 합쳐줌 중복 데이터 제거해서 출력데이트 format 결정
TMUX세션을 만들어줄 수 있음클라이언트 1번이 터미널창 두개를 띄움 동일한 세션 창으로연결되어 있음 -> 동기화가 됨. (화면 공유)서로 협업해서 사용할때 좋음. linux 협업관리 session 만글기session 연결 백그라운드 실행을 써야하는 상황일때 많이 사용
view를 생성하면 손쉽게 사용 가능함많이 사용하는 것들은 view로 만들어놓기query -> export resultscsvdbeaver형식 지정 가능 특정 테이블을 감시하고 있다가 설정 조건이 감지되면 지정해놓은 쿼리가 자동으로 실행 시키는 것 update, del
물리적 백업 : file 자체를 복사논리적 백업 : sql file로 만들기crontab 명령어crontba 시간 설정방법분 시 일 월 요일예시매시 10분에 실행 : 10 \* \* \* date >> date.txt매 2분 간격으로 실행 : /2 \* \* \*
주피터 설치 pip install jupyter설정파일 생성jupyter notebook --generate-config파일 경로 확인 /home/ubuntu/.jupyter/jupyter_notebook_config.pyec2 public ip 주소확인암호화된 pw필
환경 : 주피터 노트북 사용쿼리 작성쿼리 실행해보기
mongodb.sh 생성다운로드 및 update계정 생성외부 접속 허용변경해주기 studio3t 다운로드ec2 보안그룹 : 27017 열어주기연결해보기jupyter notebook 환경
현실 -> E-R 다이어그램 (개념 스키마) 현실 세계로부터 개체 (Entity)를 추출하고 개체들간의 관계를 정의E(ntity) - R(elationship) ekdldjrmfoa aksemfrl 개체(entity) : 사각형, 저장할 가치가 있는 중요 데이터를 가진
프로젝트 만들때 Gradle -> Groovy로 만들기 settings => plugin => Lombok 설치settings => Annotation Processors => enable 체크 => ok이 파일로 들어가서 dependencies에 코드 추가눌러주기 (
캡슐화란? 객체의 데이터와 메서드를 하나로 묶고, 외부로부터 객체의 데이터를 보호하는 것을 의미함 접근제한자 사용 (private, public, protected) 클래스의 세부 구현을 숨림 (구현부 변경되어도 이 클래스를 사용하는 코드는 전혀 영향을 받지 않아서 이
가상화란? 물리적인 자원을 논리적인 자원으로 변환해서 사용하는 것 가상화의 종류 호스트 가상화 (Host virtualization) Host OS 위에 Guest OS를 얹어서 사용하는 방식으로 Host OS가 무엇이든지 상관없이 제약없이 사용할 수 있지만, OS
도커는 컨테이너라고 부르는 패키지 형태로 소프트웨어를 배포하는 OS-level 가상화 기술을 사용한 PaaS(platform as a service) 제품.Paas란?가상화 개념도커엔진은 컨테이너를 관리하는 소프트웨어 엔진애플리 케이션을 컨테이너 화 하기 위한 오픈소스
도커를 깔자마자 실행해보자실행결과1) 이미지가 없다고 뜸 local에 hello-world라는 이미지가 없다고 에러가 뜸컨테이너를 실행하기 위해서는 이미지가 반드시 필요함!!!2) image 다운로드pull을 통해서 hello-world 라는 이미지를 다운로드 받음.도
도커 image는 layer가 쌓인것을 말함겹겹이 레이어를 쌓아서 이미지를 다르게 만들 수 있음.레이어 하나는 작업 하나라고 생각하면됨.docker를 깔고 이미지를 만들 수 있고, nginx를 깔고 이미지를 만들수 잇고, 두개 모두 깐걸 이미지로 만들 수 있음. doc
Generative Pre-trained TransformerOpen AI 에서 개발한 자연어 생성 모델로, 텍스트가 주어지면 다음 단어를 예측하는 태스크를 학습하는 모델 Transformer 모델을 기반으로 개발됨. 성능은 방대한 파라미터와 데이터 셋에 따라 좌우됨.
도커 이미지에 대한 정보를 기술한 템플릿패키지, 명령어, 환경변수 설정 등을 기록도커파일 생성경로 보기
Dokcer - flask- postgres 연결해보기docker 확인하기=> docker0에 대한 정보들이 보임. 이게 ec2 속 도커를 뜻함=> 여기에 inet ip 주소 확인해서 어딘가에 저장해놓기 postgresql 설정값 변경위 ip 주소를 postgresql
YAML Ain't Markup Language기존에 사용되었던 JSON의 불편함을 해소하기 위해 만들어진 언어, XML과 비슷하지만 다름주로 설정파일 (configuration file)에 사용파이썬과 마찬가지로 들여쓰기가 중요함리스트개념을 활용하기 위해 하이프(-)
compose 설치 링크(https://docs.docker.com/compose/install/linux/위 링크를 보고하는 것이 더 정확 (변경될 수 있기 때문에) 버전확인
nginx docker를 만들어보자1) dockerfile 생성2) image build잘 만들어 졌는지 확인created는 내가 만든 시점 기준이 아니라 언제 레포지토리에 내가 from 으로 가지고온 image가 만들어졌는지에 따라 달라짐
이전 실습 - flask , sql 연동nginx image 생성이전 실습들과 이어지는 실습1) gunicorn 이 필요하기 때문에 image만들때 넣어주기=> requirements.txt에 gunicorn==22.0.0 추가2) Dockerfile 수정 (gunic
도커 이미지 받는 곳위 링크에서 해당 Postgres 받기run 명령어상태 확인하기postgresql 로 들어오기 성공db 만들고 확인stop : 다시 들어가도 데이터가 사라져있지 않음 rm : 데이터가 모두 사라짐
1) 설치 명령어(ec2 환경) 2) 환경설정 3)
디자인 패턴은 소프트 웨어 설계에서 반복적으로 발생하는 문제를 해결하기 위한 재사용 가능한 솔루션으로 코드의 유연성과 재사용성, 유지보수성을 향상시킬 수 있음. 디자인 패턴을 사용의 장점1) 코드 중복 감소2) 유연성 증가 3) 확장성 증가4) 결합도 감소 : 클래스간
ec2 생성 ubuntut3.large20gb보안그룹 8080 열어주기ec2 인스턴스 환경에 도커 깔아주기 도커 설치하기docker 환경에 airflow 설치하기 공식 홈페이지실행확인해보기dags 파일 생성해보기dags_bash_operator.py진입ec2 publi
dag id와 python 파일 이름은 보통 동일하게 생성하기task_id 의 값과 task 의 변수 값도 동일하게 생성하기 bash shell 이용시 실행 권한을 줘야함 가장 많이 사용함. bash shell 이용하기 python 파일 가장 직관적인 방식데코레이터 방
email operators 공식문서1) dag 만들기 2) email 서버 구축하기 G-mail → 설정 → 모든 설정보기 → 전달및POP/IMAP →IMAP사용구글 계정관리 -> 앱비밀번호 검색 -> 앱 이름 설정 후 토큰값 복사해놓기 docker-compose.y
cross Communicationairflow DAG안 task간 데이터 공유를 위해 사용되는 기술task1의 수행중 내용이나 결과를 task2에서 사용 또는 입력으로 주고 싶은 경우주로 작은 규모의 데이터 공유를 위해서 사용함. 1) \*\*kwargs에 존재하는
분기 처리가 필요한 이유task1 의 결과에 따라 task2-x중 하나만 수행하도록 구성해야 할때1) BranchPythonOperator2) task.branch 데코레이터3) BaseBranchOperator 상속하여 직접개발a가 선택되면 task_a가 실행되고,
상위 task의 상태에 따라 하위 task의 동작을 결정하고 싶을때 적용할 수 있는 파라미터하위 task 에 파라미터를 지정하여 동작 제어하위 task에게 주는 것 기본적으로는 all_success로 되어있기 때문에 상위가 잘 돌아야 하위가 돌 수 있는 것 1) all
base, python, bash 오퍼레이터를 가장 많이 사용하지만, 더 다양한 operator들이 존재함기본제공 operator 확인하기1) BaseOperator오퍼레이터를 직접 개발하고 싶은 경우 이 클래스를 상속하여 개발execute() 함수를 재정의하여 사용함
Http 요청을 하고 결과로 text를 리턴받는 오퍼레이터리턴값은 Xcom에 저장HTTP를 이용하여 API 를 처리하는 RestAPI 호출시 사용가능HttpOperator 와 SimpleHttpOperator 두개가 존재함Http operator 공식문서서울열린데이터
airflow는 필요한 오퍼레이터를 직접 만들어 사용할 수 있도록 확장성을 지원함. BaseOperator을 상속하여 원하는 기능은 파이썬으로 직접 구현이 가능함 공식문서 오퍼레이터를 custom 하는 방법 • BaseOperator 상속시 두 가지 메서드를 재정
docker-compose.yamlx-ariflow-common 공통 적용 옵션 선언services우리가 띄울 도커 컨테이너 지정현재는 postgres, redis, airflow-webserver , airflow-scheduler, airflow-worker, ai
Context란? 특정 Task에 대한 정보 (스케쥴 시간, DAG 명, Task 명 등)을 담은 파이썬 딕셔너리 dag의 kwargs의 내용은 airflow가 자동적으로 넣어준 context 이를 잘 활용하면 도움이 됨 : 즉 kwargs에서 꺼낼 수 있음. Airf
Airflow를 사용하다보면 DAG간의 선후행 관계를 설정해야 하는 경우가 많이 생김 DAG간 의존 관계 설정 방법은 크게 3가지 존재함 TriggerDagRun 오퍼레이터 External Sensor dataset 1) TrigerDagRun 오퍼레이터
일종의 특화된 오퍼레이터특정 조건이 만족되기를 기다리고 만족되면 True를 반환하는 Task모든 센서는 BaseSensorOperator 를 상속하여 구현되며 이는 BaseOperator를 상속함상속시에는 init() 함수와 poke(context) 함수 재정의 필요센
DAG의 특정 task 상태를 Sensing 하는 방식 파라미터 실습 내용 externaltasksensor_a dagsbranchpython_operator에서 task a를 sensing allowd_states : skipped 상태면 센싱 된걸로
baseoperator 의 on_failure_callback 이용~callback : 특정 조건이 되었을때 만들었던 함수를 실행시켜라 Task 실패시 알람을 받기 위한 KakaoTalk 연동앱설정1) 카카오 Developer 로그인카카오 Developer 링크2) 앱
slack app 생성 1) 슬랙 로그인2) 슬랙 워크스페이스 생성3) 슬랙 앱 만들기 슬랙 앱 urlfrom scratch 로 만들기 4) 설정에서 incoming Webhooks 를 on으로 변경5) 맨아래의 Add New Webhook to Workspace 를
하둡 분산 파일 시스템은 GFS의 논문을 보고 따라 만든 것따라서 GFS와 동일하게 master - slave 구조로 이루어져 있음분산 처리 시스템은 master/slave 구조 혹은 master가 없는 구조 (모두가 같이 공유, 관리) 로 나뉨데이터 저장의 확장성이
HDFS 1.0은 NameNode가 전체 시스템의 SPOF 이를 보완하기 위해 HDFS 2.0부터 2가지 방식의 HA를 지원 -> 백업 역할 : Standby NameNode 하지만, 물리적 스토리지가 원래 저장 usable data보다 너무 비효율적 ( 나는 1TB
2004년 구글에서 발표한 Large Cluster에서 Data Processing 을 하기 위한 알고리즘Hadoop MapReducesms 구글 알고리즘 논문을 소프트웨어 프레임 워크로 구현한 것Key - Value 구조가 알고리즘의 핵심모든 문제를 해결하기에 적합하
Job TrackerJob Tracker가 여러개 task tracker에게 일을 시킴task tracker는 일을 하면서 실시간 상황을 job tracker에게 리포트를 보냄Hadoop 데몬들에 통신 프로토콜은 RPC 방법을 활용함원격에 있는 프로세스의 메소드를 원격
구성 방식총 마스터 3개 hadoop-master-1NameNodeZooKeeperReourceManagerHiveServer2hadoop-master-2NameNodeZooKeeperReourceManagerhadoop-master-3ZooKeeperRDB ( Hiv
앞선 과정을 모두 완료 했으면, 이제 그 서버를 이미지로 변경 1) AMI 생성2) 인스턴스 복제 AMI가 enabled 상태가 되었다면, 그 AMI를 check 한 후 인스턴스 생성해주기인스턴스 갯수 5개로 변경!생성 후 이름 변경3) 보안그룹 설정서버들끼리의 통신을
1) myid 설정각자 mater로 들어가기 /usr/local/zookeeper/data 의 myid를 각각 master에 맞게 설정2) 클러스터 실행각 master server에 들어가서 (3개) 그 후 start 해주기 3) 클러스터 확인각 master serve
개발 API모니터링 연속적인 데이터의 흐름의 유입량과 주기가 불규칙대표적 : 통신사 , 제조 (반도체 제외 - 클라우드 사용 못함) , 제조 , 리테일 File 또는 DB 기반 데이터 연동네트워크 문제, 프로그래밍 문제 등 장애시 재처리가 어려움 예외처리가 많음너무 많
Topic메세지를 전달할 때 사용되는 명칭topic을 생성하고 해당 topic으로 전달데이터를 전송 /저장/ 수신하는 논리적인 단위저장된 데이터는 절대 변경 불가 (log형식) Kafka Clustertopic별로 메시지를 분류하고 분산 저장consumer가 순서대로
Google Cloud 설정 Compute Engine API 사용 인스턴스 만들기 이름, 리전 , 영역 선택 cpu 8개, 코어 4개 메모리 32kb 부팅디스크 - centos stream9 , 20GB 액세스 범위 : 모든 Cloud API 에
1) send()함수 호출2) 전송할 데이터 변환 및 압축 ( Serializer)3) Record AccumulatorTopic > partition 단위로 batch 데이터 저장4) Thread에 연결된 broker가 소유한 partition 데이터를 가져옴 5)
Fetch 된 record가 있는 경우 최대 max.poll.records 만큼 데이터를 가져옴record가 많으면 record를 많이 늘리기 (작은 데이터일 경우)최대 많이 가져오는 것이 좋음한번의 가져올 수 있는 양을 늘려주기 비정형파일을 이용시 partition
데이터를 partition에 저장하는 방식Broker Thread는 OS Page Cache (Memory) 에 일단 저장특정 시간 저장 이후 Disk 에 저장컨슈머도 Memory에서 바로 가져갈 수 있음. ( Memory에 있는 경우)Disk로 저장되는 것이 flus
실시간 Data Pipeline 구축 Elastic Stack으로 빠르게 구성할 수 있음 Logstash (Producer와 Consumer) elastic search (data 저장) Kibana (시각화) 기본 설정 1) 주키퍼, 카프카 켜주기
Producer, Consumer, Admin API로 구현해보기 Kafka-pythonpykafkaConfluent python kafka : 권장Confluent python kafkapython_kafka 폴더 생성python 가상환경 생성 및 환경 세팅topic
Kafka 를 통해서 데이터가 유실없이 안정적으로 잘 처리되고 있는지 확인 1) 처리성능얼마나 많이 처리하는가? 얼마나 빨리 처리하는가?2) 서비스 가용성데이터 복제는 잘되는가?Broker 장애는 없는가?3) 클러스터 확장성 CPu/Mem 성능이 충분한가?특정 Clie
목표1) EC2 서버 생성이름 : 내이름01ubuntut2.xlarge100GB2) 기본세팅3) 가상환경 세팅4) 필요한 라이브러리 설치5) 자바 설치 17 버전 설치 폴더 만들기parquet 파일 만들기 (pandas 이용)pyspark 활용parquet 파일 읽기d
앞선 실습에서 iris.csv, iris.parquet 두개의 데이터를 data 폴더에 넣어주기 (경로 설정을 위해서 동일하게 맞춰줌) 다운로드 링크설치를 위한 app 폴더 생성app/spark에서 spark 다운로드압축 풀기 설정 추가bin : 스파크와 상호작용할 수
서버 생성 1) ec2 서버 2개 더 생성 3개 모두 동일한 보안그룹으로 해야함. 2) ec2 서버간, 연동이 가능하도록 설정 인바운드 규칙에서 보안그룹으로 트래픽 열어주기 모든 트래픽 -> 보안그룹 (sg로 시작하는 보안그룹 넣어주기) 서버 확인 1)
1) spark 가동master1 서버에서 start-all.sh 해주기 1) server2에 설치 2) postgresql 설정3) DB, table 생성login log를 담을 DBtable 생성insert4) 빠져나오기5) 접속 허용설정 파일 확인postgresq
이전 실습이전 실습은 crontab을 사용하였다면, 이를 airflow DAG으로 생성해보기과제1) 이전에 만든 DB table 에서 parquet 파일 생성2) 만들어진 parquet 파일을 서버1로 전송
예전 Airflow 설치는 Docker로 설치를 함. 지금은 그냥 server에 설치하는 방식. server2 에서 설치 및 실행 1) 파이썬 버전 확인 2) 설치 명령어 3) 기존 디렉토리 설정 디렉토리 설정 환경변수 설정 4) airflow db 초기화
1) 엘라스틱 서치 설치2) 설정3) 실행해보기마지막 결과가 active, enable 이 뜨면 성공4) cerebro 설치 cerebro 엘라스틱 서치 클러스터 관리를 web ui에서 관리할수 있도록 한것server1 에서만 진행보안그룹 9000번 열어주기
대용량 데이터를 기반으로 신뢰성 있는 검색 결과를 제공하기 위해 검색 엔진을 기반으로 구축된 시스템검색 엔진 : 정보를 수집해 검색 결과를 제공하는 프로그램 엘라스틱 서치는 엄밀히 말하면 검색 엔진에 해당하지만, 이를 이용하여 검색 시스템을 구축 가능1) 수집기웹사이트
엘라스틱 설치 방법1) 디렉토리 정리server22) 데이터 생성json형태의 데이터를 넣어보기3) 인덱스 생성 XPUT : HTTP 요청 메소드 지정 H : HTTP Header 지정d : 본문 내용4) 인덱스 생성 확인코멘드 창에서 확인웹에서 확인http:
server3에 설치설정 변경실행접속하기외부ip 보안그룹 열어주기 (5601)웹으로 접속 server_public_ip:5601설치실행
지속적 통합 및 배포 (CI/CD): 지속적 통합 및 배포 파이프라인 구축