일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 제주
- Spring Boot
- spark
- Spring Batch
- apache storm
- 도메인주도설계
- hibernate
- 스프링 배치
- scala
- Java
- Spring XD
- elastic search
- Linux
- Gradle
- docker
- design pattern
- intellij
- Hbase
- nginx
- Spring
- hadoop
- Clean Code
- SBT
- Storm
- Domain Driven Design
- hdfs
- elasticsearch
- Angular2
- 엘라스틱서치
- DDD
- Today
- Total
목록2017/02 (9)
욱'S 노트
연관된 서브프로젝트들을 하나의 빌드로 유지할 수 있다. 각 서브프로젝트들은 자신만의 소스 디렉토리를 가지고 있고 패키징을 수행하면 각각의 jar 파일이 생성된다. 프로젝트는 Project 타입의 lazy 값으로 정의된다. 예를들면 다음과 같다. lazy val util = (project in file("util")) lazy val core = (project in file("core")) val의 이름은 서브 프로젝트의 아이디로 사용된다. 공통 세팅 멀티 프로젝트를 위한 공통 세팅은 아래와 같이 적용할 수 있다. lazy val commonSettings = Seq( organization := "com.example", version := "0.1.0-SNAPSHOT", scalaVersion :=..
라이브러리 디펜던시를 추가하는 방법에는 두가지 방법이 있다. unmanaged dependencies는 라이브러리는 lib 디렉토리에 저장하다. managed dependencies는 build definition에 설정하고 자동으로 리파지토리로부터 다운로드 된다. 대부분의 경우 managed dependencies를 사용하므로 사용법에 대해서 살펴보자. Managed Dependencies sbt에서는 기본적으로 Apache Ivy를 리파지토리로 사용한다. The libraryDependencies key 우리는 librayDependencies key에 디펜던시 리스트 추가함으로써 디펜던시 정의를 할 수 있다. libraryDependencies += groupID % artifactID % revi..
빌드정의 sbt version 빌드에서 사용할 sbt의 버전을 project/build.properties에 명시할 수 있다. sbt.version = 0.13.13 build definition build definition은 build.sbt 파일에 정의된다. 가장 기본적인 정의는 다음과 같다. lazy val root = (project in file(".")) .settings( name := "hello-sbt", organization := "com.example", scalaVersion := "2.12.1", version := "0.1.0-SNAPSHOT" ) 필요한 세팅 값을 아래와 같은 규칙에 따라 세팅한다. 좌측은 키이다. 오퍼레이터 이번 케이스는 := d이다. 우측은 바디라고 불린..
sbt는 스칼라와 자바를 위한 빌드툴이다. 스칼라를 사용하다보면 자주 접하게 되므로 간단한 사용법을 파악해보자. 설치하기 sbt는 이 문서를 작성하는 기준으로 0.3.13이 최신버전이며 jre 1.6이상의 환경을 요구한다. 설치방법은 굉장히 간단하다. 공식사이트에서 zip이나 tgz로 압축된 배포본을 다운로드 받을 수 있다. 로컬로 다운받은 다음 적절한 위치에 압축을 해제하자. 압축을 해제한 후 bin 디렉토리 하위에서 아래와 같은 커맨드를 수행해서 정확히 설치되었는지 여부를 확인해보자. $ sbt sbt-version [info] Set current project to bin (in build file:/Users/devsun/dev/sbt-0.13.13/bin/) [info] 0.13.13 인텔리J..
이번에는 클러스터 모드의 스파크를 기동해보겠다. 먼저 가장 단순한 형태인 StandAlone 클러스터를 구축해보고 클러스터 상에서 스파크 작업을 수행하는 것을 목표로 한다. 다운로드 스파크 공식 사이트의 다운로드 페이지(http://spark.apache.org/downloads.html )에서 적당한 스파크를 버전을 다운로드 받은 후 로컬PC의 적당한 디렉토리에 압축해제를 해보자. $ ls -al total 112 drwxr-xr-x@ 16 devsun staff 544 12 16 11:18 . drwxr-xr-x 36 devsun staff 1224 2 17 10:14 .. -rw-r--r--@ 1 devsun staff 17811 12 16 11:18 LICENSE -rw-r--r--@ 1 devs..
개요 This document gives a short overview of how Spark runs on clusters, to make it easier to understand the components involved. Read through the application submission guide to learn about launching applications on a cluster. 이장에서는 Spark가 클러스터에서 어떻게 동작하는지를 살펴보고 각 컴포넌트들이 어떻게 참여하는지 알아본다. Components 스파크 어플리케이션은 클러스터상의 독립적인 프로세스에서 수행된다. 이때 일련의 프로세스들은 드라이버 프로그램의 SparkContext 객체와 협력하게 된다. 클러스터상의 실행을 위..
스파크에서 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은 프로젝트 명을 의미하고..