데이터 엔지니어링
-
[Embulk] Embulk plugin 사용법 및 MySQL to PostgreSQL 패턴 만들기데이터 엔지니어링/Embulk 2022. 8. 21. 18:31
Embulk란? Embulk는 대용량을 이관하는 데이터 이관 툴이다. Embulk를 사용하기 무척이나 쉬워서 사용법만 간단히 알아보면 좋을 것같다. Embulk는 이관을 할때 플러그 인 단위로 붙여서 이관을 하게 된다. Embulk plugin이란? 이번에 할 것은 MySQL to PostgreSQL로 데이터를 이관하는 것을 할 것인데 아래와 같은 그림으로 설명 할 수 있다. Embulk서버에 Source라는Plugin을 다운로드하여야 하고 이관해줄 목적지인 Sink라는plugin을 다운로드하여야 한다. puglin의 종류는 아래의 홈페이지에서 확인 가능하다. List of Embulk Plugins by Category List of Plugins by Category This list is no lo..
-
[Embulk] Embulk란? Embulk설치하고 기본 실행해보기데이터 엔지니어링/Embulk 2022. 8. 18. 22:26
Embulk란? 데이터 소스간 대용량 데이터 전송 오픈소스 솔루션이다. Sqoop과 같은 역할을 한다. 데이터 소스, 스토리지 , 파일 포맷 클라우드 서비스 등 플러그인을 지원한다. JDBC를 이용하여 뭉뜬그려서 DB에 접속하고 데이터 이동이 가능하지만, 플러그인 형으로 진행한다. 플러그인 없으면 조금 힘들다. Embulk github에 많은 플러그인들이 배포되어있으며 현재도 개발중에 있다. Embulk 특징 데이터의 병렬 로딩을 수행할 수 있다. Embulk 스크립트로 부터 쿼리를 읽어 Transaction단위로 작업을 생성한다. Transaction을 지정한 Thread 수만큼 task를 나누어 독립적으로 수행한다. Thread로 task를 진행하기 때문에 resource의 관리에 신경을 써야한다. ..
-
[Airflow] Executor의 종류와 사용가이드라인 알아보기(Sequential, Local, Celery, Kubernetes)데이터 엔지니어링/AirFlow 2022. 8. 18. 20:22
Airflow Executor란? executor란 작업자들에게 작업을 실행 시키는 역할을 한다. 종류로는 SequentialExecutor, LocalExecutor, CeleryExecutor, KubernetesExecutor등이 있다. LocalExecutor는 병렬처리까지만 가능하고 클러스터 형으로 작업을 나눌수는 없다. CeleryExecutor, KubernetesExecutor는 클러스터를 구성해야 한다. 기본 제공 Executor Airflow 처음 설치를 하면 기본 제공되는 것이 바로 SequentialExecutor이다. 순차적으로 진행하는 것만 할 수 있다는 것이다. Executor에서 일어나는일을 순차적으로만 실행한다면 어떻게 될까 작업이 느려지거나 동시에 일어나서 진행해야하는 작..
-
[Hadoop Yarn]Yarn 동작 과정 알아보기데이터 엔지니어링/Hadoop 2022. 8. 12. 21:15
저번에는 하둡의 동작 원리에 대해 알아 보았는데 이번에는 Yarn의 동작 원리에 대해 알아두면 좋을 것같아 공부를 하게 되었다. Yarn은 ResourceManager이다. Node(=Slave)의 resource(자원= memory, disk 등)을 어떻게 쓸지 관리 해주는 매니저 역할을 한다. Hadoop에 Yarn 구축 아키텍쳐 예를 들어 위와 같이 Hadoop을 총 3대의 노드와 1대의 마스터를 구성했다고 가정 해보자. 거기에 Yarn넣었다고 하면 위와 같은 이미지가 나온다. 실제로 Yarn 동작 순서 Yarn은 Resource Manager를 실행 시킨다. RM(Resource Manager=Hadoop의 Master)은 클러스터 당 하나만 존재한다. Yarn은 클러스터를 구성하고 있는 각 노드..
-
[Hadoop] 클러스터 구축하기 NameNode2, DataNode 3, yarn, spark, zookeeper 구성 하기(centos7)데이터 엔지니어링/Hadoop 2022. 8. 10. 21:06
안녕하세요 이번 포스팅은 하둡 클러스터 구축하는 법에 대해 알아 볼까 합니다. 데이터 엔지니어링에서 하둡이 빼놓을 수 없는 중요한 요소 이기 때문에 이번에 잘 정리해서 기록해 두는게 좋을 것같아 준비 했습니다. 저는 Virtual box에 CentOS7으로 진행을 했고 NameNode 2 , DataNode 3를 준비하여 진행 했습니다. 그림으로 표현하면 아래와 같습니다. 해당 작업을 진행하기 전에 Oracle VirtualBox와 Centos를 준비해주시기 바랍니다. 먼저 버츄얼 박스를 펴서 고정 IP로 통신을 하도록 하기 위해 vm에 고정 ip를 할당해 보겠습니다. 그정에 정보를 알아야하는데 windows cmd창을 열어 ipconfig을 치면 ip주소 정보가 나옵니다. 여기서 ipv4 기본 게이트웨..
-
[Hadoop] Hadoop의 클러스터 구성, 파일 저장 되는 원리, 파일 읽는 원리 이해하기데이터 엔지니어링/Hadoop 2022. 8. 10. 20:27
안녕하세요. 이번에 데이터 엔지니어링을 하면서 docker로 진행을 많이 했었는데 한계점이 많은 것 같아 하둡 클러스터를 구축하여 여러가지 hadoop eco system을 연습하기로 마음을 먹었습니다. 그래서 Hadoop + yarn + spark + zookeeper + zeppelin 등을 구축하고 추가적으로 다른 툴들(impala, ambari, hive등)을 붙여서 연습해볼 예정입니다. 위에 이미지가 제가 구축 할 내용입니다. 먼저 하둡 클러스터를 구성을 할 것인데 하둡이 이번 글에서는 하둡이 어떻게 동작하는지 먼저 알아 두어야 할 것 같아 하둡의 동작 원리에 대해 정리 하려고 합니다. HDFS(Hadoop Distributes FileSystem) - 하둡 네트워크에 연결된 기기에 데이터를 분..
-
[Apache Spark Job]구동 방식 이해하기 (Submit job, physical planning, stage, )데이터 엔지니어링/Spark 2022. 8. 3. 21:10
대충 요약하면 아래와 같다. Driver Program - 개발자가 작성한 코드 부분 Cluster Manager - job을 어떻게 동작 할 지 정해주는 Manager ex) yarn, mesos등 Worker node - Executor와 Task들이 존재 하고 실제로 작업을 진행하는 곳 Spark job의 구성 Spark Submit job이나 jar파일 같이 실행 하게 되면 아래의 형식으로 구성되어 진행 되게 된다. spark-Submit을 하게 되면 Job으로 Cluster Manager에게 할당되게 되고 Stage별로 작업을 나눈다음 Stage별로 들어갈 용량 및 작업량을 파악 하여 Executor에서 Task를 진행한다. 그리고 그 결과값을 Cluster Manager에게 Cluster Ma..
-
[Kafka] KsqlDB 실습하기 - create Kstream, Ktable데이터 엔지니어링/Kafka 2022. 7. 31. 17:14
필수 개념 이해와 실습 환경 설정 KsqlDB 필수 개념을 숙지 하지 않으신 분께서는 아래의 링크로 들어가 확인후 다시 와서 봐주시기 바랍니다. [kafka] KsqlDB란? - Ksqldb 주요 개념(push, pull query)과 kafka에서 사용하는 Streaming Processing 개념(kstream, kta KSQLDB를 알기 전에 알아야 할 것 - Batch Processing vs Stream Processing Ksql은 Streaming processing을 하기 위한 툴입니다. 그래서 Batch Processing하고 Stream Processing의 차이점을 알아야 하는데요. 아.. magpienote.tistory.com 작업환경은 이해 하지 않아도 무관하나 먼저 작업환경을 ..