Spark 프레임 워크에 대해 몇 가지 질문이 있습니다.Apache 스파크와 맵의 관계는 무엇입니까?
먼저 스파크 클러스터에서 실행되는 일부 응용 프로그램을 작성하려면 map-reduce 절차를 따라야합니까? map-reduce 절차를 따르기 때문에 양식을 병렬화하기 위해 많은 코드를 변경해야하며 현재 프로젝트를 코드 변경이 거의없이 클러스터로 옮기는 간단한 방법을 찾고 있습니다.
두 번째는 스파크 껍질에 관한 것입니다. 다음 코드를 사용하여 클러스터에서 스파크 - 쉘을 실행하려고했습니다 : MASTER=spark://IP:PORT ./bin/spark-shell
. 그런 다음 스파크 셸에 스칼라 코드를 작성합니다. 예를 들면 다음과 같습니다.
var count1=0
var ntimes=10000
var index=0
while(index<ntimes)
{
index+=1
val t1 = Math.random()
val t2 = Math.random()
if (t1*t1 + t2*t2 < 1)
count1+=1
}
var pi= 4.0 * count1/ntimes
val count2 = spark.parallelize(1 to NUM_SAMPLES).map{i =>
val x = Math.random()
val y = Math.random()
if (x*x + y*y < 1) 1 else 0
}.reduce(_ + _)
println("Pi is roughly " + 4.0 * count2/NUM_SAMPLES)
이 코드에는 두 가지 Pi Piacaculation 프로그램이 있습니다. 나는이 모든 코드가 클러스터에서 실행되는지 여부를 방황하고있다. 나는 map {} 함수로 둘러싸인 이들 코드 만이 클러스터에서 실행되는 반면 다른 코드는 마스터 노드에서만 실행된다고 생각합니다. 그게 맞는지는 확실하지 않습니다.
답장을 보내 주셔서 감사합니다. 스파크 프레임 워크를 배우는 초보자에게 유용합니다. – user3655116