복붙노트

[HADOOP] 스파크에서 RDD 란 무엇입니까?

HADOOP

스파크에서 RDD 란 무엇입니까?

정의라고 :

나는 그것이 무엇을 의미하는지 이해하지 못합니다. 하드 디스크에 저장된 데이터 (파티션 된 객체)와 같습니까? 그렇다면 어떻게 RDD가 사용자 정의 클래스 (예 : java, scala 또는 python)를 가질 수 있습니까?

이 링크 : https://www.safaribooksonline.com/library/view/learning-spark/9781449359034/ch03.html 언급 :

나는 일반적으로 RDD를 이해하고 스파크와 허프와 관련하여 혼란 스럽다.

어떤 사람이 도와 줄 수 있니?

해결법

  1. ==============================

    1.RDD는 본질적으로 여러 대의 컴퓨터에 분산되어있는 데이터 세트의 스파크 (Spark) 표현입니다. RDD는 모든 데이터 소스 (예 : 텍스트 파일, JDBC를 통한 데이터베이스 등

    RDD는 본질적으로 여러 대의 컴퓨터에 분산되어있는 데이터 세트의 스파크 (Spark) 표현입니다. RDD는 모든 데이터 소스 (예 : 텍스트 파일, JDBC를 통한 데이터베이스 등

    공식 정의는 다음과 같습니다.

    RDD가 무엇인지 자세히 알고 싶다면 핵심 Spark 학술 논문 중 하나 인 Resilient Distributed Datasets : 메모리 내 클러스터 컴퓨팅을위한 내결함성 추상화를 읽어보십시오.

  2. ==============================

    2.RDD는 클러스터의 많은 서버 시스템으로 분할 된 데이터 세트의 논리적 참조입니다. RDD는 변경 불가능하며 장애 발생시 자체 복구됩니다.

    RDD는 클러스터의 많은 서버 시스템으로 분할 된 데이터 세트의 논리적 참조입니다. RDD는 변경 불가능하며 장애 발생시 자체 복구됩니다.

    데이터 세트는 사용자가 외부 적으로로드 한 데이터 일 수 있습니다. json 파일, csv 파일 또는 특정 데이터 구조가없는 텍스트 파일 일 수 있습니다.

    업데이트 : RDD 내부를 설명하는 문서는 다음과 같습니다.

    희망이 도움이됩니다.

  3. ==============================

    3.공식적으로 RDD는 읽기 전용의 분할 된 레코드 모음입니다. RDD는 (1) 안정적인 저장소의 데이터 또는 (2) 다른 RDD의 결정적 작업을 통해서만 만들 수 있습니다.

    공식적으로 RDD는 읽기 전용의 분할 된 레코드 모음입니다. RDD는 (1) 안정적인 저장소의 데이터 또는 (2) 다른 RDD의 결정적 작업을 통해서만 만들 수 있습니다.

    RDD에는 다음과 같은 속성이 있습니다.

    예를 들어 -

    firstRDD=sc.textFile("hdfs://...")
    
    secondRDD=firstRDD.filter(someFunction);
    
    thirdRDD = secondRDD.map(someFunction);
    
    result = thirdRDD.count()
    

    RDD의 일부 파티션이 손실 된 경우 여러 노드에서 데이터를 복제하는 대신 동일한 계산을 수행하기 위해 계보에서 해당 파티션의 변환을 재생할 수 있습니다. 이러한 특성은 많은 노력을 절약하기 때문에 RDD의 가장 큰 이점입니다 데이터 관리 및 복제를 수행하므로 더 빠른 계산이 가능합니다.

    이러한 RDD 속성은 빠른 계산에 유용합니다.

  4. ==============================

    4.Resilient Distributed Dataset (RDR)은 스파크가 데이터를 나타내는 방식입니다. 데이터는 다양한 출처에서 올 수 있습니다.

    Resilient Distributed Dataset (RDR)은 스파크가 데이터를 나타내는 방식입니다. 데이터는 다양한 출처에서 올 수 있습니다.

    스파크 관련 RDD

    Spark는 단순히 RDD를 구현 한 것입니다.

    Hadoop과 관련된 RDD

    하둡의 힘은 작업 분배 및 내결함성에 대해 걱정할 필요없이 사용자가 병렬 계산을 작성할 수 있다는 사실에 있습니다. 그러나 Hadoop은 중간 결과를 재사용하는 애플리케이션에 비효율적입니다. 예를 들어, PageRank, K-means 클러스터링 및 로지스틱 회귀와 같은 반복적 인 기계 학습 알고리즘은 중간 결과를 재사용합니다.

    RDD는 중간 결과를 RAM에 저장할 수있게합니다. Hadoop은이를 디스크 I / O와 직렬화를 생성하는 외부의 안정적인 스토리지 시스템에 써야합니다. RDD를 사용하면 Spark는 Hadoop보다 반복적 인 애플리케이션에서 최대 20 배 빠릅니다.

    RDD에 적용된 변환은 거친 (Coarse-Grained) 변환입니다. 즉, RDD 작업은 개별 요소가 아닌 전체 데이터 집합에 적용됩니다. 따라서 map, filter, group, reduce와 같은 연산이 허용되지만 set (i) 및 get (i)과 같은 연산은 허용되지 않습니다.

    거칠기의 반대는 세밀하다. 세분화 된 스토리지 시스템은 데이터베이스입니다.

    RDD는 내결함성이 있으며, 이는 구성 요소 중 하나에서 오류가 발생해도 시스템이 계속 제대로 작동 할 수 있도록 해주는 속성입니다.

    Spark의 내결함성은 대용량의 특성과 밀접하게 관련되어 있습니다. 세분화 된 스토리지 시스템에서 내결함성을 구현하는 유일한 방법은 데이터 또는 로그 업데이트를 여러 시스템에 복제하는 것입니다. 그러나 Spark와 같은 대단위 시스템에서는 변환 만 기록됩니다. RDD의 파티션이 손실되면 RDD는 정보를 신속하게 다시 계산할 수 있습니다.

    RDD는 파티션에 "분산"(분리)되어 있습니다. 각 파티션은 컴퓨터의 메모리 또는 디스크에 존재할 수 있습니다. Spark은 파티션에서 작업을 시작하려고 할 때 파티션을 포함하는 컴퓨터로 작업을 보냅니다. 이는 "로컬 인식 스케줄링"으로 알려져 있습니다.

    출처 : 스파크에 대한 훌륭한 연구 논문 : http://spark.apache.org/research.html

    Ewan Leith가 제안한 논문을 포함시킵니다.

  5. ==============================

    5.RDD = 탄력적 인 분산 데이터 세트

    RDD = 탄력적 인 분산 데이터 세트

    탄력성 (사전의 의미) = (물질 또는 물체의) 굽힘, 펴기 또는 압축 후에 반동하거나 다시 튀어 오를 수있는 능력

    RDD는 (LearningSpark - OREILLY) : RDD를 항상 재 계산할 수있는 능력은 실제로 RDD가 "복원력이 강한"이유입니다. RDD 데이터를 보유한 기계가 실패하면 Spark는이 기능을 사용하여 누락 된 파티션을 사용자에게 투명하게 재 계산합니다 .

    이것은 항상 '데이터'를 사용할 수 있다는 것을 의미합니다. 또한 Spark는 Hadoop없이 실행할 수 있으므로 데이터가 복제되지 않습니다. Hadoop2.0의 가장 뛰어난 특징 중 하나는 Passive Standby 네임 노드의 도움으로 '고 가용성'입니다. Spark의 RDD에서도 마찬가지입니다.

    주어진 RDD (데이터)는 Hadoop 기반 클러스터와 같이 Spark 클러스터의 여러 노드에 걸쳐있을 수 있습니다.

    노드가 충돌하면 Spark는 RDD를 다시 계산하고 다른 노드의 데이터를로드 할 수 있으며 데이터는 항상 사용할 수 있습니다. Spark은 RDB (resilient distributed dataset) 개념을 중심으로 병렬로 작동 할 수있는 내결함성 요소 모음입니다 (http://spark.apache.org/docs/latest/programming-guide.html). # resilient-distributed-datasets-rdds)

  6. ==============================

    6.RDD와 스칼라 콜렉션을 비교하려면 다음과 같은 차이점이 있습니다.

    RDD와 스칼라 콜렉션을 비교하려면 다음과 같은 차이점이 있습니다.

  7. ==============================

    7.RDD (Resilient Distributed Datasets)는 데이터를 표현하기위한 추상화입니다. 공식적으로 이들은 편리한 API를 제공하는 읽기 전용의 분할 된 레코드 모음입니다.

    RDD (Resilient Distributed Datasets)는 데이터를 표현하기위한 추상화입니다. 공식적으로 이들은 편리한 API를 제공하는 읽기 전용의 분할 된 레코드 모음입니다.

    RDD는 몇 가지 주요 문제를 해결하여 MapReduce와 같은 클러스터 컴퓨팅 프레임 워크에서 대규모 데이터 집합을 처리 할 수있는 효율적인 솔루션을 제공합니다.

    RDD에는 두 가지 주요 제한 사항이 있습니다.

    RDD의 장점 중 하나는 데이터와 코드를 하나로 묶어서 데이터 파이프 라인을 쉽게 재사용 할 수 있다는 것입니다.

    출처 : 복원력있는 분산 데이터 세트 : 인 메모리 클러스터 컴퓨팅을위한 내결함성 추상화, 대규모 클러스터에서의 빠르고 일반적인 데이터 처리를위한 아키텍처

  8. ==============================

    8.RDD는 spark에서 데이터를 표현하는 방법입니다. 데이터 소스는 JSON, CSV 텍스트 파일 또는 다른 소스가 될 수 있습니다. RDD는 여러 위치에 데이터를 저장하는 (즉, 데이터가 분산 된 형태로 저장 됨) 노드가 실패하면 데이터를 복구 할 수 있도록하는 내결함성이 있습니다. RDD 데이터는 항상 제공됩니다. 그러나 RDD는 느리고 코드 작성이 어렵 기 때문에 오래된 것입니다. 그것은 DataFrame과 Dataset의 개념으로 대체되었습니다.

    RDD는 spark에서 데이터를 표현하는 방법입니다. 데이터 소스는 JSON, CSV 텍스트 파일 또는 다른 소스가 될 수 있습니다. RDD는 여러 위치에 데이터를 저장하는 (즉, 데이터가 분산 된 형태로 저장 됨) 노드가 실패하면 데이터를 복구 할 수 있도록하는 내결함성이 있습니다. RDD 데이터는 항상 제공됩니다. 그러나 RDD는 느리고 코드 작성이 어렵 기 때문에 오래된 것입니다. 그것은 DataFrame과 Dataset의 개념으로 대체되었습니다.

  9. from https://stackoverflow.com/questions/34433027/what-is-rdd-in-spark by cc-by-sa and MIT license