빅데이터 개념 부터 시작해서 빅데이터 분석 플랫폼의 출현(hadoop)과 스파크의 등장배경까지 풀어서 작성된 spark 소개 자료 입니다.
스파크는 RDD에 대한 개념과 spark SQL 라이브러리에 대한 자료가 조금 자세히 설명 되어있습니다. (텅스텐엔진, 카탈리스트 옵티마이져에 대한 간략한 설명이 있습니다.)
마지막에는 간단한 설치 및 interactive 분석 실습자료가 포함되어 있습니다.
원본 ppt 를 공개해 두었으니 언제 어디서든 필요에 따라 변형하여 사용하시되 출처만 잘 남겨주시면 감사드리겠습니다.
다른 슬라이드나, 블로그에서 사용된 그림과 참고한 자료들은 작게 출처를 표시해두었는데, 본 ppt의 초기버전을 작성하면서 찾았던 일부 자료들은 출처가 불분명한 상태입니다. 자료 출처를 알려주시면 반영하여 수정해 두도록하겠습니다. (제보 부탁드립니다!)
R은 데이터 분석 분야에서 널리 사용되고 있는 무료 도구입니다. 뛰어난 기능과 확장성 등으로 인해 다양한 분야에서 널리 활용되고 있지만 대용량 데이터를 직접 다루는 데 한계가 있다는 약점이 있었습니다. 스파크는 클러스터 환경에서 동작하는 대용량 분산 데이터 처리 시스템입니다. 뛰어난 성능과 더불어 다양하고 유용한 데이터 처리 함수를 제공하며 R, 하둡, Hive 등 기존 데이터 분석 도구등과 연동하여 사용할 수 있는 다양한 기능을 제공합니다.
이 문서에서는 R과 스파크를 연동하는 방법과 함께 R 스크립트에서 R과 스파크 함수를 함께 사용하는 방법을 소개합니다. 또한 웹 브라우저 기반의 작업 환경을 제공하는 제플린과의 연동을 통해 다수의 사용자가 시간과 공간의 제약 없이 자유롭게 서버에 접속하여 데이터를 분석하고 그 결과를 공유할 수 있는 방법에 대해서도 소개합니다. 스파크와 R, 제플린을 적절히 조합하여 사용한다면 다른 유료 분석 툴 부럽지 않은 분석 환경을 구축할 수 있을 것입니다.
spark 1.6을 기준으로 spark sql에 대해서 개략적으로 설명한 자료입니다. 발표 자료가 친절하지 않으나 한글로 된 자료가 없길래 혹시나 도움 되시는 분들이 있을까 하여 공유합니다.
발표자료 보다는 마지막 페이지의 참고자료들을 읽어보시기를 권장 드립니다.
출처만 남겨주시면 자유롭게 가져가셔서 사용하셔도 무방합니다.
[D2 COMMUNITY] Spark User Group - 머신러닝 인공지능 기법NAVER D2
1) The document discusses various approaches and techniques in artificial intelligence including symbolic logic, planning, expert systems, fuzzy logic, genetic algorithms, Bayesian networks, and more.
2) It provides examples of each technique including using logic to represent arguments, planning routes for a traveling salesman, building financial expert systems, applying fuzzy logic to tipping recommendations, and using Bayesian networks for medical diagnosis.
3) The key challenges of AI discussed are computational complexity, problems with first-order logic like undecidability and uncertainty, and the difficulty of non-symbolic approaches like uncertainty in real-world problems.
빅데이터 개념 부터 시작해서 빅데이터 분석 플랫폼의 출현(hadoop)과 스파크의 등장배경까지 풀어서 작성된 spark 소개 자료 입니다.
스파크는 RDD에 대한 개념과 spark SQL 라이브러리에 대한 자료가 조금 자세히 설명 되어있습니다. (텅스텐엔진, 카탈리스트 옵티마이져에 대한 간략한 설명이 있습니다.)
마지막에는 간단한 설치 및 interactive 분석 실습자료가 포함되어 있습니다.
원본 ppt 를 공개해 두었으니 언제 어디서든 필요에 따라 변형하여 사용하시되 출처만 잘 남겨주시면 감사드리겠습니다.
다른 슬라이드나, 블로그에서 사용된 그림과 참고한 자료들은 작게 출처를 표시해두었는데, 본 ppt의 초기버전을 작성하면서 찾았던 일부 자료들은 출처가 불분명한 상태입니다. 자료 출처를 알려주시면 반영하여 수정해 두도록하겠습니다. (제보 부탁드립니다!)
R은 데이터 분석 분야에서 널리 사용되고 있는 무료 도구입니다. 뛰어난 기능과 확장성 등으로 인해 다양한 분야에서 널리 활용되고 있지만 대용량 데이터를 직접 다루는 데 한계가 있다는 약점이 있었습니다. 스파크는 클러스터 환경에서 동작하는 대용량 분산 데이터 처리 시스템입니다. 뛰어난 성능과 더불어 다양하고 유용한 데이터 처리 함수를 제공하며 R, 하둡, Hive 등 기존 데이터 분석 도구등과 연동하여 사용할 수 있는 다양한 기능을 제공합니다.
이 문서에서는 R과 스파크를 연동하는 방법과 함께 R 스크립트에서 R과 스파크 함수를 함께 사용하는 방법을 소개합니다. 또한 웹 브라우저 기반의 작업 환경을 제공하는 제플린과의 연동을 통해 다수의 사용자가 시간과 공간의 제약 없이 자유롭게 서버에 접속하여 데이터를 분석하고 그 결과를 공유할 수 있는 방법에 대해서도 소개합니다. 스파크와 R, 제플린을 적절히 조합하여 사용한다면 다른 유료 분석 툴 부럽지 않은 분석 환경을 구축할 수 있을 것입니다.
spark 1.6을 기준으로 spark sql에 대해서 개략적으로 설명한 자료입니다. 발표 자료가 친절하지 않으나 한글로 된 자료가 없길래 혹시나 도움 되시는 분들이 있을까 하여 공유합니다.
발표자료 보다는 마지막 페이지의 참고자료들을 읽어보시기를 권장 드립니다.
출처만 남겨주시면 자유롭게 가져가셔서 사용하셔도 무방합니다.
[D2 COMMUNITY] Spark User Group - 머신러닝 인공지능 기법NAVER D2
1) The document discusses various approaches and techniques in artificial intelligence including symbolic logic, planning, expert systems, fuzzy logic, genetic algorithms, Bayesian networks, and more.
2) It provides examples of each technique including using logic to represent arguments, planning routes for a traveling salesman, building financial expert systems, applying fuzzy logic to tipping recommendations, and using Bayesian networks for medical diagnosis.
3) The key challenges of AI discussed are computational complexity, problems with first-order logic like undecidability and uncertainty, and the difficulty of non-symbolic approaches like uncertainty in real-world problems.
Scala, Spring-Boot, JPA를 활용한 웹 애플리케이션 개발 과정에 대해 다룬다. Spring-Boot와 JPA 조합만으로도 생산성 있는 웹 애플리케이션 개발이 가능하다. 이 조합만으로도 충분히 의미가 있지만 여기에 Scala라는 약간은 불편한 듯 보이는 언어를 도입함으로써 얻을 수 있는 즐거움을 공유한다. Spring-Boot + JPA 조합에 Scala를 적용하면서의 좌충우돌 경험담을 전한다.
스프링군살없이세팅하기(The way to setting the Spring framework for web.)EunChul Shin
깔끔하게 스프링 프레임워크 세팅하는 것에 대한 이야기 입니다.
군살없이 프레임워크를 세팅한다는 의미와 이유, 그리고 스프링 기본 설정 및 설정들의 역할에 대해서 정리해 보았습니다.
This presentation is about Spring framework.
I want to talk about the way to setting the spring framework as tidy in this presentation.
MEAN 스택을 사용한 IoT 개발 예제를 설명합니다.
* MEAN 스택 기본 내용 소개
* Node.js와 Express를 활용한 간단한 CRUD 서버 작성 방법(아주 단순하지만 (인증을 제외한 나머지) RESTful 서버의 기본 내용을 구현함)
* MongoDB와 Mongoose ODM를 사용한 영속적인 자료 저장 방법
* AngularJS를 사용한 아주 간단한 모니터링 도구 구현(하지만 의존성 주입, 양방향 자료 결합, 라우팅 활용 방법이 모두 들어 있음)
* 모든 예제는 bitbucket(git 호스팅 서비스)에 공개되어 있음
EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트:: AWS Summit Online Ko...Amazon Web Services Korea
발표영상 다시보기: https://youtu.be/hPvBst9TPlI
S3 기반의 데이터레이크에서 대량의 데이터 변환과 처리에 사용될 수 있는 가장 대표적인 솔루션이 Apache Spark 입니다. EMR 플랫폼 환경에서 쉽게 적용 가능한 Apache Spark의 성능 향상 팁을 소개합니다. 또한 데이터의 레코드 레벨 업데이트, 리소스 확장, 권한 관리 및 모니터링과 같은 다양한 데이터 워크로드 관리 최적화 방안을 함께 살펴봅니다.
4. SparkConf오브젝트로 설정
val conf = new SparkConf()
conf.set("spark.app.name", "My Spark App")
conf.set("spark.master", "local[4]")
conf.set("spark.ui.port", "36000")
val sc = new SparkContext(conf)
7. 실행을 구성하는 것 : Jobs, Tasks, Stages
- RDD시각화
RDD가 자신이 어떤 타입의 관계를 갖고 있는지 보여준다.
각 함수들이 내부적으로 어떤 일을 하는지 알 수 있다.
8. RDD시각화
scala> input.toDebugString
res0: String =
(2) MapPartitionsRDD[1] at textFile at <console>:21 []
| input.txt HadoopRDD[0] at textFile at <console>:21 []
scala> counts.toDebugString
res1: String =
(2) ShuffledRDD[5] at reduceByKey at <console>:25 []
+-(2) MapPartitionsRDD[4] at map at <console>:25 []
| MapPartitionsRDD[3] at map at <console>:23 []
| MapPartitionsRDD[2] at filter at <console>:23 []
| MapPartitionsRDD[1] at textFile at <console>:21 []
| input.txt HadoopRDD[0] at textFile at <console>:21 []
9. RDD 모으기
- collect()함수를 사용해 명시적으로 액션을 실행
- RDD의 모든 파티션이 실체화, 드라이버 프로그램으로 전송
- 파이프라이닝 : 데이터 이동 없이, 하나의 부모로부터 연산가능 할 때,
물리단계에서 합쳐질 수 있음
- 건너뛰기(short-circuit) : 캐싱 작업 건너 뛰기
scala> counts.collect()
res0: Array[(String, Int)] = Array((She,1), (�Perhaps,1), (There,1), (�Papa?,1), (Elsewhere,,1), (As,1), (Fascinus,3), (�Do,
1), (�Good,1), (With,2), (His,2) …..
11. 정보 찾기
- 스파크 웹 UI
웹을 통해서 스파크 어플리케이션 성능을 모니터링 지원
Jobs : 진행 상황과 작업 단계, 테스크 등에 대한 수치
Storage : 영속화된 RDD의 정보
Executors : 어플리케이션에 존재하는 익스큐터 목록
익스큐터가 스고있는 저장 장치의 용량, 스레드덤프 기능 제공
12. 성능에 관한 핵심 고려 사항
- 병렬화 수준
목적 : 스파크의 RDD의 병렬화 수준을 조절하여
너무 작으면 리소스가 놀게 되고, 너무 많으면 오버헤드 발생
- coalesc() : 병렬화 정도를 인자로 줄 수 있다.
- repartition() : 무작위로 섞어 다시 나눠준다
13. 성능에 관한 핵심 고려 사항
- 직렬화 포맷
스파크는 네트워크로 데이터를 전송하거나 디스크에 쓸 때, 객체들을 직렬화 시킴
자바의 내장된 직렬화를 사용
서드파티 Kyro가 더 나은 성능을 제공
14. 메모리 관리
- 메모리를 여러 가지 목적으로 사용된다. 목적에 따라 비율 조절 필요
RDD저장용(60%)
셔플 및 집합 연산 버퍼(20%)
사용자 코드(20%)
- 캐싱 동작에 따른 옵션 지정 가능
- MEMORY_AND_DISK : 메모리, 디스크 저장
- MEMORY_AND_DISK_SER : 모메뢰, 디스크 저장(직렬화된 상태)