반응형

프로그래밍/Data process 20

데이터 플랫폼 설계와 구축 - 1장(소개) 정리

안녕하세요 Dibrary입니다. 앞으로 차츰 이 책의 내용에서 주관적으로 중요하다 생각되는 개념을 정리함과 동시에 '제 생각'도 같이 정리해 둘 예정입니다. 클라우드 데이터 플랫폼 = 모든 유형의 데이터를, 거의 무제한의 장소에서 비용효과적인 클라우드 네이티브 방식으로 수집, 통합, 변환, 분석, 관리되는 데이터 플랫폼 무슨말인가 하면, 데이터가 들어오는 것 부터 사용하는 단계까지 모두 클라우드에서 사용하는 것을 의미한다. 데이터 관련 기술을 처음 접하기 시작하면 대부분 로컬에 VM등을 사용해서 여러 PC환경을 갖춘 후에 실행해봐야 하는 경우가 대부분이다. 이런 거 말고 그 단계를 클라우드에 있는 걸 사용하거나 한다는 말. 단일 시스템 아키텍처는 유연성이 크게 떨어진다. ETL (혹은 ELT) 각 단계별..

Airflow에서 보기 편하게 Task를 묶어주는 - TaskGroup

안녕하세요 Dibrary입니다. Airflow 책을 보면서 Task를 구성하고 연결하는 것 까지는 해보았는데, 갯수가 많은 경우는 보기가 복잡할 수 있겠다~ 싶은 점이 있었습니다. 아니나 다를까, 최근 Airflow는 TaskGroup이라는 기능이 있어서 graph에서 보기 편하게 해 주는 기능이 있었습니다. graph를 사용하지 않은 기본 코드를 먼저 작성 해 보겠습니다. 위 코드의 graph를 보면 아래와 같이 나옵니다. 말 그대로 task_0에서 2가지 task로 분기가 되고, task_1_2에서 3가지로 분기가 되었다가 task_1_3_4에서 다시 모입니다. Task의 흐름을 보여드리고자 DummyOperator만 사용했습니다. BashOperator 및 PythonOperator를 사용하셔도 볼..

Hadoop 기본 구조 및 원리

안녕하세요 Dibrary입니다. 하둡은 조금 검색만 해도 수두룩히 많은 내용이 나오는 클러스터로 분산 저장, 처리를 할 수 있게 해 주는 프레임워크죠. 제 나름대로 이해하고 찾은 내용을 여기에 정리해보겠습니다. 처음 접하는 분들에게 도움이 되었으면 좋겠네요. 하둡의 특징 1. 데이터를 Block 단위로 나눠서 저장한다. (분산 저장 가능) 2. Scalability하다. 즉, 클러스터에 Node가 더 필요하면 추가하거나 줄일 수 있다. 3. 처리하던 Node가 실패하면, 다른 Node로 작업을 할 수 있다. 간단하게 보면 위와 같은기능을 가지고 있습니다. 그럼 이 기능들이 어떻게 동작할 수 있는지 보죠. 하둡은 크게 Version1과 Version2로 나눌 수 있습니다. (Version3이 최근거지만, ..

Kafka 기본 개념 및 아키텍처

안녕하세요 Dibrary입니다. 이번에는 Data처리에 핵심 기술인 Apache Kafka에 대해 정리해보겠습니다. 분산 스트리밍 플랫폼. 데이터를 유실없이 안전하게 전달하는 것이 주 목적인 ‘메시지 시스템’에서 데이터를 처리할 수 있습니다. 분산 스트리밍 플랫폼. 데이터를 유실없이 안전하게 전달하는 것이 주 목적인 ‘메시지 시스템’에서 데이터를 처리할 수 있습니다. 기본 아이디어는 Pub / Sub 모델 입니다. 메시지를 관리하는 Queue가 중앙에 있고, 독립적으로 발행, 소비가 이뤄집니다. 카프카의 특징 1. Pub / Sub 모델 2. 확장성 3. 메시지 순차처리 4. 분산처리 Producer는 데이터를 push , Consumer는 데이터를 pull 합니다. Foo와 Bar는 각각 3개의 Par..

파이썬으로 AWS S3에 있는 파일 GET, PUT하기

안녕하세요 Dibrary입니다. 저번에 만든 AWS S3에 파이썬을 사용해서 파일을 넣고, 꺼내보겠습니다. 이번에 할 파일은 CSV파일로 간단히 해 볼건데, 주의할 점은 각 행마다 column갯수가 같아야 합니다. 즉, 각 행마다 콤마 갯수가 같아야 하는 것이죠. 다르면 어떻게 되냐구요? 이런 tokenizing data 에러를 마주할 수 있습니다. 파이썬으로 AWS를 연동하고 싶으면 boto3 모듈을 설치해야 합니다. 찾아보니 boto3는 AWS를 사용하게 해 주는 SDK라고 합니다. 그리고 aws_access_key_id와 aws_secret_access_key를 가지고 있어야 하는데, 이는 보안이 굉장히 중요하므로 별도로 저는 만들어서 사용했습니다. 위 코드에서 제것의 값은 가렸습니다. 해당 함수를..

AWS - S3 프리티어로 사용해보기 (버킷생성)

안녕하세요 Dibrary입니다. 이번에는 Data Lake로 많이들 사용하는 AWS의 S3 를 사용해보겠습니다. 돈을 내야 할 수 있는데, S3도 프리티어를 사용해서 간단한 개인 프로젝트 정도는 진행할 수 있습니다. 프리티어로 할 수 있는 기능은 아래와 같습니다. 1년간 매 달마다 5GB의 스토리지 사용 가능 20000건의 get요청, 2000건의 put, delete 요청 가능 즉, 너무 큰 데이터를 다뤄버리면 원치 않게도 영수증을 받아보게 될 수 있습니다. (실제로 전... 경험이 있어요 ㅠ.ㅜ 물론 다행이도 전화 통화에 이메일까지 죄다 써서 '공부'한 것임을 어필해서 0원으로 만들어주는 크레딧을 받았답니다.) 먼저 aws에 로그인 한 후에 s3를 검색해서 찾아갑니다. 그러면 아래와 같은 화면이 나올..

Python을 이용해서 HDFS의 파일 읽어오기

안녕하세요 Dibrary입니다. 이번에는 제가 하둡 클러스터에 올린 파일을 파이썬으로 읽어보겠습니다. 참고로 사용하실 파이썬에는 미리 hdfs 라이브러리가 있어야 하므로 pip install hdfs 를 해 주세요. 제가 사용한 hdfs 버전은 2.7.0 이네요. 해당 라이브러리를 더 상세하게 익히고 사용하고자 하는 분들은 아래 사이트를 참고해주세요. API reference — HdfsCLI 2.5.8 documentation Parameters: url – Hostname or IP address of HDFS namenode, prefixed with protocol, followed by WebHDFS port on namenode. mutual_auth – Whether to enforce mu..

Flume으로 Hadoop에 데이터 보내기

안녕하세요 Dibrary입니다. 이번에는 Flume을 이용해서 Hadoop에 데이터를 보내보겠습니다. 참고로 Flume은 아래와 같이 설치하실 수 있습니다. [Flume] 데이터 로그 수집기 플룸, 설치하기 안녕하세요 Dibrary입니다. 이번에는 Apache Flume을 설치해보겠습니다. Flume은 로그 같은 데이터를 수집할 때 사용하기 좋은 툴 입니다. 아주 간단하게 주요 컴포넌트를 소개하자면 Source / Channel / Sink dibrary.tistory.com 데이터를 보내기 위해서는 당연하게도, Hadoop cluster는 실행 중이어야 합니다. 먼저, 제가 사용한 Flume 버전은 1.9.0이고, Hadoop 버전은 2.7.2 입니다. Hadoop cluster에서 namenode가 ..

CentOS 에서 Airflow 설치할 때 주의점

안녕하세요 Dibrary입니다. 데이터 처리에 있어서 굉장히 핫한 Airflow를 VirtualBOX(Centos)에 설치해보겠습니다. 굳이 글을 작성하는 이유는, Airflow를 설치하는데 있어서 그냥 pip install apache-airflow 만 하면 된다고 하는 포스팅이나 책이 많았는데, 막상 안되더라구요. 다행이도 해결방법을 찾아냈습니다. 물론, 한 번에 설치가 된다면 굉장히 다행이구요. 제가 실행한 Linux 환경은 CentOS 7이고, 파이썬은 원래 2.7이 깔려있었으나, 3.6으로 설치했습니다. 먼저 각종 책에서 나오는 pip install apache-airflow를 입력하고, pip list로 확인했을 때, 이렇게, apache-airflow 가 있어야 합니다. apache-airf..

RabbitMQ를 사용해서 데이터를 넣고, 꺼내와 보자

안녕하세요 Dibrary입니다. 이번에는 rabbitMQ를 사용해서 데이터를 넣고, 꺼내와 보겠습니다. 넣는 위치와 꺼내는 위치를 다르게 할 수 있다는 점에서 다양한 구성을 해서 데이터의 흐름을 만들 수 있는 좋은 기술이죠. 서버 실행 후에(설치 하면 자동으로 실행 중이겠죠?) 웹 브라우저에서 localhost:15672를 입력하면 아래와 같은 로그인 창이 나옵니다. 처음이라면 username도 guest, password도 guest입니다. 로그인에 성공하면 아래와 같은 기본 화면이 나옵니다. 그러면 간단하게 하나의 virtual host, queue를 만들어서 파이썬으로 데이터를 넣고 꺼내보겠습니다. 위 화면에서 admin 탭으로 가주세요. 오른쪽에 Virtual Hosts를 눌르시면 아래와 같은 화..

반응형