'IT Book'에 해당되는 글 8건

(Chapter 1) 08. Who, What :: 2015/01/30 18:30

Who use Spark, and for What?

누가 사용하고 어디에 사용하는가?


Spark cluster computing 위한 범용 framework이기 때문에 넓은 application 사용할 있다. Preface에서 책의 독자로 Data Scientist, Engineer 부류를 제시했다. 부류를 면밀하게 살펴보고 그들이 어떻게 Spark 사용하는지 알아보자. 부류가 사용하는 case 간단하게 정리하자면 Data Science, Data Application으로 분류할 있다.


Data Science Task


Data Science 지난 동안 데이터 분석의 중심부에 위치해 왔다. 하지만, 표준화된 정의가 없기 때문에 여기서는 데이터를 분석하고 모델링하는 작업을 주로 하는 사람들을 Data Scientist라고 한다. Data Scientist SQL, 통계, 미래 예측 모델링 (machine learning), 일반적으로 Python, Matlab, R 같은 약간의 프로그래밍을 경험한 사람들이다. Data Scientist 때때로 Data wrangling이라고 부르는 분석할 있는 이해 가능한 데이터로 형식을 변환하는 기술에 대해서도 어느 정도 경험이 있는 사람들이다.


Data Scientist 어떤 질문에 대한 답을 구하기 위해서, 통찰력을 발견하기 위해서 데이터를 분석하는데 스킬을 사용한다. 종종 특별한 분석을 위해서, 때때로 interactive shell 사용하여 query 결과나, 최소한의 시간으로 구현한 코드의 결과를 본다.


Spark 속도와 simple API 이러한 목적에 빛을 발한다. 그리고 built-in 라이브러리를 통해서 다양한 알고리즘을 적용할 있다. 때로 최초로 사용할 , Data Scientist 작업이 제품화이거나 확장, 어려운 작업이거나 data processing application 튜닝하는 작업일 있다. Data Scientist 초기 연구가 상품 추천 시스템 생성을 이끄는 것일 수도 있다.


Data Processing Applications


Spark 사용하는 다른 경우는 Engineer 관점에서 사용하는 것일 있다. 경우 Data Processing Application 만들기 위해 Spark 사용하는 많은 분야의 소프트웨어 개발자를 생각해 있다. 이런 개발자들은 software engineering 대한 원리를 이해하고 있다. 캡슐화, 인터페이스 설계, OOP 대해서 알고 있을 것이다. 컴퓨터 공학을 전공하고, 소프트웨어 시스템 설계하고 빌드할 있는 능력이 있는 사람들이다.


Engineer 위해서 Spark Cluster상에서 application 병렬화하는 간단한 방법을 제공한다. 분산 프로그래밍에 대한 복잡한 면을 감추고, 네트워크 통신이나 fault tolerance 대해서도 신경 필요가 없다. 모니터링과 검사, application 튜닝을 쉽게 있고, common task 빠르게 구현할 있다. API 모듈화된 특성에 따라 재사용 가능한 라이브러리로 로컬에서 테스트도 쉽게 있다.


Spark 사용자들은 굉장히 다양한 기능들을 제공하기 때문에 data processing application 위해서 쉽게 배우고 사용할 있다.


Spark History


Hadoop 기반 MapReduce interative computing job 비효율적이라는 것을 알고, UC 버클리 RAD lab => AMLLab에서 연구 시작. 처음에는 interactive query, iterative algorithms 빨리 실행하고 in-memory storage 효율적인 fault recovery 지원하자는 아이디어에서 출발함.

처음에는 MapReduce보다 10-20 빠른 성능을 보임. 이후, machine learning 연구자들이 샌프란시스코 만의 교통 상황을 모니터링하고 예측하기 위해 Spark 사용하기 시작함. 지금은 굉장히 빠른 시간 내에 사용하는 조직이 늘었음.

2011년도에 AMLLab 연구자들이 Shark(Hive on Spark), Spark Streaming 개발하기 시작함.


2015/01/30 18:30 2015/01/30 18:30
Trackback Address :: http://www.yongbi.net/trackback/654
[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다
Name
Password
Homepage

Secret

(Chapter 1) 07. Cluster Manager :: 2015/01/30 15:57

Cluster Managers


Spark 하나의 node에서 수천 개의 compute node 효율적으로 성능을 높일 있도록 설계되었다.


Flexibility 극대화하기 위하여 Spark Hadoop YARN, Apache Mesos, Standalone Scheduler 불리는 Spark 자체의 간단한 cluster manager 등과 같은 각양각색의 cluster manager 실행할 있다.


Spark 처음 설치했을 때는, Standalone Scheduler 쉽게 시작하는 방법을 제공한다. 반대로 이미 YARN이나 Mesos Cluster 설치되어 있다면, Spark 이미 설치되어 있는 환경 상에서 application 실행할 있도록 지원한다.

2015/01/30 15:57 2015/01/30 15:57
Trackback Address :: http://www.yongbi.net/trackback/653
[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다
Name
Password
Homepage

Secret

(Chapter 1) 06. GraphX :: 2015/01/30 15:56

GraphX


GraphX Spark 0.9 추가된 graph 다루는 라이브러리이다. 병렬 그래프 분석을 처리한다. Spark Streaming Spark SQL 같이 GraphX RDD API 확장하여 임의의 properties vertex and edge (꼭지점과 ) 추가할 있다.


 GraphX 일반적인 그래프 알고리즘 (PageRank or Triangle Counting) 포함하여 graph 다루는 operation 지원한다.

2015/01/30 15:56 2015/01/30 15:56
Trackback Address :: http://www.yongbi.net/trackback/652
[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다
Name
Password
Homepage

Secret

(Chapter 1) 05. MLlib :: 2015/01/30 15:55

MLlib


Spark는 MLlib라고 불리는 common machine learning (ML) 기능의 라이브러리를 제공한다. MLlib 다양한 타입의 machine learning 알고리즘을 제공한다. (binary classification, regression, clustering,  collaborative filtering, model evaluation, data import)


또한 generic gradient descent optimization algorithm과 같은 lower level ML primitive 제공한다. 모든 method들은 cluster상에서 scale out 있도록 설계 되었다.

2015/01/30 15:55 2015/01/30 15:55
Trackback Address :: http://www.yongbi.net/trackback/651
[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다
Name
Password
Homepage

Secret

(Chapter 1) 04. Spark Streaming :: 2015/01/30 15:54

Spark Streaming


Spark Streaming live stream data 처리를 위한 Spark component이다. 예를 들어 live stream data 서버에 의해 만들어지는 log file이나 서비스의 사용자에 의해 post되는 상태 업데이트 정보를 담고 있는 message queue 의미한다.


Spark Streaming Spark Core RDD API 밀접하게 매칭되는 data stream 다룰 있는 API 제공한다. 프로그래머는 API 통해 메모리나 디스크에 저장된 데이터나 실시간 데이터를 다루는 프로젝트나 application 쉽게 개발할 있다.


Spark Streaming Spark Core에서 제공하는 fault tolerance, throughput,  scalability 동일한 수준으로 제공하도록 설계되어 있다.

2015/01/30 15:54 2015/01/30 15:54
Trackback Address :: http://www.yongbi.net/trackback/650
[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다
Name
Password
Homepage

Secret