본문 바로가기
728x90
반응형

빅데이터 시스템9

스파크 병렬 처리 -이번장에서 배울 것 0.클러스터에서 RDD가 어떻게 분산되는지. -클러스터에 RDD는 그 데이터가 워커 노드들을 통해서 파티션 된다. 파티셔닝은 스파크에서 자동으로 행해지며, 얼마나 많이 파티션할지는 컨트롤이 가능하다. -싱글 파일들에 대한 파티셔닝 sc.textFile(‘myfile’, 3 ) 디폴트는 2이며, 파티션 개수가 많아진다는 것은 그만큼 더 병렬화 된다는 것. -여러 파일들에 대한 파티셔닝 sc.textFile(“mydir/*”) 각 파일은 적어도 하나 이상의 파티션을 갖는다. sc.wholeTextFiles(“mydir”) 작지만 많은 양의 파일들을 다룰 때. 키는 파일이름, 값은 파일 내용으로 pairRDD를 생성. 1.스파크가 병렬로 RDD 연산을 어떻게 수행하는지. -파티션에서 병렬.. 2019. 12. 15.
스파크 애플리케이션 작성 및 전개 -이번장에서 배울 것 0.스파크 애플리케이션 작성하는 방법. -WordCount.py 라는 애플리케이션을 사전에 만든다. import sys from pyspark import SparkContext if __name__ == "__main__": if len(sys.argv) > sys.stderr, “usage: WordCount ” exit(-1) sc = SparkContext() counts = sc.textFile(sys.argv[1]) \ .flatMap(lambda line: line.split()) \ .map(lambda word: (word,1)) \ .reduceByKey(lambda v1,v2: v1+v2) for pair in counts.take(5): p.. 2019. 12. 15.
Pair RDD와 함께 데이터 병합. -이번장에서 배울 것 0.일반 RDD로 부터 키-값 형태의 Pair RDD를 어떻게 생성하는지. -Pair RDD는 RDD의 특별한 형태이다. 각 원소들이 키-값 형태로 되어 있고, 키와 벨류는 어 떤 타입도 될 수 있다. -왜 Pair RDD를 사용하냐면, 바로 맵리듀스 알고리즘을 사용하기 위해서이다. 흔한 데이터 처리에 필요한 많은 추가적인 함수들이 이용가능하다. ex)sorting, joining, grouping, counting, etc. -Pair RDD를 만들기. 우선 map, flatMap/flatMapValues, keyBy와 같은 함수가 필요하다. 1.Pair RDD에 이용가능한 특별한 연산은 어떤게 있는지. 1.간단한 Pair RDD만들기. users= sc.textFile(file).. 2019. 12. 15.
RDD와 함께 스파크 활용하기. -이번장에서 배울 것 0.메모리에서 데이터 또는 파일로 RDD를 어떻게 생성할지 -RDD는 여러 타입이 될 수 있다. 1.단일 타입: integers, characters, booleans, etc. 2.시퀀스 타입: strings, lists, arrays, tuples, dicts, etc.(nested 데이터 타입 포함.) 3.Scala/Java Object(serializable인 경우) 4.Mixed Types -몇몇 RDD 타입은 추가적인 기능을 가지고 있다. -Pair RDDs: 키와 값을 쌍으로 가지는 형태 -Double RDDs: 숫자 데이터로 구성된 형태 -RDD를 시퀀스 타입의 데이터에서 바로 가져와본다. myData = [‘Alice’,’Carlos’,’Frank’,’Barbara’.. 2019. 12. 15.
스파크 기초 -이번장에서 배울 것 0.Spark Shell을 사용하는 방법 -pyspark와 spark-shell이 있다. 이들은 학습이나 데이터 탐색에 interactive(대화식)하다. 1.SparkContext 사용하는 방법 -sc라고 불리는 Spark Context를 사용합니다. 2.RDD의 주요 개념 -그들은 무엇인가? -RDD(Resilient Distributed Dataset) -Resilient는 메모리에서 데이터가 사라져도 다시 재생할 수 있다는 뜻, Distributed는 클러스터를 통하여 처리한다는 뜻, Dataset은 최초 데이터는 파일로 불러와지거나 프로그래밍으로 생성될 수 있다는 뜻이다. -RDD는 스파크에서 기본적인 데이터 단위이다. -대부분의 스파크 프로그래밍은 RDD의 수행으로 구성된.. 2019. 12. 15.
데이터 파일 파티셔닝 -이번장에서 배울 것 0.데이터 파일을 파티셔닝함으로써 쿼리 성능을 어떻게 향상시키는지 -파티셔닝은 두개의 구문으로 포함된다. -Storage: 데이터를 올바른 파티션위치에 놓는 것. -Retrieval: 파티션으로부터 쿼리를 통해 분석할 데이터를 얻는 것. 1.Impala와 Hive로 파티션된 테이블들을 어떻게 생성하고 조작하는지 -하둡은 파티셔닝을 할 수 있다. -Hive와 Impala로 지원한다. --hive-import를 사용할 때, --hive-partition-key 와 --hive-partition-value를 사용하여 sqoop을 통해 파티션할 수 있다. -Spark, MapReduce, Flume 들이 파티션된 데이터를 저장하기위해 사용된다. -Impala/Hive의 파티셔닝 작업 예. .. 2019. 12. 15.
728x90
반응형