스파크완벽가이드 - 4장 구조적 API 개요
·
DataPipeline/Spark
구조적 API에는 3가지 분산 컬렉션 API가 있음- Dataset- DataFrame- SQL Table & View3가지 핵심 개념- 타입형 / 비타입형 API 개념과 차이점- 핵심용어    ㄴ 카탈리스트 / 카탈로그 / 실행 계획 / 조건절 푸쉬 다운- 스파크가 구조적 API의 데이터 흐름을 해석하고 클러스터에서 실행하는 방식  4.1 DataFrame과 Dataset- DataFrame과 Dataset은 잘 정의된 로우와 컬럼을 가지는 분산 테이블 형태의 컬렉션- 값 없음은 null 로 표시  4.2 스키마- 스키마는 DataFrame의 컬럼명과 데이터 타입을 지정- 스키마는 데이터소스에서 얻거나 (schema on read) 직접 정의- 예제from pyspark.sql.types import ..
스파크완벽가이드 - 2장 스파크 간단히 살펴보기
·
DataPipeline/Spark
2.1 스파크 기본 아키텍처클러스터- 클러스터는 여러 컴퓨터의 자원을 모아 하나의 컴퓨터 처럼 사용- 스파크는 클러스터에서 작업을 조율할 수 있는 역할을 하는 프레임워크 드라이버 프로세스- 클러스터 노드 중 하나에서 실행되며 main() 함수를 실행- 필수적으로 존재 익스큐터 프로세스- 드라이버가 할당한 작업을 수행 후, 드라이버 노드에 보고하는 두가지 역할 수행  모드 실행 예제클러스터 모드 실행 예제from pyspark.sql import SparkSessionspark = SparkSession.builder \ .appName("MySparkApp") \ # 애플리케이션 이름 설정 .master("spark://:") \ # 마스터 노드의 주소 설정 .config("spark..
스파크완벽가이드 - 1장 아파치 스파크란
·
DataPipeline/Spark
1. 스파크 기능 구성2. 컴퓨팅 엔진- 스파크는 저장소 시스템의 데이터를 연산하는 역할을 수행- 영구 저장소 역할은 수행하지 않으며 대신에 AWS S3, Hadoop, 카산드라, 카프카 등의 저장소를 지원 3. 스파크 설치하기# homebrew로 설치 ( MAC )brew install apache-spark# spark 경로 확인brew info apache-spark# spark version 확인spark-submit --version# spark shell 실행 pysparkspark-shell
Pyspark Session
·
DataPipeline/Spark
[ SparkSession ]Spark를 사용하기 위해선 entry point를 제공하는 Spark 객체를 사용해야 한다.보통 SparkContext와 SparkSession은 사용하는데,SparkSession은 Spark 2.0 버전에서 나왔고 spark RDD, DataFrame, DataSet, spark sql 사용이 가능하다. spark-shell에서 자동적으로 SparkSession 객체가 생성되며 spark 변수로 사용할 수 있다. 또한 기존 SparkContext에서 다른 종류의 contexts인 SQLContext, HiveContext와 함께 사용하기도 하였는데, SparkSession은 이를 대체하여 범용성을 가진다.아래 예시를 보자 - SparkContextfrom pyspark i..
Apache Kafka - Docker를 통한 환경 셋팅
·
DataPipeline/Kafka
Kafka 운영시에는 AWS EC2에 설치하거나 온프로미스 서버에 환경셋팅 한다. 최근에는 쿠버네티스를 통해 운영하기도하는데, 로컬에서 테스트 및 이것저것 Toy Project하기에는 도커로 설치하는게 가장 심플하다. 도커 이미지는 bitnami image를 사용한다. confluentinc image도 있지만 bitnami가 pull 횟수가 가장 많다. kafka는 zookeeper 이미지도 설치해야한다. KRaft라고 zookeeper없이 설치하는 방법도 있지만 대부분의 문서가 kafka-zookeeper 한 set으로 설명하고 있고 HBase와 같이 zookeeper와 함께 사용하고 있는 프로그램들이 있기에 익숙해지는 것이 좋다. [ 프로젝트 설정 ] 일단 프로젝트를 만든다. 이 글에선 Pychar..
Prometheus - PromQL 예제 (Prometheus Query Language)
·
DataPipeline/Prometheus
[ Data Types ] String - 문자열 변수 Scalar - 숫자 변수 Instant vector - a set of time series containing a single sample for each time series, all sharing the same timestamp Range vector - a set of time series containing a range of data points over time for each time series [ String ] Example: "this is a string" 'these are unescaped: \n \\ \t' `these are not unescaped: \n ' " \t` [ Scalar ] Examples: 23 -..
Prometheus - 설치
·
DataPipeline/Prometheus
[ 아키텍처 ] 시계열 데이터를 스크래핑하고 저장하는 프로메테우스 메인 서버응용 프로그램 코드 계측을 위한 클라이언트 라이브러리Short-lived Job 지원을 위한 게이트웨이HAProxy, StatsD, Graphite 등과 같은 서비스를 Exporter.Alter Manager다양한 지원 도구   [ 설치 ]Download$ wget https://github.com/prometheus/prometheus/releases/download/v2.32.1/prometheus-2.32.1.linux-amd64.tar.gz$ tar -xvf prometheus-2.32.1.linux-amd64.tar.gz 설정파일 : prometheus.yml global: # 얼마나 자주 scrap할 건지 scrap..
Elasticsearch - index template
·
DataPipeline/Elasticsearch
[ Index template ] 보통 날짜별로 elasticsearch에 index를 생성하여 사용하는데 매번 데이터가 들어올 때 마다 mapping을 통해 field type을 지정하지 않기 위해 Index template를 사용한다. 생성 예시 * 일별로 log-20220101, log-20220101 형식으로 인덱스 생성된다. PUT _template/log_template { "order": 0, "index_patterns": [ "log-20*" ], "settings": { "index": { "number_of_shards": "1", "number_of_replicas": "1", } }, "mappings": { "properties": { "user_id": { "type": "lo..
wave35
'DataPipeline' 카테고리의 글 목록 (6 Page)