복붙노트

[HADOOP] 스파크 방송 변수

HADOOP

스파크 방송 변수

내가 클러스터에서 실행되는 다음과 같은 코드가 있다고 가정하자 :

private def modifyDatasetFormat(data : String, mappings : Array[HashMap[String, Int]]) : Array[Tuple2[Tuple3[Int,Int,Int],Int]] = {

}

var  map = new HashMap[String,Int]()
map+=("hello" -> 2)

var mappings = new Array[HashMap[String, Int]])(1)
mappings(0)=map

val originalDataset = sc.textFile("/home/paourissi/Desktop/MyProject/nursery.1000.withID")
        val dataset = originalDataset.
            flatMap(data => modifyDatasetFormat(data, mappingsInMap)).persist(StorageLevel.MEMORY_AND_DISK) 

나는 값의 매핑을위한 방송을 사용해야하는 또는이 필요하지 않습니다? 기본적으로 할 때 우리는 어쨌든 방송 변수를 사용합니까? 효율성에 대한?

감사합니다.

해결법

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

    1.우선, 방송 변수는 동시에 한 컴퓨터의 메모리에 맞게 할 수있는 클러스터를 통해 공유 할 수 있도록 설계되어있다.

    우선, 방송 변수는 동시에 한 컴퓨터의 메모리에 맞게 할 수있는 클러스터를 통해 공유 할 수 있도록 설계되어있다.

    둘째, 방송 변수는 불변, 그래서 그들은 (경우에 축전지를 살펴) 나중에 변경할 수 없습니다.

    능률: 스파크 내부, 클러스터의 모든 노드는 그들이 할 수있는 다운로드, 그리고 그들이 할 수있는 업로드하여 신속하고 효율적으로 변수를 배포하려고합니다. 이 시도하고 모든 일을하고 모든 노드에 데이터를 밀어하는 데 하나 개의 노드가 아닌 그들이 훨씬 더 빨리합니다.

    아파치 스파크 문서에 언급 된 바와 같이, 방송 변수는 "정적 룩업 테이블"에 대한 좋은 사례입니다

    당신은 SparkTutorials하여이 흥미로운 게시물을 발견했습니다

  2. from https://stackoverflow.com/questions/34041436/broadcast-variables-in-spark by cc-by-sa and MIT license