hdfs

    Riot Data Pipeline 구축하기 #7 - HDFS에 저장된 JSON 데이터로 Hive 테이블 생성하기

    Riot 데이터를 수집해서 최종적으로 HDFS에 저장하는 과정까지 성공했습니다( 비록 미흡한 점이 상당히 많지만.... ). 이제는 저장된 데이터를 기반으로 Hive 테이블을 생성하는 과정을 진행하겠습니다. Docker Compose에 Hive 서비스 추가 Kafka에 있는 데이터를 HDFS에 저장하기 위해 Docker Compose에 Spark와 HDFS 서비스들을 추가했었습니다. 이번에는 동일한 Docker Compose에 Hive 서비스를 추가하겠습니다. docker-compose.yml version: '2' services: spark-master: image: bde2020/spark-master:2.4.0-hadoop2.8 ports: - "8080:8080" - "7077:7077" env..

    [HDFS] JMX Metrics 값 불러오기

    Hadoop의 HDFS를 사용하다보면 현재 HDFS의 사용량을 여러가지 방법들로 확인합니다. 예를 들어 NameNode의 Web UI를 접속해 확인하거나 Ambari와 같은 배포판 관리 시스템에서도 쉽게 확인할 수 있습니다. 그런데 만약 모니터링 시스템을 직접 개발해서 사용한다면 코드 상에서 어떻게 HDFS의 정보를 가져올 수 있을까요? 이 방법에 대해 소개해드리겠습니다. NameNode Web UI 우리가 흔히 원하는 HDFS 정보들은 NameNode Web UI에서 모두 제공을 하고있습니다. 보통 NameNode의 50070 포트로 쉽게 접속할 수 있습니다. ( http://{NameNode}:50070 ) NameNode JMX 위의 NameNode Web UI는 HDFS 정보들을 어디서 가져오는 ..

    [Hadoop] HDFS NameNode의 Metadata 관리와 Failover 상세 과정

    NameNode HDFS에서 모든 데이터의 metadata를 관리하는 노드. Failover 장애 극복 기능으로써 어떤 시스템의 문제가 발생했을 시, 예비 시스템으로 자동 전환되는 기능. 관련 글 [Hadoop] HDFS - The Hadoop Distributed File System 이번 글에서는 HDFS의 NameNode가 HA(High Availability) 구성된 상태에서 Failover가 일어나는 과정에 대해서 소개하도록 하겠습니다. 공부하면 아시겠지만, HDFS에서는 가장 중요하다고 할 수 있는 metadata를 NameNode가 관리합니다. 그래서 NameNode 서버가 죽게 된다면 이는 곧 HDFS를 사용할 수 없음을 뜻합니다. 그래서 이를 방지하고자 Secondary NameNode를..

    [NiFi] Docker & NiFi 클러스터 환경에서 HDFS 데이터 분산 수집하기

    Docker 내가 원하는 환경의 서버를 container라는 개념으로 쉽게 생성 및 삭제할 수 있는 플랫폼. NiFi 다양한 포맷의 데이터들을 ETL 처리할 수 있는 Flow-Based Programming(FBP) 툴 관련 글 [NiFi] NiFi의 핵심 개념 및 아키텍쳐 [NiFi] Docker & NiFi로 HDFS 데이터 수집하기 [NiFi] Docker로 NiFi 클러스터 구성하기 앞선 글에서 Docker를 이용해 NiFi 클러스터 환경을 구성했다면, 이번에는 클러스터 환경에서 HDFS 데이터를 분산 수집하는 과정을 진행해보겠습니다. HDFS 데이터 만들기 테스트할 데이터를 만들기 위해 아래의 파일을 똑같이 복사하여 30개를 만들어주고 namenode container에 옮겨줍니다. /* Loc..

    [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를 통해 서비스들을 실행하는 방법은 이전 글들..

    [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..

    [Docker] Docker로 Hadoop 구성하기 #3 - Hadoop 클러스터 구성 및 실행

    Docker 내가 원하는 환경의 서버를 container라는 개념으로 쉽게 생성 및 삭제할 수 있는 플랫폼. 관련 글 [Docker] Docker로 Hadoop 구성하기 #1 - MacOS에 Docker 설치 및 CentOS 실행 [Docker] Docker로 Hadoop 구성하기 #2 - Hadoop 설치 및 세팅 이전 글에서 docker의 CentOS container에서 hadoop 설치 및 세팅까지 완료했습니다. 이제는 hadoop 세팅까지 완료된 이미지를 기반으로 다수의 container를 실행해 클러스터를 구성해보겠습니다. 그리고 간단한 wordcount 예제까지 해보겠습니다. Hadoop 클러스터 구성 hadoop 클러스터는 NameNode 1개, DataNode 3개로 구성하겠습니다. 이전..