일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- Gradle
- spark
- Domain Driven Design
- Linux
- nginx
- hibernate
- Spring Boot
- Spring
- elasticsearch
- Java
- intellij
- 도메인주도설계
- design pattern
- docker
- hadoop
- 엘라스틱서치
- scala
- Clean Code
- Spring Batch
- 제주
- SBT
- elastic search
- Angular2
- apache storm
- DDD
- 스프링 배치
- Spring XD
- Hbase
- Storm
- hdfs
- Today
- Total
욱'S 노트
스파크에서 RDD는 가장 주요한 개념이다. RDD는 병렬로 수행될 수 있는 엘리먼트의 컬렉션이며, fault-tolerant하다. 앞에서 보았듯이 RDD를 생성하는 방법은 두가지이다. 첫번째는 내부의 컬렉션으로 부터 생성하는 방식이며 두번째는 외부의 리소스로부터 생성하는 방법이 있다. 내부컬렉션으로부터 생성 아래와 같이 간단한 프로그램을 작성해보자. object RddCollectionTest { def main(args: Array[String]): Unit = { val sc = new SparkContext(new SparkConf().setAppName("RddCollectionTest").setMaster("local")) val data = Array(1,2,3,4,5) val distData..
Overview 스파크 어플리케이션의 드라이버 프로그램들로 구성된다. 여기서 드라이버 프로그램이란 클러스터상에서 병렬 연산으로 수행되는 사용자 메인 함수를 의미한다.그리고 스파크는 두가지 주요한 추상화를 제공하는데, RDD(Resillent Distributed DataSet)과 공유 변수(Shared variable)이다. RDD는 파티션된 클러스터에 병렬 연산으로 수행될 수 있는 켈렉션이다. RDD는 일반적인 스칼라 컬렉션으로부터 만들어질 수 있고, HDFS와 같은 외부 시스템으로부터 만들어질 수도 있다. RDD는 노드 장애에 대해서 자동으로 복구된다. 스파크 타스크는 기본적으로 클러스터상에서 병렬 수행된다. 이에 변수들은 공유될 필요가 있다. 스파크는 두가지 타입의 공유 변수를 제공한다. 첫번째는 ..
일단 무작정 스파크를 시작해보자. 목표는 빌드환경 구성을 위해서 sbt를 사용할 것이며 텍스트에디터에 개발을 수행할 수 없으니 IntelliJ로 세팅을 하겠다. 1. 인텔리J에서 프로젝트 구성File -> New -> Project 순으로 메뉴를 선택하면 아래와 같은 화면이 나타난다.당연히 프로젝트는 Scala에 SBT를 선택한다. 2. 프로젝트가 구성되면 build.sbt 파일에 다음과 같이 입력한다.name := "spark-test" version := "1.0" scalaVersion := "2.11.7" libraryDependencies += "org.apache.spark" %% "spark-core" % "2.1.0"아직 sbt를 모르지만 간략하게 설명하면 name은 프로젝트 명을 의미하고..
스칼라는 빌트인 패턴 매칭 메커니즘을 제공한다. 다음 예제는 정수 값에 대한 매치를 수행한 결과이다.def getNumberString(number : Int) : String = number match { case 1 => "one" case 2 => "two" case _ => "many" } println(getNumberString(1)) println(getNumberString(2)) println(getNumberString(3))case문들이 있는 블럭에서 정수값을 문자열로 매핑하는 함수를 정의하고 있다. match 키워드는 객체에 대한 함수를 제공하는 편리한 방법이다.다음은 다양한 타입의 패턴에 대응하는 방법이다.def parseNumber(number : Any) : Any = numb..
스칼라는 케이스 클래스 문법을 지원한다. 케이스클래스는 다음과 같은 일반적인 클래스이다.기본적으로 불변이다.패턴 매칭에 따라 분리될 수 있다.레퍼런스 대신 구조적 동일성에 의해 비교된다.간결하게 초기화 되고 사용될 수 있다.예제를 살펴보자. Notification 추상 클래스가 슈퍼클래스와 각 구현 클래스 Email, SMS, VoiceRecording이다.abstract class Notification case class Email(sourceEmail : String, title : String, body : String) extends Notification case class SMS(sourceNumber : String, message : String) extends Notification c..