반응형

전체보기 359

Spark - RDD

RDD란? 분산되어 존재하는 데이터 요소들의 모임이라고 생각하시면 됩니다. RDD는 java의 String처럼 변경이 불가능한 객체(immutable)의 집합으로 각각의 RDD는 여러개의 파티션으로 분리가 됩니다. 변경을 하기 위해서는 새로운 RDD를 만들거나, 존재하는 RDD를 변형, 결과 계산을 위해 RDD에서 연산을 호출하여 생성을 해야 합니다. Spark는 자동으로 RDD에 있는 데이터들을 클러스터에 분배, 수행하는 연산들을 병렬화 합니다. Spark는 RDD를 lazy evaluation으로 액션을 사용하는 시점에서 처리하기 때문에, 구현할때는 transformation과 action의 operation을 확실히 이해하고 있어야 결과를 받아보는데 효율적으로 구현이 가능합니다. 예를 들어 한 라인..

빅데이터/Spark 2016.06.16

평균, 표준편차, 분산에 대한 개념

평균, 표준편차, 분산에 대한 개념 평균 평균은 모든 데이터의 값을 더하고, 데이터의 개수로 나눈 값이다. 중심성향에 대한 추정량을 계산할때 사용한다. 표준편차와 분산 표준편차와 분산을 이해하기전에 편차라는 개념을 알아야 한다. 편차는 하나의 데이터 값이 평균에서 얼마나 떨어져있는지에 대한 값이다. 예를들어 데이터의 평균이 3인 데이터가 있을때, 데이터의 값이 6이라고 하면 편차는 3이다. 하나의 데이터가 아니라, 여러개의 데이터에서 얼마나 떨어져있는지에 대한 값을 계산할때 편차의 합을 하게 되면 편차는 음수와, 양수의 값을 갖을 수 있기때문에 평균값에서 실제 값이 얼마나 오류가 있는지 판단하기 위해서는 편차들의 합을 사용할 수 없다. 그래서 편차들의 합을 양수화 하기 위해 제곱을 사용한다. 편차들의 제..

통계학 2016.06.15

[Git] Github 원격 저장소(Remote Repository) 연결 및 반영(Push)하기

Remote Control 로컬(local)의 저장소(repository)를 원격(remote)저장소에 연결하고, 로컬 저장소에 변경된 내용을 원격 저장소에 반영(push)하는 방법에 대해서 설명을 하겠습니다.원격(Remote)? 로컬에서 혼자 커밋하면서 사용하면, 내 피시에만 나의 커밋(commit) 기록이 남습니다. 원격저장소에 로컬에 있는 프로젝트를 반영하기 위해 push를 합니다. push를 함으로써 원격저장소와 로컬저장소에 저장되어 있는 코드 및 기록이 일치(sync)가 됩니다. 이제 함께 프로젝트하는 사람들은 나의 프로젝트를 pulling(가져가기)하면, 프로젝트를 함께하는 모두에게 나의 로컬에 있는 프로젝트를 복사해서 자신의 프로젝트로 옮길 필요가 없습니다. Create a remote re..

Programming/기타 2016.06.14

Spark 클러스터 구조

들어가며 Spark를 튜닝하기 위해서는 클러스터의 구조가 어떻게 구성이 되어 있는지, 프로그램은 어떤 순서로 실행이 되는지에 대한 지식은 보유를 하고 계셔야 시스템을 설정 및 튜닝이 가능합니다. 예를 들어 설정하는 옵션에서 executor-memory의 값을 설정해야 하는데, executor가 어떤 역할을 하는지 모른다면... 아니되오 . Spark의 components를 Driver Program, SparkContext, Cluster Manager, Worker Node, Executor, Task, Cache가 있고, 각각의 역할과 어떻게 동작하는지에 대해서 알아보겠습니다. ComponentsDriver Program main()함수를 갖고 있는 프로세스를 말합니다. 우리가 spark-submit..

빅데이터/Spark 2016.06.13

Spark란? 설치 및 예제

Spark란? Apache Spark는 빠르고 general-purpose cluster computing system입니다. 다시 말해서 기존에는 batch processing을 하기 위해서 MapReduce를 사용하고, sql을 사용하기 위해서는 hive를 사용하는 등 다양한 플랫폼을 도입해야 했었습니다. 하지만 이제는 Spark 하나의 시스템만을 설치해도 batch, streaming, graph processing, sql 등의 처리가 가능합니다. 또한 Spark는 Java, Scala, Python, 그리고 R언어의 API를 제공하기 때문에 쉽게(?) 구현을 할 수 있습니다. 아래의 high-level tools를 제공함으로써, 위에서 언급한 범용적인 플랫폼이라고 말할 수 있습니다. High-L..

빅데이터/Spark 2016.06.13

[Java] 인터페이스와 추상클래스 차이

인터페이스(Interface)와 추상클래스(Abstract)의 차이 우리 면접에서도 자주 등장하는 질문중에 하나가 인터페이스와 추상클래스의 차이가 무엇인가요? 라고 하면 음.. 나는 분명 interface와 abstract를 써보긴 했는데, 이 두개의 차이를 생각하지 않고 사용을 했습니다. 거의 대부분 interface의 키워드를 사용해서 구현을 했습니다. 그렇다면 인터페이스와 추상클래스의 차이가 무엇일까요?우리는 학교다닐때나 책으로 접할때는 항상 외우기 시작합니다. 어떻게? 아래 처럼...추상클래스는 부분적으로 완성된 설계도, 인터페이스는 밑그림만 그려져 있는 기본 설계도추상클래스는 단일 상속만 가능(extends), 인터페이스는 다중 상속이 가능 (implements)추상클래스란 추상 메소드를 한개 ..

Programming/Java 2016.06.11

[MySQL] Error Code: 1175 :: You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column 해결 방법

DELETE, UPDATE를 하는 경우 SAFE_UPDATE 모드 상태로 설정이 되어 있는 경우 아래와 같은 에러코드를 뱉습니다. 에러 내용은 Key의 컬럼을 이용하지 않고, 업데이트를 할 수 없다는 내용입니다. Error Code: 1175 You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column # SQL_SAFE_UPDATES 모드 off SET SQL_SAFE_UPDATES=0; # delete query delete from table where date(timestamp) between date('2016-05-29 00:00:00') and date('2016-05-3..

DBMS/MySQL 2016.06.10
반응형