DataEngineering
-
Reducer, CombinerDataEngineering 2021. 10. 22. 19:32
Reducer, Combiner 저녁먹으면서 무농과 혜온이 빅데처를 공부하며 얘기한 내용인데 기억이 안나길래 짧게 정리 결론적으로 둘이 하는 일은 결이 같지만 차이점은 Combiner가 Reducer로 Mapper의 output을 넘겨주기 전에 Reduce 작업을 Map 단에서 미리 한다는 것이다. Mapper --------------> Reducer map -> combine shuffle -> reduce shuffling 단계에서의 IO를 최소한으로 줄이고자 locally 할 수 있는 일은 하고 넘기자! 가 목적이다. (combiner가) 따라서 combiner는 “mini-reducer” 라고도 부른다. Reducer에게 Mapper의 output record를 넘겨주기 전에 같은 Key끼리 s..
-
KafkaDataEngineering/Kafka 2021. 9. 10. 09:09
데브원영님의 소금과 설탕같은 강의를 듣고 정리하는 글 Kafka 들어가며 (?) hadoop 의 경우 small file에서의 성능이 안 나오기 때문에 배치로 처리를 하고, 실시간성 데이터같은 stream 처리같은 경우엔 (예를 들어서) fluentd+kafka+spark+nosql db 같은 구성으로 메시지를 처리하게 된다. kafka같은 경우 spark가 어쨌든 저장소가 아니기 때문에 하루면 하루 몇 시간이면 몇 시간 이렇게 들어오는 메시지를 "순차적으로" 저장했다가 spark가 만약 죽거나 메시지 끌어가는 subscriber(kafka에서는 consumer가 되겠지?) 가 죽었을 때 offset을 통해 해당 시점으로 다시 돌아갈 수 있도록 한다. 버퍼 역할을 하는 메시징 큐!! 가 kafka의 특징..
-
Spark RDD, DataFrame, DatasetDataEngineering/Spark 2021. 7. 26. 05:49
Spark 에서 제공하는 데이터 API들 RDD(2011) DataFrame(2013) Dataset(2015) -가장 기본적인 저수준 API -JVM object들의 distribute collection -table join, 최적화 등을 사용자가 직접 정의해야함 -고수준 API -Row object들의 distribute collection -사용자 정의 함수 사용 가능 -schema less -고수준 API -내부적으로는 rows, 외부적으로는 JVM object들의 ,, -사용자가 데이터를 객체화해서 사용할 수 있도록 사용자에게 도메인 객체를 제공 -자바, 스칼라만 가능 -자동으로 schema 가짐 RDD(Resilient Distributed Dataset) [특징] In-memory Comp..
-
Spark IntroDataEngineering/Spark 2021. 7. 26. 05:38
스파크란 뭐고 얘가 나타난 이유가 뭘까?! 먼저 하둡의 mapreduce의 한계를 짚어보면 디스크 IO 에 따른 느린 속도 반복적인 알고리즘(머신러닝 / 그래프&네트워크 분석 등), 대화형 데이터 마이닝 에 비효율적인 직렬화 word count를 생각해보면 한번 배치 처리 해라! 하고 엔터 때리면 user는 가만히 기다리는 것 말고 할 수 있는게 없음 진행되는 동안 쿼리 응답 등 받고싶어! 통신 비용 높음 ; 하둡은 기본적으로 network bottleneck이 잦다고 하다. 메모리를 효율적으로 쓰지 못함 맵리듀스 프로그램으로는 구현이 어려움 (실제로 하둡에서의 Mapreduce javac 소스코드랑 스파크에서 구현하는 소스코드 비교해보면 스파크로 개발하는게 훨씬 쉬워진 것을 볼 수 있음) 그니까 데이터..