BigData

    [Hive] Hive 아키텍처와 HiveServer2 & Hive Metastore

    이번 글에서는 Hive의 디테일한 아키텍처와 HiveServer2, Hive Metastore의 내용을 주로 다루도록 하겠습니다. Hive 아키텍쳐 Hive 아키텍처는 크게 HiveServer와 RDB, Hadoop의 관계로 구성할 수 있습니다. HiveServer는 Apache Thrift를 기반으로 만들어졌습니다. 여기서 Thrift는 서로 다른 언어 간의 통신을 가능하게 해주는 cross-language RPC 프레임워크로써, HiveServer2 이전에는 HiveServer를 Thrift server라고 부르곤 했습니다. 이번 글에서는 편의상 HiveServer2 이전 버전을 HiveServer1이라고 하겠습니다. - Client : Client가 Hive 쿼리를 사용할 수 있는 인터페이스. ..

    [Hive] Metastore & MySQL 문제로 Hive Query 실행 안되는 이슈 해결 방법

    빅데이터 플랫폼을 운영하면서 겪었던 문제 중 Hive 관련 경험을 소개하도록 하겠습니다. 문제 상황 & 분석 과정 클러스터 운영 중에 Hive Query가 작동하지 않는다는 문의를 받았습니다. 문의 사항은 너무 일반적인 문제 상황이었기 때문에 현재 상황을 파악했고 아래와 같았습니다. - Hiveserver 정상 - Terminal CLI에서 Hive 접속 가능 - Hive Metastore 정상 Hive 상태를 체크했지만 겉으로 보기에는 전혀 문제가 있어보이지 않았습니다. 그래서 일단 Hive에 접속해 간단한 select문을 실행해봤습니다. [root@server1 ~]# hive .... hive > select * from example_db.example_table; 하지만 Query를 실행한지 한..

    [NiFi] Docker & NiFi로 HDFS 데이터 수집하기

    Docker 내가 원하는 환경의 서버를 container라는 개념으로 쉽게 생성 및 삭제할 수 있는 플랫폼. NiFi 다양한 포맷의 데이터들을 ETL 처리할 수 있는 Flow-Based Programming(FBP) 툴 관련 글 [NiFi] NiFi의 핵심 개념 및 아키텍쳐 [NiFi] Docker로 NiFi 클러스터 구성하기 [NiFi] Docker로 NiFi 클러스터 환경에서 HDFS 데이터 분산 수집하기 이번에는 Docker를 이용해서 NiFi와 HDFS 서비스를 실행시키고 간단한 예제를 실습하겠습니다. 예제는 NiFi에서 Processor를 직접 만들고 HDFS 데이터를 수집할 예정입니다. NiFi & HDFS 서비스 실행하기 docker-compose를 통해 서비스들을 실행하는 방법은 이전 글들..

    [NiFi] NiFi의 핵심 개념 및 아키텍쳐

    NiFi란? 다양한 포맷의 데이터들을 ETL 처리할 수 있는 Flow-Based Programming(FBP) 툴 관련 글 [NiFi] Docker & NiFi로 HDFS 데이터 수집하기 [NiFi] Docker로 NiFi 클러스터 구성하기 [NiFi] Docker & NiFi 클러스터 환경에서 HDFS 데이터 분산 수집하기 빅데이터와 관련된 주제로써 이번에는 NiFi를 소개하겠습니다. NiFi는 미국 국가안보국(NSA)에서 Apache에 기증한 dataflow 엔진입니다. 기본적으로 데이터를 Extract, Transformation, Load (ETL)할 수 있는 툴로써 UI를 통해 다양한 기능들을 통해 데이터들을 flow화 시킬 수 있습니다. 그리고 가장 큰 특징으로는 클러스터를 구성해서 데이터를 ..

    [Spark] 스파크 완벽 가이드 Chapter 2 - Spark의 동작 방식

    이전에 Spark에 대한 내용을 포스팅 했습니다. 하지만 Spark에 대해서 좀 더 깊게 공부하기 위해 최근에 "스파크 완벽 가이드"라는 책을 구매했습니다. 앞으로 이 책의 내용을 공부하면서 요약한 내용을 글로 포스팅 하겠습니다. 해당 게시물은 "스파크 완벽 가이드" 책을 참고하여 저의 지식과 함께 작성하는 글입니다. Spark Application과 다양한 언어 지원 Spark Application은 Driver와 다수의 Executor로 구성됩니다. Driver는 Application의 수행해야하는 Task들의 스케쥴링 및 전반적인 Application의 정보를 관리하기 때문에 핵심 프로스세입니다. Executor는 Driver의 스케쥴링으로 나온 Task들을 실제로 수행하는 프로세스입니다. 그래서 ..

    [Spark] Spark structured streaming으로 Kafka topic 받기 #3 - pyspark로 HDFS에 topic data 저장하기

    Docker 내가 원하는 환경의 서버를 container라는 개념으로 쉽게 생성 및 삭제할 수 있는 플랫폼. Kafka Publish, Subscribe 모델 구조로 이루어진 분산 메세징 시스템 Spark Streaming Spark API 중 batch와 실시간 streaming이 가능한 Spark API 이전 글에서는 console 창에서 입력하는 값을 topic에 produce 했었습니다. 이번에는 csv 파일을 이용하여 실시간으로 데이터를 전송하는 것처럼 producer를 구현하도록 하겠습니다. 글에서 실습할 전체적인 과정은 아래 이미지와 같습니다. Kafka-1 container가 Producer의 역할로 test1이라는 Kafka topic에 데이터를 보내고 test1 topic에 담겨있는 내..

    [Spark] Spark structured streaming으로 Kafka topic 받기 #2 - Spark 및 Hadoop 서비스 실행하기

    Docker 내가 원하는 환경의 서버를 container라는 개념으로 쉽게 생성 및 삭제할 수 있는 플랫폼. Kafka Publish, Subscribe 모델 구조로 이루어진 분산 메세징 시스템 Spark Streaming Spark API 중 batch와 실시간 streaming이 가능한 Spark API Hadoop & Spark 서비스 실행 이번 글에서는 Docker Compose를 이용하여 Hadoop과 Spark 서비스들을 microservice화 시키도록 하겠습니다. 이전 글에서 구성했던 Kafka와 Zookeeper를 모두 포함하여 yml 파일을 작성하고 "docker compose up -d" 명령어를 실행하도록 하겠습니다. 이때 새로운 폴더에서 진행합니다. docker-compose.ym..