전체 글 126

Hive 테이블

데이터를 Hive 테이블로 가져와 생성하면 Hive Query, Pig, Spark 등을 통해 데이터를 처리할 수 있다. Hive 테이블은 저장되는 위치에 따라 내부 테이블, 외부 테이블 두가지로 나뉜다. 내부 테이블 하이브 데이터 웨어하우스(/hive/warehouse)에 저장되어 Hive가 직접 관리하는 테이블이다. 내부 테이블을 삭제하면 Hive 테이블 metastore 정보와 테이블에 들어있는 모든 데이터가 같이 삭제된다. ORC(Optimized Row Columnar)파일을 통해 최적화 된 저장 방식을 사용할 수 있어 비교적 좋은 성능을 낼 수 있다. # .csv 파일 -> 내부 테이블 생성 예 CREATE TABLE IF NOT EXISTS Names_text( > Column1_name ,..

Hive

Pig와 유사한 목적으로, 기존 RDBMS에 익숙한 분석가들의 생산성 향상을 위해 SQL과 유사한 HiveQL을 사용하여 MapReduce 작업 수행을 돕는 도구이다. MapReduce 프로그램 작성 대신 쿼리 인터페이스를 제공하여 비정형화된 입력 소스 분석에는 적합하지 않다. Hive아키텍쳐 Hive는 클라이언트-서비스 아키텍쳐로 구성되어있다. Hive Client는 JDBC, Thrift, ODBC 기반 응용프로그램을 각각 지원하고 응용프로그램에서 Hive로부터 데이터를 가져올 수 있다. Hive Service는 Hive Client의 요청을 Hive Server로 전송받은 다음, Hive Driver로 실제 Hive 작업을 생성, 수행한다. 실제 데이터는 HDFS에 저장하거나 Hive Service..

Hadoop High-Availability Fully distributed with Docker

일일히 이미지를 생성하는것이 귀찮아서 Dockerfile과 docker-compose를 이용하였다. https://github.com/gegurakzi/hadoop-ecosystem.git GitHub - gegurakzi/hadoop-ecosystem Contribute to gegurakzi/hadoop-ecosystem development by creating an account on GitHub. github.com 구성은 다음과 같다. Namenode: master01, master02 Datanode: slave01, slave02, slave03 Journalnode: master01, master02, slave01 기존 생성했던 Namenode 이미지 생성 과정을 살짝 수정하여 Dock..

Hadoop Fully-distributed with Docker

존 pseudo-distribute를 변형하여 세팅할 수 있지만, 새로 이미지를 생성해볼것이다. 참고: 도커(Docker)에 하둡(Hadoop) 클러스터 띄우기 도커(Docker)에 하둡(Hadoop) 클러스터 띄우기 하둡 HDFS 코드리뷰를 진행하면서 테스트용 클러스터를 구축할 필요가 있었습니다. 실제 개발 장비에 설치되어 있는 하둡 클러스터를 이용해 볼 수 있었지만 도커에 하둡을 띄워보면 어떨까 생 soft.plusblog.co.kr CentOS 컨테이너 생성 후, 기본적인 설정을 한다. > docker run -it --name hadoop-base centos > mkdir -p /opt/jdk 추후 javac 심볼릭 링크 및 홈, PATH 설정을 위해 생성 > mkdir -p /opt/hadoo..

Hadoop Pseudo-distributed with Docker

Standalone 모드 설치에 이어 환경을 구성한다. 2022.05.16 - [데이터 엔지니어링/빅데이터] - Hadoop Standalone with Docker Hadoop Standalone with Docker 서버용 OS로 인기가 많은 RedHat 기업의 RHEL(RedHat Enterprise Linux)의 유료화에 반발하여 만들어진 오픈소스 프로젝트 CentOS를 이용하여 컨테이너를 빌드한다. CentOS 이미지를 DockerHub로부터 가져온다. >. malachai.tistory.com 클러스터 내 노드간의 통신을 요구하기 떄문에, ssh의 설치가 필수이다. > yum install openssh-server -y > yum install openssh-clients -y > yum i..

Hadoop Standalone with Docker

서버용 OS로 인기가 많은 RedHat 기업의 RHEL(RedHat Enterprise Linux)의 유료화에 반발하여 만들어진 오픈소스 프로젝트 CentOS를 이용하여 컨테이너를 빌드한다. 참고 블로그: 하둡 완전분산 환경 설치 및 설정 (hadoop cluster setup) 안녕하세요, (주)씨앤텍시스템즈 신윤중입니다. 본 포스팅에선 하둡 완전분산환경(hadoop cluster setup)을 구축하는 방법과 간단하게 운영환경을 테스트 하는 과정을 소개하겠습니다. 글의 구성은 cntechsystems.tistory.com 하둡 3.1.2 설치 3편 - 독립실행모드(Standalone), 가상분산모드(Pseudo-distributed), 완전분산모드(Fully dist 1. 독립실행모드편 -> 하둡 3..

HDFS

대용량 파일 읽기 및 쓰기 작업에 최적화된 특별한 파일 시스템이다. 로컬 파일 시스템과 HDFS는 분리되어 있기 때문에, 데이터 작업이 필요한 사용자는 HDFS에서 로컬 파일 시스템으로 가져와서 작업해야한다. 이후 작업을 마친 파일을 로컬 파일 시스템에서 HDFS로 내보낸다. HDFS에 파일을 저장하면, 파일의 데이터를 작은 단위의 블록으로 분할한 후 하둡 클러스터의 여러 노드에 이중으로 저장한다. HDFS에서 파일을 가져오면, 분할된 블록을 합쳐 하나의 파일로 만든 후 로컬 파일 시스템에 저장한다. 파일은 기본적으로 64MB 혹은 128MB의 블록으로 나뉘어져 여러 개의 데이터노드에 분산 저장된다. 복제본의 수는 설정 가능하며 기본값은 3개이다. 파일의 메타정보는 마스터 노드의 네임 노드가 관리하고 실..

MapReduce

MapReduce 프레임워크는 분산 병렬 처리 방식으로 여러개의 작업 노드에 작업을 분산하여 병렬 수행할 수 있는 프레임워크이다. MapReduce의 각 단계 Map 단계 분산된 데이터를 키, 값의 리스트로 모으는 단계 Shuffle and Sort 단계 맵 단계에서 나온 중간결과를 해당 Reduce 함수에 전달하는 단계 Reduce 단계 리스트에서 원하는 데이터를 찾아서 집계하는 단계 개발자는 Map 함수와 Reduce 함수를 정의하여 데이터 처리 방법을 정하면, 시스템은 자동으로 Shuffle and Sort 단계를 수행해준다. MapReduce 절차 Hadoop이 각 데이터 노드에 나뉘어 담긴 데이터들에 map()함수 배포 → 각 map()함수는 데이터를 읽고 출력 → Hadoop이 출력된 들을 s..

카테고리 없음 2022.05.16

HBase

컬럼기반의 NoSQL 데이터베이스인 HBase는 하둡을 기반으로 하며, 구글 BigTable 이후에 모델링 된 오픈소스이다. Column family로 구성된 스키마 없는 데이터베이스로서, join, index가 없다. 비정형 혹은 반정형 대량 데이터에 대해 Random access 및 강력한 일관성을 제공한다. 테이블은 n개의 컬럼 패밀리를 가질 수 있으며, 하나의 row는 유일한 인덱스인 rowkey와 컬럼 패밀리로 구성된다. Table 다중 Row로 구성된 집합이다. 테이블 생성 시 Column을 지정해주는 것이 아니라 Column Family만 지정한다. Row RowKey와 Column으로 구성되며, RowKey를 기준으로 알파벳 오름차순으로 정렬되어 저장되기 때문에 RowKey 설계가 매우 중..

Oozie

여러 하둡 작업을 실행하고 관리하는 위크플로우 스케줄러 시스템이다. 데이터 수집부터 분석에 이르는 데이터 파이프라인 구성 시, 이전 작업의 출력이 다음 작업의 입력으로 이어지게되는 순차적 작업 구조가 만들어진다. Oozie는 작업에 단계를 정의하여 워크플로우를 수립하고 개별 하둡 작업을 순차적으로 실행하고 관리하는 역할을 한다. 하둡 작업에는 자바 맵리듀스, 스트리밍 맵리듀스, 피그, 하이브, 스파크, 스쿱 등이 있다. 하둡 작업이 아닌 작업 중엔 자바 프로그램이나 쉘 스크립트 수행 작업이 있다. 이러한 작업들을 순차적인 구조로 표현하기 위해 Oozie의 워크플로우 작업은 여러 액션의 DAG(Directed Acyclic Graph)를 구성한다. Oozie의 작업 유형 워크플로우 결과 기반 제어 기능과 ..