본문 바로가기

데이터처리

(24)
[spark definitive guide] 스파크 기능 둘러보기 이전 장에서는 구조적 API 와 관련된 핵심 개념을 봤다 기본 요소인 저수준 API 와 구조적 API 그리고 추가 기능을 제공하는 라이브러리로 구성되어있다. 스파크 라이브러리는 그래프 분석, 머신 러닝, 스트리밍 등 을 지원한다. 이번 장에서는 아직 다루지 않은 API 와 주요 라이브러리 그리고 스파크가 제공하는 다양한 기능을 봐보자 spark-submit Dataset 구조적 스트리밍 RDD 운영용 어플리케이션 실행하기 spark-submit 명령은 어플리케이션 코드를 클러스터에 전송해 실행시키는 역할을 한다. 클러스터에 제출된 어플리케이션은 작업이 종료되거나 에러가 발생할때까지 실행된다. 스파크 어플리케이션은 클러스터 매니저인 스탠드 얼론, YARN, 메소스등을 이용해 실행된다. spark-submi..
[spark definitive guide] - 스파크 간단히 살펴보기 이제 스파크를 사용해보자 DataFrame 과 SQL 을 사용해 클러스터, 스파크 어플리케이션 , 그리고 구조적 API 를 봐보자 스파크의 기본 아키텍처 데이터 처리는 한 대의 컴퓨터로 수행하기 힘들 수 있다. 한 대의 컴퓨터는 대규모의 정보를 연산 할 만한 자원이나 성능을 가지지 못한다. 컴퓨터 클러스터는 여러 컴퓨터의 자원을 모아 하나의 컴퓨터 처럼 사용할 수 있게 만든다. 하지만 이 클러스터를 구성하는 것만으론 부족하고 작업을 조율 할 수 있는 프레임워크가 필요하다. 스파크가 이런 역할을 하는 프레임 워크다. 스파크는 클러스터의 데이터 처리 작업을 관리하고 조율한다. 스파크가 연산헤 사용하는 클러스터는 스파크 스탠드 얼론 클러스터 매니저 , 하둡 YARN , 메소스 같은 클러스터 매니저 에서 관리를..
[Spark definitive guide] - 아파치 스파크란 아파치 스파크란 클러스터 환경에서 데이터를 병렬로 처리하는 라이브러리 집합이다. 병렬 처리 오픈 소스 엔진이다. SQL 뿐만 아니라 스트리밍, 머신 러닝 라이브러리 까지 제공한다. 빅데이터 처리를 쉽게 할 수 있고 엄청난 규모의 클러스터로 확장 할 수 있다. 아파치 스파크의 철학 - 컴퓨팅 엔진 스파크는 데이터를 연산하는 역할만 수행 할 뿐 영구 저장소 역할은 하지 않는다. 대신 하둡, 카산드라, 등의 저장소를 지원하고 메시지 전달 서비스인 카프카를 지원한다. 스파크는 내부에 데이터를 오랜 시간 저장하지 않고 , 데이터 저장 위치에 상관없이 처리에 집중하도록 만들어졌다. 스파크는 연산 기능에 초점을 맞추면서 기존 하둡같은 빅데이터 플랫폼과 차별화를 둔다. 하둡은 hdfs 와 맵리듀스를 가지고 있고 서로 ..
ElasticSearch - 텍스트 정렬 엘라스틱 서치에서 Text 필드를 정렬 하려고 하면 Set fielddata=true on ' ' in order to load fielddata in memory by uninverting the inverted index. 와 같은 에러가 발생을 한다. 대부분의 필드 들은 doc_values 를 인덱스 로 사용하지만, text 필드는 doc_values 를 지원하지 않고 fielddata라는 인 메모리 구조의 쿼리 타임을 사용한다고 한다. 이 field data는 디스크의 세그먼트의 역 색인을 읽어 결과를 JVM 힙 메모리에 저장을 하는데 이 비용이 굉장히 커서 기본적으로 false 로 되어있다. 따라서 text 필드로는 정렬을 하기 힘든데, 이 부분을 해결하기 위해선 Multifield 를 사용 하..
[Hive] - Overview Apache Hive 는 SQL 구문으로 쿼리해서 분산 스토리지 데이터셋을 읽고 쓰고 관리 할 수 있도록 지원하는 소프트웨어다 SQL 을 통해 extract/transform/load (ETL) , 데이터 분석 같은 데이터 웨어 하우스 일을 할 수 있게 해준다. Apache HDFS 또는 Apache HBase 같은 다른 데이터 스토리지 시스템에 직접 접근 할 수 있다. Apache Tez, Apache Spark , Map Reduce 를 통해 실행을 쿼리한다. Sub second query 를 Hive LLAP , Apache YARN , Apache Slider 를 통해 검색한다. Hive SQL은 UDF(사용자 정의 함수), UDAF(사용자 정의 에그리게이트) 및 UDTF(사용자 정의 테이블 함수..
Spark - RDD 생성 방법과 동작 과정 Contents RDD 의 생성 방법 RDD의 동작 과정 Resilient Distributed Datasets (RDDs) Spark 는 병렬로 동작할 수 있는 , 결함이 생겨도 복구가 가능한 컬렉션인 RDD 의 개념을 중심으로 한다. RDD 를 생성하는 방법은 2가지가 있다. 1. driver 프로그램에서 기존 컬렉션을 병렬로 만들기 2. HDFS , HBase 같은 공유 파일 시스템에서 데이터셋을 참조 하기 - Parallelized Collections 1. 기존 컬렉션을 병렬로 만들기 기존 컬렉션을 RDD 로 만드는 방법은 JavaSparkContext의 parallelize 메소드를 이용해 생성한다. 컬렉션의 elements 는 병렬로 동작할 수 있는 분산 dataset 을 형성하기 위해 복사..
[보안 하둡] 하둡의 Secure Mode 를 알아보자 Contents Introduction Introduction 오늘은 하둡 보안 모드에서 authentication 설정을 어떻게 하는지 알아보쟈 하둡이 보안 모드로 설정 되었을때 각각의 하둡 서비스와 사용자들은 Kerberos 에 의해서 인증되어야 한다. 보안 모드에서 Hadoop 서비스를 구성하기 전에 Kerberos 와 DNS 에 대한 지식이 필요하다. - 뒤에서 또 알아보도록하자 하둡의 보안 기능은 Authentication Service Level Authorization Authentication for Web Consoles Dagta Confidentiallity 가 있다. Authentication End user Account Service Level Authentication 이 설정..
[elasticSearch] 엘라스틱서치 기본 개념 Contents 엘라스틱 서치 핵심 개념 엘라스틱 서치의 핵심 개념을 알아보자 엘라스틱서치와 같은 도큐먼트 지향 저장소는 데이터의 추상적 개념을 사용한다. 엘라스틱 서치의 핵심 추상화 개념은 인덱스 타입 도큐먼트 클러스터 노드 샤드 및 레플리카 매핑 및 타입 역색인 이 있다. 하나씩 알아보자 인덱스 인덱스는 엘라스틱서치에서 단일 타입의 도큐먼트를 저장하고 관리하는 컨테이너다. 인덱스에서는 단일 타입의 여러 도큐먼트를 가질 수 있다. 이해를 돕자면 , 인덱스는 RDB 에 데이터베이스 스키마와 유사하다고 보면 된다. 타입은 테이블 도큐먼트는 테이블의 레코드다. 하지만 , RDB 의 한 데이터베이스 스키마가 여러 테이블을 가지고 있는것과는 다르게 엘라스틱서치는 단일 인덱스는 단일 타입만을 가지고 있게 된다. ..