빅데이터 개념 부터 시작해서 빅데이터 분석 플랫폼의 출현(hadoop)과 스파크의 등장배경까지 풀어서 작성된 spark 소개 자료 입니다.
스파크는 RDD에 대한 개념과 spark SQL 라이브러리에 대한 자료가 조금 자세히 설명 되어있습니다. (텅스텐엔진, 카탈리스트 옵티마이져에 대한 간략한 설명이 있습니다.)
마지막에는 간단한 설치 및 interactive 분석 실습자료가 포함되어 있습니다.
원본 ppt 를 공개해 두었으니 언제 어디서든 필요에 따라 변형하여 사용하시되 출처만 잘 남겨주시면 감사드리겠습니다.
다른 슬라이드나, 블로그에서 사용된 그림과 참고한 자료들은 작게 출처를 표시해두었는데, 본 ppt의 초기버전을 작성하면서 찾았던 일부 자료들은 출처가 불분명한 상태입니다. 자료 출처를 알려주시면 반영하여 수정해 두도록하겠습니다. (제보 부탁드립니다!)
빅데이터 개념 부터 시작해서 빅데이터 분석 플랫폼의 출현(hadoop)과 스파크의 등장배경까지 풀어서 작성된 spark 소개 자료 입니다.
스파크는 RDD에 대한 개념과 spark SQL 라이브러리에 대한 자료가 조금 자세히 설명 되어있습니다. (텅스텐엔진, 카탈리스트 옵티마이져에 대한 간략한 설명이 있습니다.)
마지막에는 간단한 설치 및 interactive 분석 실습자료가 포함되어 있습니다.
원본 ppt 를 공개해 두었으니 언제 어디서든 필요에 따라 변형하여 사용하시되 출처만 잘 남겨주시면 감사드리겠습니다.
다른 슬라이드나, 블로그에서 사용된 그림과 참고한 자료들은 작게 출처를 표시해두었는데, 본 ppt의 초기버전을 작성하면서 찾았던 일부 자료들은 출처가 불분명한 상태입니다. 자료 출처를 알려주시면 반영하여 수정해 두도록하겠습니다. (제보 부탁드립니다!)
spark 1.6을 기준으로 spark sql에 대해서 개략적으로 설명한 자료입니다. 발표 자료가 친절하지 않으나 한글로 된 자료가 없길래 혹시나 도움 되시는 분들이 있을까 하여 공유합니다.
발표자료 보다는 마지막 페이지의 참고자료들을 읽어보시기를 권장 드립니다.
출처만 남겨주시면 자유롭게 가져가셔서 사용하셔도 무방합니다.
Spark machine learning & deep learninghoondong kim
Spark Machine Learning and Deep Learning Deep Dive.
Scenarios that use Spark hybrid with other data analytics tools (MS R on Spark, Tensorflow(keras) with Spark, Scikit-learn with Spark, etc)
R은 데이터 분석 분야에서 널리 사용되고 있는 무료 도구입니다. 뛰어난 기능과 확장성 등으로 인해 다양한 분야에서 널리 활용되고 있지만 대용량 데이터를 직접 다루는 데 한계가 있다는 약점이 있었습니다. 스파크는 클러스터 환경에서 동작하는 대용량 분산 데이터 처리 시스템입니다. 뛰어난 성능과 더불어 다양하고 유용한 데이터 처리 함수를 제공하며 R, 하둡, Hive 등 기존 데이터 분석 도구등과 연동하여 사용할 수 있는 다양한 기능을 제공합니다.
이 문서에서는 R과 스파크를 연동하는 방법과 함께 R 스크립트에서 R과 스파크 함수를 함께 사용하는 방법을 소개합니다. 또한 웹 브라우저 기반의 작업 환경을 제공하는 제플린과의 연동을 통해 다수의 사용자가 시간과 공간의 제약 없이 자유롭게 서버에 접속하여 데이터를 분석하고 그 결과를 공유할 수 있는 방법에 대해서도 소개합니다. 스파크와 R, 제플린을 적절히 조합하여 사용한다면 다른 유료 분석 툴 부럽지 않은 분석 환경을 구축할 수 있을 것입니다.
빅데이터 기술의 소프트웨어 공학 적용
1. 빅데이터 기술의 활용 사례 - 빅데이터 기술은 이미 많은 적용 사례를 가지고 있고, IoT 기술과 더불어 일상의 기술이 되어 가고 있다 (Pervasive & Invisible Analytics).
2. Spark 플랫폼 - 이전에 Hadoop으로 대표되는 빅데이터의 분산 처리 기술은 계속 발전하고 있고, Spark는 메모리 기반 데이터 처리로 기존 대비 성능을 10~100배 개선하였다. 특히, Spark는 Scala라는 함수형 언어로 구현되었고, 이전에 Java 기반의 빅데이터 처리 코드를 보다 명료하고 Compact하게 구현할 수 있다. 데이터 분석에는 Imperative 언어보다 함수형 언어가 보다 적합하다.
3. 소프트웨어 공학에서의 데이터 분석 사례 - 최근 Software Analytics, Repository Mining 등 데이터 분석 사례들이 있고, 최근 GitHub 이나 StackOverflow 분석과 같은 빅데이터 분석 연구들이 진행되고 있다.
4. Spark를 활용한 Word Count 예
5. Big Data Software Engineering - 큰 데이터 처리 외에도, 실시간 데이터 처리 (Velocity), 다양한 데이터 처리 (Variety) 부분에도 소프트웨어 공학 적용이 필요하다. 또한, Big Data Software를 Engineering하는 부분에도 관심이 필요하다. Big Data 분석 코드 역시 SE의 대상으로 바라보고, Test Driven Dev, Agile Methodology와 같은 개발 방법의 적용을 살펴볼 필요가 있다.
마지막으로, 현재 빅데이터 기술에 대한 진입 장벽은 많이 낮아졌고, 사용 가능한 오픈소스들이 많다. 소프트웨어 공학자라면 빅데이터 분석을 직접 시도해 볼 필요가 있고, 특히, Spark-Scala는 향 후 더욱 발전 확대될 기술이다.
spark 1.6을 기준으로 spark sql에 대해서 개략적으로 설명한 자료입니다. 발표 자료가 친절하지 않으나 한글로 된 자료가 없길래 혹시나 도움 되시는 분들이 있을까 하여 공유합니다.
발표자료 보다는 마지막 페이지의 참고자료들을 읽어보시기를 권장 드립니다.
출처만 남겨주시면 자유롭게 가져가셔서 사용하셔도 무방합니다.
Spark machine learning & deep learninghoondong kim
Spark Machine Learning and Deep Learning Deep Dive.
Scenarios that use Spark hybrid with other data analytics tools (MS R on Spark, Tensorflow(keras) with Spark, Scikit-learn with Spark, etc)
R은 데이터 분석 분야에서 널리 사용되고 있는 무료 도구입니다. 뛰어난 기능과 확장성 등으로 인해 다양한 분야에서 널리 활용되고 있지만 대용량 데이터를 직접 다루는 데 한계가 있다는 약점이 있었습니다. 스파크는 클러스터 환경에서 동작하는 대용량 분산 데이터 처리 시스템입니다. 뛰어난 성능과 더불어 다양하고 유용한 데이터 처리 함수를 제공하며 R, 하둡, Hive 등 기존 데이터 분석 도구등과 연동하여 사용할 수 있는 다양한 기능을 제공합니다.
이 문서에서는 R과 스파크를 연동하는 방법과 함께 R 스크립트에서 R과 스파크 함수를 함께 사용하는 방법을 소개합니다. 또한 웹 브라우저 기반의 작업 환경을 제공하는 제플린과의 연동을 통해 다수의 사용자가 시간과 공간의 제약 없이 자유롭게 서버에 접속하여 데이터를 분석하고 그 결과를 공유할 수 있는 방법에 대해서도 소개합니다. 스파크와 R, 제플린을 적절히 조합하여 사용한다면 다른 유료 분석 툴 부럽지 않은 분석 환경을 구축할 수 있을 것입니다.
빅데이터 기술의 소프트웨어 공학 적용
1. 빅데이터 기술의 활용 사례 - 빅데이터 기술은 이미 많은 적용 사례를 가지고 있고, IoT 기술과 더불어 일상의 기술이 되어 가고 있다 (Pervasive & Invisible Analytics).
2. Spark 플랫폼 - 이전에 Hadoop으로 대표되는 빅데이터의 분산 처리 기술은 계속 발전하고 있고, Spark는 메모리 기반 데이터 처리로 기존 대비 성능을 10~100배 개선하였다. 특히, Spark는 Scala라는 함수형 언어로 구현되었고, 이전에 Java 기반의 빅데이터 처리 코드를 보다 명료하고 Compact하게 구현할 수 있다. 데이터 분석에는 Imperative 언어보다 함수형 언어가 보다 적합하다.
3. 소프트웨어 공학에서의 데이터 분석 사례 - 최근 Software Analytics, Repository Mining 등 데이터 분석 사례들이 있고, 최근 GitHub 이나 StackOverflow 분석과 같은 빅데이터 분석 연구들이 진행되고 있다.
4. Spark를 활용한 Word Count 예
5. Big Data Software Engineering - 큰 데이터 처리 외에도, 실시간 데이터 처리 (Velocity), 다양한 데이터 처리 (Variety) 부분에도 소프트웨어 공학 적용이 필요하다. 또한, Big Data Software를 Engineering하는 부분에도 관심이 필요하다. Big Data 분석 코드 역시 SE의 대상으로 바라보고, Test Driven Dev, Agile Methodology와 같은 개발 방법의 적용을 살펴볼 필요가 있다.
마지막으로, 현재 빅데이터 기술에 대한 진입 장벽은 많이 낮아졌고, 사용 가능한 오픈소스들이 많다. 소프트웨어 공학자라면 빅데이터 분석을 직접 시도해 볼 필요가 있고, 특히, Spark-Scala는 향 후 더욱 발전 확대될 기술이다.
Vectorized Processing in a Nutshell. (in Korean)
Presented by Hyoungjun Kim, Gruter CTO and Apache Tajo committer, at DeView 2014, Sep. 30 Seoul Korea.
I will make this presentation for seminar of NIPA
For more information of the seminar, please go to http://www.software.kr/user/seminar.mbs?id=swkr_050102000000&command=view&idx=376830
3. -2-
¢ Apache Spark?
• Cluster computing platform designed to be fast and general-purpose
• Speed : RDD라는 방식을 통해 메모리를 사용을 극대화하여 interactive, streaming이
빠르게 처리
• Generality : 분산처리, 배치처리, interactive, streaming을 모두 같은 엔진위에서 처
리하도록 하며 각각의 작업의 연계가 쉽도록 되어 있음
• In addition : Python, Java, Scala + SQL + libraries
• 설계목표
• Low Latency Query -> Interactive
• Low Latency queries on live data -> Streaming
• Sophisticated data processing -> Machine Learning…
4. -3-
¢ Scala로 개발시 REPL이 제공되어 코딩을 하면서 실행 가능
¢ 코드가 간단함
Ex) (1 to 100 by 2).reduce((x, y) => x + y)
1부터 100까지 2단계 건너뛰면서 sum
Java RDD보다 code가 단순하여 유지보수하기 쉬움
val sqlContext = new SQLContext(ctx)
import sqlContext.implicits._
val lines = ctx.textFile(fileName, 256)
val data: RDD[GeoData] = lines2.map(_.toString().split(",")).map(
s => {
val env = GWUtil.decodeEnvelope(s(1))
GeoData(env.getMinX(), env.getMaxX(), env.getMinY(),env.getMaxY(), s(2))
}).cache()
data.count
6. -5-
0.0
50.0
100.0
150.0
200.0
250.0
1.1 km2 11 km2 40.1
km2
222.4
km2
600.4
km2
쿼리 영역에 따른 HDFS 검색 속도
HDFS 연속지적
HDFS 연속지적*2
HDFS 연속지적 *4
0.0
20.0
40.0
60.0
80.0
1.1
km2
11
km2
40.1
km2
222.4
km2
600.4
km2
쿼리 영역에 따른 RDD 검색
속도
RDD 연속지적
RDD 연속지적*2
RDD 연속지적 *4
0.0
50.0
100.0
150.0
200.0
250.0
연속지적 연속지적*2 연속지적 *4
HDFS
자료양에 따른 HDFS 검색 속도
1.1 km2
11 km2
40.1 km2
222.4 km2
600.4 km2
0.0
10.0
20.0
30.0
40.0
50.0
60.0
70.0
80.0
연속지적 연속지적*2 연속지적 *4
RDD
자료양에 따른 RDD 검색 속도
1.1 km2
11 km2
40.1 km2
222.4 km2
600.4 km2
7. -6-
0.0
5.0
10.0
15.0
20.0
25.0
30.0
35.0
40.0
45.0
1.1 km2 11 km2 40.1 km2 222.4 km2 600.4 km2
메모리 크기가 충분한 경우 비교
HDFS 연속지적
RDD 연속지적
0.0
50.0
100.0
150.0
200.0
250.0
1.1 km2 11 km2 40.1 km2 222.4
km2
600.4
km2
메모리 크기가 부족한 경우 비교
메모리가 부족시 성능이 저하됨
사용 Data Size : 16G, 32G, 64G
9. 더블루션
분산파일 시스템
스케줄링 및 리소스 관리 HDFS
분산처리 엔진
Pax Cache Manager
(remote + in-line)
Pax Data Access
(Pax Data Library)
Pax Compiler
Pax Requests
(view, histograms,
cluster, relationships)
Pax RDDs
(projection, filter,
co group hash joins )
Pax AnswerSet Manager
ODBC, JDBC, Web services 등
IntelliFusion™ 기반의 병렬 인 메모리 파이프라인 형 Data Prep 엔진
Data Manager Script Manager Semantic Relationships
Projects Users Tenants
Data Preparation Application 웹 서비스
연결 및 API 도구
Multi-user aware, HTML5 & multi-device ready, Data Driven Design, 등…
UI 부분
YARN
타사 Architecture
11. 더블루션
빅데이터 기술 동향
연도
시장규모
(억원)
주요 시장 동향
2015 2,623
•Bigdata 시장 활성화를 위한 정부 투자 규모가 698억 원으로 증가
•기업 스스로의 의지에 기반한 Bigdata 투자는 여전히 소극적이나 이전 연도와 비교하여 활용 건
수가 확대되고 관심도 또한 증가세
•2014~2015년은 수요(고객)자들의 빅데이터 유용성 인식의 확대, 파일럿 프로젝트 확대, DW/BI
업무 고도화, 자사와 관련하여 유관 사례 스터디 및 참조 등이 나타나는 시기
2016 3,432
•Bigdata 활용에 대한 파일럿 프로젝트가 마무리되면서, Bigdata 분석 시스템 구축이 확대될 전
망
•IoT 및 Bigdata 활용, 성공 사례가 나타나고 데이터 매쉬업이 활발해지면서 Bigdata 관련 투자
또한 활기를 띨 것으로 전망
•업종별 리더십을 가진 기업의 활용 사례가 하위 경쟁 업체의 투자를 이끌어낼 것으로 전망
•Bigdata 플랫폼, 시스템 구축뿐만 아니라 Bigdata 서비스도 활성화 될 것으로 예상
2017 4,672
2018 6,497
•다양한 분석 알고리즘 및 업무 적용사례가 중소 기업의 도입을 견인할 것으로 예상
•데이터 거래, 데이터 매쉬업이 보다 활발해지면서 데이터 분석의 핵심은 빅데이터 기반의 분석
기술로 변화할 것으로 예측
[자료 : ‘15 빅데이터 시장조사, KRG]
12. 더블루션
¢ 국내
¤ RDBMS 의 교체 수준에서 Hadoop적용
¤ 로그 및 데이터 수집
¤ 다양한 분야로의 데이터 수집
¢ 해외
¤ ML 적용으로 Business Modeling
¤ Etc
¢ 향후
¤ 수집된 데이터를 분석하는 쪽으로 진행 예상됨
¤ 이를 위해 ML 적용이 필수적이 됨
¤ 데이터 수집은 일정 시간이 지나면 일반화되어 기술적인 우위가 무의미해짐
빅데이터 기술 동향
13. 더블루션
수집
분석 Viewer
Apache Flume
Apache Kafka
Apache Storm
Logstash
SparkStreaming
HDFS
NoSQL
MongoDB
Apache Arrow
Apache Ignite
Hadoop MR
Hadoop Mahout
Spark MR
Spark GraphX
Spark MLlib
SparkR
ElasticSearch
DataFlow
ML Lib
- tensorflow
- caffe, scikit etc
Web
- D3.js
- JavaScript 기반 기술
Kibana
저장 Hive
SparkSQL
HBase
SQL
빅데이터 tool 기능별 분류
15. 더블루션
¢ Columnar Search
¤ RDD내 빠른 검색을 위한 column 별 search
¤ 데이터 자료 구조
Row 단위로 저장되는 자료 구조에서 Column단위로 호출할 수 있는 자료 구조
¢ Machine Learning
¤ Data 분석을 위한 ML 적용
¤ ML Library를 개발하는 것이 아닌 ML Library 사용
¤ Column간 Join, Column data clustering
Spark 적용시 필히 고려해야 할 사항
17. -16-
¢ 연속지적 : 약 3800만건, 16GB, Polygon
¢ 서울 지역 건물 레이어 : 약 66만건, 170MB , Polygon
¢ 전국 도시지역 : 약 53000건, 200MB , Polygon
¢ 전국 직장인구 : 약 42만건, 120MB, Point
¢ 서울 지하철역 : 286건, Point
¢ 서울 지역 읍면동 행정 경계 : 467건 , 2MB , Polygon
¢ 임의 행정 경계 : 서울시 도심 읍면동 경계 - 98건 , Polygon
19. -18-
입력데이터
서울 전체 지하철역 286건, Point (stn_11_5186)
전국 연속지적 약 3800만건, 16GB, Polygon (cbnd_5186)
기타파라미터 거리값 50m
명령어
Hadoop
hadoop jar distance.jar IP_ADDR port 0 stn_11_5186
cbnd_5186 50 Result_Layer
Spark
Distance(ctx, sqlCxt, "spark_res", "stn_11_5186",
"cbnd_5186", "distance_20151015", 50, 30000)
기준피처로부터 거리지정하여 포함된 피처를 찾거나 수량을 산출
대상레이어 추출할 대상 레이어
기준레이어 기준이 되는 레이어
거리값(m) 검색영역
결과레이어 결과가 저장될 레이어
Spatial Hadoop Spark MR 성능 향상율 (%)
104초
공간Index 사용 --- ---
공간Index 비사용 95(65/10/20) 28%
20. -19-
기준피처로 부터 최소영역을 추출
입력 값
대상레이어 분석할 대상 레이어
결과레이어 결과가 저장될 레이어
입력데이터 전국 직장인구 데이터 약 42만건, 120MB, Point (work)
기타파라미터 없음
명령어
Hadoop
hadoop jar convexhull.jar IP_ADDR port
user/admin/temp work Result_Layer
Spark
ConvexHull(ctx, sqlCxt, "spark_res", "work",
"convexhull_work_20151014")
Spatial Hadoop Spark MR 성능 향상율 (%)
27초
공간Index 사용 --- ---
공간Index 비사용 3.8(1.4/2/0.4) 87%
21. -20-
기준피처로 부터 비교 영역만큼 잘라 추출
입력 값
대상레이어 추출할 대상 레이어
기준레이어(면) 추출 영역 레이어
결과레이어 결과가 저장될 레이어
입력데이터
전국 연속지적 약 3800만건, 16GB, Polygon (cbnd_5186)
전국 도시지역 53000건, 200MB Polygon (metro_5186)
기타파라미터 없음
명령어
Hadoop
hadoop jar clip.jar IP_ADDR port 0 cbnd_5186
metro_5186 result_layer 30000
Spark
Clip(ctx, sqlCxt, "spark_res", "cbnd_5186",
"metro_5186", "clip_2015_1015", 30000, "", "")
Spatial Hadoop Spark MR 성능 향상율 (%)
55분15초
공간Index 사용 --- ---
공간Index 비사용 --- ---
22. -21-
기준피처로 부터 비교 피처와의 교집합 영역을 추출
대상레이어 추출할 대상 레이어
기준레이어 교집합 비교 레이어
결과레이어 결과가 저장될 레이어
입력데이터
전국 연속지적 약 3800만건, 16GB, Polygon (cbnd_5186)
임의의 서울 도심 지역 98건 (emd_11part_5186)
기타파라미터 없음
명령어
Hadoop
hadoop jar intersection.jar IP_ADDR port 0
emd_11part_5186 cbnd_5186 result_layer 30000
Spark
Intersection(ctx, sqlCxt, "spark_res",
"emd_11part_5186", "cbnd_5186",
"intersects_2015_1015", 30000)
Spatial Hadoop Spark MR 성능 향상율 (%)
2분24초
공간Index 사용 1분 35초 34%
공간Index 비사용 108(54/60/1) 33%
23. -22-
두 피처의 특성들 중 공간관계에 따라 다른 특성을 결합
대상레이어 기본적으로 추출할 레이어
기준레이어 특성을 가져올 레이어
합계여부 조인레이어에서 합계를 계산할 컬럼
조인방법 - IsIntersects(교차), - WithIn(포함)
조인속성출력 조인입력레이어의 속성 컬럼 처리 방법
- 0: 출력하지않음
- 1: 조인입력레이어의 스키마를 출력(기본값)
거리값(m) 조인할 영역 지정
결과레이어 결과가 저장될 레이어
입력데이터
서울지역 읍면동 행정 경계 467건, Polygon (emd_11_5186)
서울지역 건물 레이어 약 66만건, 170MB, Polygon (building_11_5186)
기타파라미터
조인 방법 : IsIntersects(교차)
조인 속성 출력 : 1 , 거리값 : 0m
명령어
Hadoop
hadoop jar join.jar IP_ADDR port 0 emd_11_5186
building_11_5186 result_layer 30000 1 0 0
Spark
SpatialJoin(ctx, sqlCxt, "spark_res", "emd_11_5186",
"building_11_5186", "spatial_join_2015_1013", 3000, true,
“0", 0, "")
Spatial Hadoop Spark MR 성능 향상율 (%)
59초
공간Index 사용 5분 15초(개선중) -430%
공간Index 비사용 52초(4/47/1) 13%
24. -23-
입력한 피처로부터 일정한 거리의 영역을 추출
대상레이어 분석대상레이어
거리값(m) 버퍼영역
일반화여부 일반화여부
결과레이어 결과가 저장될 레이어
입력데이터 서울지역 건물 레이어 약 66만건, 170MB, Polygon (building_11_5186)
기타파라미터 거리값 : 50m , 일반화 여부 : 일반화 하지 않음 (No dissolve)
명령어
Hadoop
hadoop jar buffer.jar IP_ADDR port 0 building_11_5186
result_layer 50 0
Spark
Buffer(ctx, sqlCxt, "spark_res", "building_11_5186",
"buffer_20151013", 50, 0)
Spatial Hadoop Spark MR 성능 향상율 (%)
107(40/67)초
공간Index 사용 --- ---
공간Index 비사용 16(5/0/11) 87%
25. -24-
지정한 속성필드에 따라 같은 속성의 피처를 하나의 피처로 합치고 속성값을
집계
대상레이어 분석대상레이어
일반화속성 일반화할 컬럼
(‘@all’ 입력 시 전체피처를 일반화)
결과레이어 결과가 저장될 레이어
입력데이터 전국 연속지적 약 3800만건, 16GB, Polygon (cbnd_5186)
기타파라미터 일반화 속성 -> innb:5 (innb 컬럼중 5자리만 사용)
명령어
Hadoop
hadoop jar dissolve.jar IP_ADDR port 0 cbnd_5186
u_dissolve_cbnd_5186_2015_1015 innb:5
Spark
Dissolve(ctx, sqlCxt, "spark_res", "cbnd_5186",
"dissolve_2015_1015", "innb:5", "")
Spatial Hadoop Spark MR 성능 향상율 (%)
24분48초
(1488)
공간Index 사용 --- ---
공간Index 비사용 60/1384/1320 4%
26. -25-
점이 집중되어 있는 지역 표출, 어떤 현상이 알려진 수량을 사용하여 각 위치와 측정된
양의 공간관계를 표시
대상레이어 분석할 대상 레이어
개체수컬럼 분석할 개체수컬럼을 지정
거리값(m) 처리할 피처를 기준으로 영향을 미치는 거리 영역
셀크기 분석결과의 포인트간의 간격
결과레이어 결과가 저장될 레이어
입력데이터 전국 직장인구 데이터 약 42만건, 120MB, Point (work)
기타파라미터 개체수 컬럼 : pop 거리값 1000m, 셀크기 100m
명령어
Hadoop
hadoop jar dencity.jar IP_ADDR port 0 work 1000 100
pop 0 Result_Layer
Spark
Density(ctx, sqlCxt, "spark_res", "work", 1000, 100,
"pop", 0, "density_2015_1013")
Spatial Hadoop Spark MR 성능 향상율 (%)
133초
(54/79)
공간Index 사용 --- ---
공간Index 비사용 68(9/48/11) 49%
27. -26-
같은 값이 있는 피처를 분석하여 높은값(핫스팟)과 낮은값(콜드팟)의 통계적으로 특별
한지점을 분석
대상레이어(점) 분석할 대상 레이어
대상컬럼 분석할 값을 가진 컬럼명 (반드시 Integer, Double 속성의 컬럼)
가중치계산 거리 가중치 계산 방법
- FIXED_DISTANCE_BAND
- INVERSE_DISTANCE
거리계산 거리 계산 방법
- EUCLIDIAN_DISTANCE(기본값)
- MANHATTAN_DISTANCE
거리값(m) 거리값
결과레이어 결과가 저장될 레이어
Spatial Hadoop Spark MR 성능 향상율 (%)
133초
(173/79)
공간Index 사용 --- ---
공간Index 비사용 64(2/62/1) 63%
입력데이터 전국 직장인구 데이터 약 42만건, 120MB, Point (work)
기타파라미터
대상컬럼 : pop, 가중치계산 : FIXED_DISTANCE_BAND
거리계산 : EUCLIDIAN_DISTANCE , 거리값 : 500m
명령어
Hadoop
hadoop jar hotspot.jar IP_ADDR port 0 work 500 pop
30000 u_hotspot_20151105 0
Spark
Hotspot(ctx, sqlCxt, "spark_res", "work", 500, "pop", 30000,
0, 0, "hotspot_2015_1105“)
28. -27-
인접한 피처들의 유사성 측정
대상레이어(점) 분석할 대상 레이어
대상컬럼 분석할 값을 가진 컬럼명 (반드시 Integer, Double 속성의 컬럼)
가중치계산 거리 가중치 계산 방법
- FIXED_DISTANCE_BAND
- INVERSE_DISTANCE
- INVERSE_DISTANCE_SQUARED
거리계산 거리 계산 방법
- EUCLIDIAN_DISTANCE(기본값)
- MANHATTAN_DISTANCE
거리값(m) 거리값
결과레이어 결과가 저장될 레이어
Spatial Hadoop Spark MR 성능 향상율 (%)
162초
공간Index 사용 --- ---
공간Index 비사용 56(3/53/0) 65%
입력데이터 전국 직장인구 데이터 약 42만건, 120MB, Point (work)
기타파라미터
대상컬럼 : pop, 가중치계산 : FIXED_DISTANCE_BAND
거리계산 : EUCLIDIAN_DISTANCE , 거리값 : 30m
명령어
Hadoop
hadoop jar autoc.jar IP_ADDR port 0 work
u_autocorrelation_20151105 30 pop 30000 0
Spark
Hotspot(ctx, sqlCxt, "spark_res", "work",
"autocorrelation_2015_1105", 30, "pop", 30000, 0, 0)
29. 더블루션
¢ 기존 Hadoop으로 구현된 System의 속도 개선을 위해 Spark을 도입
메모리에 되어서 처리되어 빠름
100배 (메모리), 10배 (디스크) – Spark Homepage
질문 : 프로젝트에 spark 를 도입했던 이유
30. 더블루션
HDFS
Spark 1.5.2
Spatial Library
External Interface
Third Part Library
Query
MR lib (distance, … etc)
Geo Library
Common
¢ Hadoop Base에서 연산만 Spark을 이용함
¢ S/W Architecture
프로젝트에 적용된 spark 의 아키텍처는 어떤 형태이며 수집/적재/처리에 있어서
기존 Hadoop Base 의 아키텍처와 어떤 차이점이 있는지?
31. 더블루션
¢ GIS 기반의 솔루션이라서 배치성 수집.
¢ 실시간 수집을 할 수 없는 상황이었음
원천 데이터 수집 : 배치 성 수집 또는 실시간 수집 둘 중 어떤 것을 사용했는지?
33. 더블루션
¢ 근본적인 해결책 없음
¢ Hadoop은 제일 작은 파일 size의 Default가 128M
¢ 값을 조정하면 남는 공간 확보되나 MR시 부하 증가함
¢ 작은 파일을 만들지 않아야 합니다.
¢ 큰 파일은 HDFS, 작은 파일은 Memory
- Spark에서는 Broadcast로 각 Job별로 공유해서 사용함
Spark에서는 외부 배포를 위해서만 파일로 저장하고 항상 메모리에 data가
있음
작은 HDFS 파일 처리
34. 더블루션
¢ Spark에서 oozie를 사용하지 않고 모듈별로 작업을 함
¢ 관련 Scala Class를 만들고 이를 한 곳에서 호출하면 사용함
¢ Scala Coding으로 처리함
Job Batch 처리