복붙노트

[HADOOP] Lineage In Spark 란 무엇입니까?

HADOOP

Lineage In Spark 란 무엇입니까?

계보가 데이터를 재 계산하는 데 어떻게 도움이됩니까?

예를 들어, 여러 노드가 각각 30 분 동안 데이터를 계산하고 있습니다. 15 분이 지나도 실패하면 15 분 내에 처리 된 데이터를 다시 계보를 사용하여 다시 계산할 수 있습니까?

해결법

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

    1.혈통을 이해하는 모든 것이 RDD의 정의에 있습니다.

    혈통을 이해하는 모든 것이 RDD의 정의에 있습니다.

    이제 다음 내용을 검토해 보겠습니다.

    따라서 이해해야 할 2 가지 주요 사항이 있습니다.

    불행히도,이 주제들은 단 한 가지 대답으로 논의하기에 꽤 길다. 데이터 계보에 대한 다음 기사와 함께 읽어 보는 것이 좋습니다.

    그리고 이제 귀하의 질문과 의문에 대답하십시오 :

    실행 프로그램이 데이터 계산에 실패하면 15 분 후에 메모리 또는 디스크의 소스 또는 캐시에서 마지막 체크 포인트로 돌아갑니다.

    따라서 언급 한 15 분을 절약 할 수는 없습니다.

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

    2.변환 (지도 또는 필터 등)이 호출되면 Spark에서 즉시 실행하지 않고 각 변환에 대해 계보를 만듭니다. 계보는 데이터를 읽어야하는 위치를 포함하여 RDD에 적용되어야하는 모든 변환을 추적합니다.

    변환 (지도 또는 필터 등)이 호출되면 Spark에서 즉시 실행하지 않고 각 변환에 대해 계보를 만듭니다. 계보는 데이터를 읽어야하는 위치를 포함하여 RDD에 적용되어야하는 모든 변환을 추적합니다.

    예를 들어 다음 예제를 고려해보십시오.

    val myRdd = sc.textFile("spam.txt")
    val filteredRdd = myRdd.filter(line => line.contains("wonder"))
    filteredRdd.count()
    

    sc.textFile () 및 myRdd.filter ()는 즉시 실행되지 않고 RDD에서 Action이 호출 된 경우에만 실행됩니다. 여기서는 filteredRdd.count ()입니다.

    액션은 결과를 특정 위치에 저장하거나 표시하기 위해 사용됩니다. RDD 계보 정보는 filteredRdd.toDebugString 명령을 사용하여 인쇄 할 수도 있습니다 (filteredRdd는 RDD입니다). 또한 DAG 시각화는 다음과 같이 전체 그래프를 매우 직관적으로 보여줍니다.

  3. from https://stackoverflow.com/questions/45751113/what-is-lineage-in-spark by cc-by-sa and MIT license