전체 글 (7) 썸네일형 리스트형 Airflow 소개 Airflow란 배치로 던지는 작업에 대한 실행 계획을 비순환 방향성 그래프로 나타내어 의존성, 진행 현황 등을 추적할 수 있는 workflow 엔진입니다. 대용량의 데이터를 가공할 때, 여러 로컬 머신에서 원격 클러스터로 작업을 제출하는 경우가 많습니다. 일회성 추출, 크론탭에 등록한 작업 등등.. 결국에는 여러곳에서 한정된 자원에 접근해야 하기 때문에, 이전 작업에 다음 작업이 영향을 받기 마련입니다. Airbnb에서는 이러한 이슈를 Airflow가 해결할 수 있다고 소개했습니다. 어떻게 해결할 수 있을까요? 1. 이전 작업이 끝난게 맞는지 확인하고 다음 작업을 실행한다. 작업은 가장 상위개념인 DAG, DAG를 이루는 다수의 Task로 구성됩니다. 엔지니어가 직접 Task들끼리의 실행 순서나 의존성.. 맵리듀스 1. 개념 - 맵 : 한줄씩 읽어서 데이터를 변형 하기 (k1, v1) -> list(k2,v2) - 리듀스 : 맵의 결과 데이터를 집계 하기 (k1, list(v2)) -> (k3, list(k3)) - 따라서 Hive에서 데이터를 조회할 때, 맵퍼는 항상 할당이 되고 리듀서는 Count 등등 집계를 할 때만 할당이 됩니다. 2. 맵 리듀스 아키텍처 1. 클라이언트 - 맵리듀스 API 2. 잡트래커 - 잡의 스케줄링을 관리하고 모니터링 - 잡을 처리하기 위해 몇개의 맵과 리듀서를 실행할지 계산함. - 계산된 맵과 리듀스를 어떤 태스크트래커에서 실행할지 결정하고, 해당 태스크트래커에 잡을 할당함 3. 태스크트래커 - 사용자가 실행한 맵리듀스 프로그램을 실행하며 , 하둡의 데이터노드에서 실행되는데몬 - 잡.. HDFS 1. 기존 대용량 파일 시스템과의 차이점 - 저사양 서버를 여러 대 이용해 스토리지를 구성할 수 있음. - 물리적으로 분산된 서버의 로컬 디스크에 저장되어 있지만, 파일의 읽기 및 저장과 같은 제어는 HDFS에서 제공하는 API를 이용해 처리함 - API는 Java Base이며, "하둡은 자바로 이루어져있다" 라는 맥락은 여기서 나온게 아닌가 싶습니다. - API에 대해 정리한 내용은 아래 4. 파일 저장하기, 읽기 에 나와있습니다. 사실은 여러 서버에 분산되어 저장되어있지만, 마치 한 서버의 파일시스템 처럼 사용할 수 있음 2. HDFS 아키텍처 1) 블록 구조 파일시스템 - HDFS에 저장하는 파일은 특정 크기의 블록으로 나눠져 분산된 서버에 저장되게 됩니다. - 기본적으로 블록의 크기는 64MB이며.. RDD VS DataFrame VS Dataset 뭐가 다를까? 데이터 처리를 할 때 왜 스파크를 써야하는지, 왜 빠른지에 대해 공부하며 빅데이터-스칼라, 스파크로 시작하기 의 도움을 많이 받았습니다. 주력언어가 Python인 만큼 Pyspark를 썼으면 하는 바램이 컸지만, Scala에서의 퍼포먼스가 더 좋다는데 왜일까? 왜 Pyspark에서는 Dataset을 지원하지않지? 라는 궁금증들이 생겨 여러 블로그를 뒤져가며 나름 정리 해 봤는데요, 다른 분들께도 도움이 됐으면 좋겠습니다. RDD Java, Scala의 객체를 처리하는 방식 함수를 1) Transformation 2) Action으로 나눠 Action에 해당하는 함수를 호출할 때 실행된다. transformation의 결과는 RDD로 생성 내부에 데이터 타입이 명시 쿼리 최적화등을 지원하지 않았음(카탈리스.. CDH 중 Oozie에서 Permission에러가 나요! Cloudera를 설치하고, 다른 역할은 다 실행은 됐는데 Oozie에서 Permission 에러가 났다. 다른 서비스는 권한문제가 발생하지 않는데 우지만 권한 문제가 생겨서 해결하는데 어려움을 느꼈다. 다행히 Hive로 생성한 테이블이 HDFS에 잘 저장되었는지 메타스토어에서 확인 해 보면서 문제를 해결하게 됐다. 하이브의 메타정보는 파일의 물리적인 위치와 데이터에 대한 논리적인 정보로 구분할 수 있습니다. 이 메타정보를 보관하고 사용자의 요청에 따라 관련 정보를 제공하는 곳이 하이브 메타스토어입니다. 빅데이터-하둡, 하이브로 시작하기, 5. 메타스토어 여기서 논리적인 정보에 각 유저와 역할이 포함된다. 내가 났던 에러는 Permission Denied : oozie_oozie_server_1 ...과.. Redis 시작해보기 빠르게 개념을 이해하기 원하시는 분은 sungho88 님의 [Redis] 레디스 개념 및 특징 을 참고 해 주시기 바랍니다. '레디스는 고성능 키-값 저장소로서 문자열, 리스트, 해시, 셋, 정렬된 셋 형식의 데이터를 지원하는 NoSQL이다.' 정경석, 『이것이 레디스다』, 한빛미디어(2013), P.31 책의 문구처럼 Redis는 빠르고, 다양한 데이터 형식을 지원하는 저장소입니다. 어떻게 값을 저장하고 조회하는지를 익히는것이 우선이라 생각해 한눈에 보기 쉽게 Redis Cli 명령어를 정리했습니다. 추가로, 1. 레디스의 성능 측정을 위해 redis-benchmark를 사용할 수 있고 2. redis-cli의 명령행 클라이언트를 사용해 응답시간 측정(latency)하거나 3. 주기적인 통계 정보 조회.. HBase 소개 HBase는 NoSQL이다. 그리고 클라이언트 라이브러리, 마스터서버 하나, 리전 서버 다수 등으로 구성되며 테이블은 컬럼, 로우, 셀 등으로 구성된다. 컬럼지향 데이터베이스 VS 로우 지향 데이터베이스 HBase를 이해하려면 컬럼 지향 데이터베이스에 대해 먼저 이해하는것이 수월하다. 컬럼 지향 데이터베이스는 데이터를 컬럼 단위로 묶어 저장한다. RDBMS에서 I/O는 Row단위인 반면, 항상 모든 컬럼을 필요로 하지 않는다. 컬럼 지향 데이터베이스는 필요한 컬럼만 읽고 씀으로써 더 빠른 속도와 높은 압축률을 제공한다. HBase와 컬럼 지향 데이터베이스의 관계 HBase는 NoSQL이다. RDBMS방식의 컬럼 지향 데이터베이스가 아니라 디스크상의 컬럼 저장 방식을 활용했음에 주목하자. HBase의 구성.. 이전 1 다음