ETC 30

[Kafka] 카프카 데이터 모델

카프카의 데이터 모델은 토픽과 파티션으로 나누어집니다. 토픽은 메시지를 받을 수 있도록 논리적으로 묶은 개념, 파티션은 토픽을 구성하는 데이터 저장소로서 수평 확장이 가능한 단위라고 합니다. 토픽 메일 시스템을 생각해 보면, 메일 서버에는 많은 메일이 마구 섞여 있고, 원하는 메일을 찾기 위하여 메일 주소로 관리합니다. 카프카에서의 토픽이 메일 주소와 같은 개념입니다. 예를 들어 뉴스 토픽, 이미지 토픽이 존재하면 뉴스와 관련된 프로듀서들은 뉴스 토픽으로만 데이터를 보내고 이미지와 관련된 프로듀서들은 이미지 토픽으로만 메시지를 보냅니다. 뉴스 데이터만 보고 싶으면, 컨슈머에선 뉴스 토픽에서만 메시지를 가져가고 이미지 데이터만 보고 싶으면 이미지 토픽에서만 데이터를 가져가서 사용할 수 있습니다. 토픽 이름..

ETC/Kafka 2020.11.29

Producer-consumer pattern

자연어처리에서는 거대한 언어 모델을 학습하기 위해 방대한 양의 학습 데이터를 사용합니다. 학습 데이터의 전처리도 성능에 많은 영향을 끼치면서 전처리를 많이 하고 있는데 학습 데이터의 양이 너무 크다보니 오히려 학습보다 전처리가 더 오래 걸리기도 하여 학습 데이터의 전처리에서는 병렬처리가 필수가 되고 있습니다. 그래서 오늘은 병렬처리를 할 때, 유용한 패턴을 하나 소개해보겠습니다. 병렬처리에 대해서 공부하게 되면, 꼭 빠지지 않고 등장하는 것 중에 하나가 producer-consumer pattern(프로듀서-컨슈머 패턴;생산자-소비자 패턴)입니다. RabbitMQ, Kafka와 같은 메시징 큐를 보면 producer와 consumer는 절대 빠지지 않습니다. producer와 consumer가 무엇인지 ..

ETC/Pattern 2020.08.02

Kafka 개요 / 설치

자연어처리만 하다가, 최근에는 회사에서 개발한 자연어처리 기술을 활용하는 서비스를 개발하는 역할도 맡게 되면서, 메시징 큐에도 관심이 생겨서 여러가지 찾다보니 카프카라는 것을 알게 되었습니다. 그래서 카프카에 대해서 한번 알아보고자 합니다. 1. 카프카란? 카프카는 대용량의 메시지 데이터를 빠르게 처리하도록 개발된 메시징 플랫폼으로 링크드인에서 출발해, 2011년 초 아파치 공식 오픈소스로 등록되었으며 현재는 넷플릭스, 에어비앤비, 마이크로소프트, 카카오 등에서 데이터 파이프 라인으로 사용되고 있습니다. 위 그림은 카프카 개발 이전의 링크드인 시스템 구조입니다. 링크드인의 시스템이 커지면서, 동일한 메시지를 여러 곳에 보내줘야하고 점점 연결이 많아져 확장도 어려워져서 고안하게 된 것이 카프카입니다. 카프..

ETC/Kafka 2020.07.19

vscode를 활용하여 원격 서버의 docker container에 접속하는 방법

최근에는 도커를 많이 사용하고 있습니다. Tensorflow도 사용하고 Pytorch도 사용하고 있는데, CUDA 버전도 달라야하고 하다보니 자연스럽게 도커를 사용하게 되었습니다. IDE는 vscode를 사용하고 있었는데, 찾아보니 vscode는 remote server에서 돌아가고 있는 docker container에도 접속해서 개발을 할 수 있는 환경을 제공하고 있더군요. 그래서 오늘은 vscode를 활용해서 remote server의 docker container에 접속해서 개발환경을 세팅하는 방법에 대해서 정리해보고자 합니다. 먼저 내 컴퓨터에 vscode와 docker가 설치되어 있어야하고, remote server에도 docker가 설치되어 있어야 합니다. 내 컴퓨터에는 왜 docker가 설치..

ETC/VScode 2020.05.24

vscode를 활용하여 원격 서버에 연결하기

회사에서 서버를 사용할 때, putty를 활용하는데 IDE를 사용하고 싶다는 생각이 문득 들어서 찾아보니 vscode는 community 버전을 활용해도 서버랑 원격 접속을 할 수 있더군요! 그래서 오늘은 윈도우에서 리눅스 서버로 접속할 때, vscode를 활용해서 IDE를 활용하여 서버에서 코딩을 할 수 있는 환경을 구성해보도록 하겠습니다. vscode는 아래의 주소에서 클릭하여 설치하시면 됩니다. https://code.visualstudio.com/download Download Visual Studio Code - Mac, Linux, Windows Visual Studio Code is free and available on your favorite platform - Linux, macOS, ..

ETC/VScode 2020.01.30

프로세스 id (pid) 활용하여 프로세스 실행 위치 확인하기

pid 검색은 ps 명령어를 활용해서 검색할 수 있습니다.ps를 사용할 때, 그냥 쓰면 모든 프로세스가 나오기 때문에 찾기 어려울 수도 있어서 필터를 사용하고 싶을 경우에는 grep을 사용하면 됩니다. 예시)ps -aux | grep python 위의 예시와 같이 사용하시면, 실행 명령에 python이 있었던 프로세스를 모두 찾을 수 있습니다. 찾은 pid를 활용하여 ls -al /proc/pid 명령을 입력하면, 해당 프로세스 실행 위치를 알 수 있습니다.

ETC/Ubuntu 2019.01.17

scp를 백그라운드에서 실행하는 방법

nohup scp file_to_copy user@server:/path/to/copy/the/file > nohup.out 2>&1 위와 같이 실행하면 비밀번호를 입력할 수 있음비밀번호 입력 후 ctrl+z 입력그러면 아래와 같이 출력될 것임 [1]+ Stopped scp file_to_copy user@server:/path/to/copy/the/file > nohup.out 2>&1 여기서 아래와 같이 입력 bg 아래와 같이 출력되면서 시작됨 [1]+ scp file_to_copy user@server:/path/to/copy/the/file > nohup.out 2>&1

ETC/Ubuntu 2018.06.12

docker를 활용한 딥러닝 개발환경 구축

Docker를 활용하면, 여러가지 환경을 사용할 수 있다는 장점은 분명 존재합니다.하지만, docker의 container 내에서 GPU를 사용하는 것은 쉽지는 않습니다.딥러닝 연구&개발이 급진적으로 진행되고 있는 추세에 대해서, nvidia에서는 docker에서 쉽게 GPU를 사용할 수 있게 오픈 소스를 공개하였습니다.그 이름은 바로 nvidia-docker 입니다.아래에 참고 1에 링크를 따라가면, 설치방법이 나와있습니다.docker에서 image를 다운로드 할 때, lateset 버전을 받으면 CUDA 9.0 버전이 필요하게 됩니다. 현재 서버에 9.0이 아닌 다른 버전으로 세팅을 해놓으셨다면, 이전 버전에 대해서도 TAG별로 구분하여 다운로드 받을 수 있게 되어있으니 참고하세요.TAG 명은 아래 ..

ETC/Docker 2017.12.04

프로세스 백그라운드에서 실행하는 방법

실행 명령어 맨 뒤에 & 를 붙이면 백그라운드에서 실행합니다. 하지만, 터미널이 꺼지면 프로세스가 죽어요 터미널을 꺼도 프로세스가 계속 돌아가게 하는 방법은 nohup 이라는 명령어를 맨 앞에 붙여주시면 됩니다. > nohup python hello_world & 위의 예처럼 사용하시면 되요. python 뿐만이 아니라 모든 실행 명령 앞에 붙이면 됩니다. 그러면 이제 프로세스가 돌아가는지 확인을 해봐야되는데 그 명령어는 ps -aux 를 사용하시면 됩니다. 그리고 백그라운드에서 돌아가는 명령어니까, 따로 중지를 시키는 방법이 있어야겠죠? kill -9 [PID] 위의 명령어를 사용하시면 되고, PID는 ps -aux 명령어로 확인하실 수 있어요.

ETC/Ubuntu 2017.09.22

Winodws 10에서 Docker에 설치하기 & Docker 간단한 사용법

Docker는 아래의 docker 링크에서 설치하실 수 있습니다.https://store.docker.com/editions/community/docker-ce-desktop-windows Docker는 원래 windows에서는 Virtual Box를 활용하였지만, windows 10의 경우에는 Hyper-V를 활용하면서 속도가 많이 향상되었습니다. Docker를 설치하는 방법은 .exe 파일을 다운로드 받아서 그냥 설치하시면 되고, 설치 후 재부팅이 되고나면 정상적으로 동작이 다 됩니다. 설치가 완료되었으면, Docker를 사용하실 준비가 다 되었습니다! Docker에는 Container라는 개념과 Image라는 개념이 있습니다. 그 부분에 대해서는 따로 정리는 안 하겠습니다.전혀 모르시면 아래 설명에..

ETC/Docker 2017.09.14