Development/Spark(4)
-
간단하게 Spark ML Model 로딩하기 (Decision Tree)
Spark ML을 사용하여 간단하게 ML을 비즈니스 로직에서 활용하고 싶을 때가 있다. 그리고 그 비즈니스 로직에서 ML을 여러 개 사용하고 싶을 때도 물론 있다. 하지만 문제는 이때부터 발생한다. Spark ML에는 다양한 ML 기능이 RDD 혹은 DataFrame을 이용할 수 있도록 구현되어 있는데, 이 모델을 저장하고 로딩할 때 기본 라이브러리를 이용하면 각 모델마다 지연시간이 발생한다. load 함수를 호출할 때마다 Spark Task로써 SVMModel, DecisionTreeModel, GradientBoostedTreesModel 등의 모델 로딩이 수행된다. 하지만 이 로딩 과정이라는게 위 언급한 모델에서는 별 것 없다. 결과는 단순히 의사 결정 나무일 뿐이고, GBT 같은 경우는 이 트리가..
2019.08.11 -
Spark Streaming vs Structured Streaming 비교 체험(?)
현재 개발/운영 중인 플랫폼에서는 Spark Streaming을 중심으로 데이터 처리를 진행하고 있다. Spark Streaming은 Micro-batch 방식으로 데이터를 처리하는 RDD 기반 프레임워크인데... 문제는 Catalyst Optimizer와 거리가 먼 RDD 기반이라는 점이다(?) 이에 따라 Spark 2.0 이후 Structured Streaming이 추가었으며, 이제는 Continuous Processing을 제외학곤 [Experimental] 딱지를 지웠다. Structured Streaming is a scalable and fault-tolerant stream processing engine built on the Spark SQL engine. You can express y..
2019.05.12 -
Spark 공부 - Spark Streaming
Spark Streaming Stream 일반적으로 스트림 데이터가 생성되는 시점과 처리되는 시점 사이의 간격이 짧을 수록 좋음 Spark Streaming 데이터의 가치를 유지하기 위해 배치 처리보다 짧은 간격(마이크로 배치)으로 데이터를 처리하는 스파크의 서브 모듈 Receiver Kafka, Flume, Kinesis, File, CustomReceiver 등 Window Operations Window Length와 Sliding Interval로 구성 예) 10초(Sliding Interval)마다 최근 30초(Window Length)동안 수집된 데이터 분석 Configuration spark.streaming.blockInterval Stream을 저장하기 위해 구성하는 Block 생성 주기..
2019.01.24 -
Spark 공부 - 구조, RDD, Storage Level
Spark Components Driver Program main() 함수를 실행하고 SparkContext를 생성하는 프로세스 Cluster Manager Worker Node Executor: 실제 태스크를 수행하는 Worker Node의 프로세스 Cache: RDD를 Cache에 저장하여 이후 데이터 처리 속도를 향상 시킴 Spark Cluster Manager Standalone 기본으로 제공되는 Master Node (Supervise) HA를 위해 Zookeeper를 이용할 수 있음 Hadoop YARN Cluster Manager로 Hadoop의 YARN을 이용함 ‘--master yarn’ 옵션으로 job을 제출함 ApplicationMaster가 할당하는 컨테이너 내에서 Executor가..
2019.01.24