Hadoop Ecosystem
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsP7dg%2FbtrGbecnKwC%2FGFefurOg6aCn3JJKic3xM1%2Fimg.png)
[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 쿼리를 사용할 수 있는 인터페이스. ..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcgAb9L%2FbtrDyFErPLL%2FdvhfOquUY60ZWRLAmWHkf0%2Fimg.png)
[Hive] Unable to fetch table .null 에러 해결 방법
이번 글에서는 빅데이터 클러스터를 운영하면서 Hive 관련 "Unable to fetch table .null" 에러가 발생했던 경험을 공유하겠습니다. 문제 상황 & 분석 과정 클러스터 운영 중에 특정 Hive Table이 에러가 발생하며 drop을 포함한 모든 명령어가 먹히지 않는 문제가 발생했습니다. 문제 상황은 아래와 같았습니다. - Hiveserver 정상 - Hive에 접속해 Table 리스트를 보면 존재함 - Hue에서 UI를 통한 Hive Table 조회시 에러 발생 - 문제가 되던 특정 Table에 HQL 수행 시 에러 발생 - 해당 Table drop도 불가능 Failed: SemanticException Unable to fetch table [table_name].null 해당 문제..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyOv1F%2FbtrCOLj3VDZ%2FyqAIzDhAuiduZbfsTwAoo1%2Fimg.png)
[NiFi] Untrusted proxy 및 UninheritableFlowException 에러 해결 방법
NiFi를 사용하면서 UninheritableFlowException 에러를 해결했던 방법을 공유하겠습니다. 참고로 제가 테스트 했던 NiFi는 File 기반의 유저 인증 방식을 사용했다는 점 참고 바랍니다.( FileUserGroupProvider ) 문제 상황 & 분석 과정 해당 에러는 NiFi 노드 증설 시 발생했던 에러입니다. 신규 노드에 대해서 서버 작업을 모두 완료한 뒤 NiFi 설치를 완료했습니다. 그리고 이후에 NiFi 관련 설정 파일을 수정했습니다. - File authorizers.xml - 수정한 내용 , 항목에 신규 노드 정보 추가 - 관련 참고 링크 https://nifi.apache.org/docs/nifi-docs/html/administration-guide.html#mult..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdgPtTT%2FbtrCfm7zuK0%2FcQ9QZzQM28NnRM0QkcHX81%2Fimg.png)
[Kafka] Docker로 Kafka 구성 시 Host machine과 통신하기 위한 listener 설정 방법
Kafka Publish, Subscribe 모델 구조로 이루어진 분산 메세징 시스템 관련 글 [Spark] Spark structured streaming으로 Kafka topic 받기 #1 - Kafka 클러스터 구성하기 [Spark] Spark structured streaming으로 Kafka topic 받기 #2 - Spark 및 Hadoop 서비스 실행하기 [Spark] Spark structured streaming으로 Kafka topic 받기 #3 - pyspark로 HDFS에 topic data 저장하기 이번 글에서는 Docker로 Kafka 클러스터를 구성했을 때 Host machine에서 Topic을 Produce 할 수 있는 방법을 소개하겠습니다. 위의 관련 글에서처럼 Kafka ..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FteRX4%2FbtrBim0PD0o%2FTW5efwNMrmnHLHzrjkAsWk%2Fimg.png)
[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를 실행한지 한..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdopUQh%2FbtrACMsZn7v%2FQZrOOgjbWBnpJ3fmNM8DQk%2Fimg.png)
[Hadoop] YARN Capacity scheduler 특징 및 Queue 옵션
YARN Scheduler란 YARN Scheduler란 할당시킬 리소스를 결정하는 알고리즘으로써 다양한 설정 값들을 통해 클러스터의 리소스를 효율적으로 사용할 수 있습니다. YARN은 기본적으로 Hadoop 플랫폼에서 작동하는 어플리케이션에 리소스를 할당시키고 관리하는 역할을 맡고 있습니다. 어플리케이션이 제출되어 AM( Application Master )가 생성되면 아래 그림과 같은 절차가 진행됩니다. 이 때 AM이 RM( ResourceManager )에게 리소스 요청을 하면 RM은 Scheduler를 통해 할당시킬 리소스의 양을 결정합니다. YARN Scheduler 종류 Scheduler의 종류로는 아래 3가지가 존재합니다. 이 중 Capacity scheduler가 기본 default 값으로..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcqEkU8%2FbtrwjpgwkEI%2FyHJ4p0RpZzwoHEHBFjxKkK%2Fimg.png)
[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를..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fo8rad%2Fbtrwdk2GaTD%2FKRopKFRICX1am7sHOCfvIk%2Fimg.png)
[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..