전체 글
-
Zookeeper Znode 알아보기Hadoop 2023. 12. 19. 04:44
- 목차 소개. Zookeeper 는 Znode 라는 데이터 저장기능이 존재합니다. Znode 는 데이터를 저장할 수 있는 논리적인 개념인데요. Hadoop NameNode 의 Namespace 와 같이 가상의 저장 개념입니다. Znode 는 파일시스템처럼 트리구조를 취하는데요. /hadoop-ha/hadoop-active /hadoop-ha/hadoop-standby /hadoop-ha/locks/operation1 위와 같는 형식의 트리 구조를 이룹니다. 그리고 각 트리의 노드에 해당하는 Znode 를 특정 데이터를 담을 수 있습니다. 이번 글에서는 Znode 가 어떻게 데이터를 저장하는지에 대해서 자세히 알아보려고 합니다. Zookeeper Znode 구조. Znode 는 In-Memory 구조를 ..
-
Hive & Hadoop 연결하기Hive 2023. 12. 17. 08:15
- 목차 소개. 이번 글에서는 Hive 와 Hadoop 을 연결하여 어떠한 방식으로 두 Application 사이의 소통이 이루어지는지 알아보려고 합니다. Docker Container 환경에서 진행할 예정입니다. Hive & Hadoop 연결하기. 1. hadoop config 파일을 생성합니다. 하둡은 core-site.xml, hdfs-site.xml 등의 xml 설정을 기본으로 합니다. 아래 명령어를 통해서 hadoop_config 정보를 생성합니다. cat
-
Hive MySQL Metastore 알아보기Hive 2023. 12. 17. 08:14
- 목차 소개. Hive Metastore 의 Backend 로써 MySQL 를 사용하는 케이스에 대해서 알아보려고 합니다. 먼저 Hive 와 MySQL 를 연결시키는 과정부터 진행해보겠습니다. Hive 와 MySQL 은 각각 Docker 환경에서 수행할 예정입니다. 먼저 MySQL 이 Hive 의 Metastore Backend 로써 동작할 수 있도록 Hive 가 사용할 User 와 Database 를 생성합니다. User 는 hiveuser, Database 는 hive_metastore 로 이름지었습니다. cat docker run -d --name mysql \ --mount type=bind,source=/tmp/mysql-init-script..
-
Docker 로 Hive 구현하기Hive 2023. 12. 16. 17:27
- 목차 소개. Docker Container 를 활용하여 Hive 를 간단하게 구현해보려고 합니다. Docker Hub 의 apache/hive 의 자료를 토대로 진행하였습니다. https://hub.docker.com/r/apache/hive Docker hub.docker.com 구현하기. 아래 명령어를 실행하여 Hive Server Container 를 실행할 수 있습니다. docker run -d \ -p 10000:10000 -p 10002:10002 \ --env SERVICE_NAME=hiveserver2 \ --name hive \ apache/hive:3.1.3 별다른 설정없이 Derby 데이터베이스를 metastore 로 사용합니다. docker ps 의 결과로 생성된 Hive Con..
-
Spark RDD Lineage 알아보기Spark 2023. 12. 16. 07:43
- 목차 소개. RDD 는 Resillient Distributed Dataset 의 약자입니다. RDD 는 Spark 의 기본적인 데이터 단위인데요. RDD 의 Resillience 를 구현하기 위해서 사용되는 Concept 이 RDD Lineage 입니다. 이번 글에서는 RDD Lineage 에 대해서 알아보려고 합니다. RDD Lineage. 아래 이미지는 Spark UI 의 DAG Visualization 입니다. RDD Lineage 가 아래 이미지와 같은 DAG 형식으로 표현될 수 있습니다. DAG 그래프 표현될 수 있는 이유는 RDD Lineage 가 선형적인 연결고리를 가지기 때문인데요. Source RDD -> Transformed RDD1 -> Transformed RDD2 -> .....
-
Docker 로 Kafka Cluster 구축해보기.Kafka 2023. 12. 16. 00:39
- 목차 소개. 저는 로컬 환경에서 카프카 관련 테스트를 진행하는 경우가 많이 생기더군요. 그래서 docker-compose 를 활용하여 Kafka, ZooKeeper 클러스터를 구축하는 내용을 작성하려고 합니다. docker-compose.yaml. 아래 명령어는 kafka 클러스터를 실행하기 위한 docker-compose.yaml 파일입니다. cat 명령어를 통해서 /tmp 폴더 하위에 kafka-docker-compose.yaml 파일을 생성합니다. cat 토픽 생성하기. http://localhost:9000/topic/create 주소를 통해서 카프카 토픽을 생성할 수 있습니다. http://localhost:9000/topic/new_topic 주소에서 생성된 토픽의 상세 정보를 확인할 수 ..
-
Kubernetes Nginx Ingress 알아보기Kubernetes 2023. 12. 16. 00:39
- 목차 소개. Ingress 는 Kubernetes 환경을 외부 네트워크와 연결하는 창구역할을 합니다. Kubernetes 내부의 Pod 들은 서로의 IP 를 기반으로 통신을 수행하는데요. Kubernetes 외부에서 특정 Pod 와의 연결은 불가능합니다. Ingress 는 이러한 소통을 가능하게 하는 Kubernetes 리소스이며, 이번 글에서 Nginx 을 기반으로하는 Nginx Ingress 에 대해서 설명하려고 합니다. Ingress 란 ? Ingress 는 Kubernetes 외부에서 Kubernetes 내부로의 통신을 가능하게 도와주는 Kubernetes Resource 입니다. 네트워크 관점에서 Ingress 와 Egress 라는 개념이 존재합니다. Ingress 는 Inbound Netw..
-
Hadoop File Permission 알아보기 (ACL)Hadoop 2023. 12. 15. 06:42
- 목차 소개. Hadoop 의 File Permssion 에 대해서 알아보려고 합니다. Hadoop 의 File Permission 은 기존의 Linux 시스템에서 사용하는 Permission 체계와 유사합니다. File 과 Directory 마다 Owner 가 존재하게 되구요. Owner 가 속하는 Group 이 존재합니다. 그리고 Read, Write, Execute 에 해당하는 권한을 부여할 수 있습니다. 또한 ACL (Access Control List) 또한 적용이 가능한데요. 이와 관련된 내용와 설정 방식이 대해서 알아보려고 합니다. 먼저 간단하게 Hadoop Cluster 를 생성해보도록 하겠습니다. 1. hadoop config 파일을 생성합니다. 하둡은 core-site.xml, hdf..
-
MySQL User, Grant 생성하기.Database 2023. 12. 15. 06:40
- 목차 소개. MySQL 에서 사용자를 생성하는 방식에 대해서 알아보려고 합니다. 가장 간단한 방법은 아래와 같습니다. CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 위 쿼리에서 3가지 정보가 사용되는데요. 1. 사용자 이름 2. 사용자의 접속 IP 3. 사용자의 비밀번호 입니다. 그리고 사용자의 권한에 대한 설정 또한 필요합니다. GRANT SELECT, INSERT, UPDATE, DELETE ON mysql.* TO 'developer'@'localhost'; 위 쿼리의 내용은 "developer 라는 사용자는 localhost IP 에서 mysql Database 의 모든 테이블에 SELECT, INSERT, UPDATE, DELETE" 가 ..
-
Spark RDD Storage 알아보기 (Persist, Cache)Spark 2023. 12. 15. 06:40
- 목차 소개. RDD 는 persist 와 cache Function 을 가집니다. persist, cache 기능을 통해서 RDD 의 중간 상태를 Storage 에 임시 저장을 할 수 있습니다. 예를 들어, RDD = SparkContext.parellelize([1,2,3,4,5]) 와 같은 CollectionRDD 가 존재할 때에 RDD.persist(), RDD.cache() 와 같은 형태로 RDD 의 데이터 상태를 저장할 수 있습니다. 그리고 저장소의 유형 또한 설정이 가능한데요. Memory, Disk 로 설정이 가능합니다. 이번 글에서는 RDD 의 Persist 와 Storage 에 대해서 알아보려고 합니다. persist and cache. RDD 는 persist 와 cache func..