2016-07-12 3 views
0

새로 설치 한 Ubuntu 서버에 새로운 독립 실행 형 Apache Spark 서버를 설정했습니다. 나는 거기서 첫 직장을 보내려고 노력하지 않으며 나는별로 성공하지 못했다.Apache Spark의 원격 작업 (Java)

SparkConf conf = new SparkConf().setAppName("myFirstJob").setMaster("local[*]"); 
    JavaSparkContext javaSparkContext = new JavaSparkContext(conf); 
    javaSparkContext.setLogLevel("WARN"); 
    SQLContext sqlContext = new SQLContext(javaSparkContext); 

    System.out.println("Hello, Remote Spark v." + javaSparkContext.version()); 

    DataFrame df; 
    df = sqlContext.read().option("dateFormat", "yyyy-mm-dd") 
      .json("./src/main/resources/north-carolina-school-performance-data.json"); 
    df = df.withColumn("district", df.col("fields.district")); 
    df = df.groupBy("district").count().orderBy(df.col("district")); 
    df.show(150); 

의미가 있습니다 :이 지역에있는 학교의 수와 NC의 학군의 이름을 표시합니다

Hello, Remote Spark v.1.6.1 
+--------------------+-----+ 
|   district|count| 
+--------------------+-----+ 
|Alamance-Burlingt...| 34| 
|Alexander County ...| 10| 
|Alleghany County ...| 4| 
|Anson County Schools| 10| 
| Ashe County Schools| 5| 
|Asheboro City Sch...| 8| 
... 

이제 경우 여기

내가 로컬로 할 것입니다

:

SparkConf conf = new SparkConf().setAppName("myFirstJob").setMaster("spark://10.0.100.120:7077"); 

그것은 잘 간다 : 나는 첫 번째 줄에 변경

Hello, Remote Spark v.1.6.1 
16/07/12 10:58:34 WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources 
16/07/12 10:58:49 WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources 

가장 이상한 점은 나를 위해 서버에 스파크 1.6.2가 있다는 것입니다. 나는 1.6.2 버전 번호를 기대하고 있었다.

는 그 다음 UI에, 내가 거기 가서 참조 :

Spark UI

을 나는 앱 20160712105816-0011을 클릭하면, 내가 얻을 :

Detail of app

모든 클릭을 기타에 링크를 클릭하면 내 로컬 Apache Spark 인스턴스로 이동합니다.

주위를 클릭 한 후, 내가 좋아하는 것을 볼 수 있습니다

App on the client

을 그리고 난 서버에 로그를 보면 내가보기 : 모든 나에게 좋아 보인다

16/07/12 10:37:00 INFO Master: Registered app myFirstJob with ID app-20160712103700-0009 
16/07/12 10:37:03 INFO Master: Received unregister request from application app-20160712103700-0009 
16/07/12 10:37:03 INFO Master: Removing app app-20160712103700-0009 
16/07/12 10:37:03 INFO Master: 10.0.100.100:54396 got disassociated, removing it. 
16/07/12 10:37:03 INFO Master: 10.0.100.100:54392 got disassociated, removing it. 
16/07/12 10:50:44 INFO Master: Registering app myFirstJob 
16/07/12 10:50:44 INFO Master: Registered app myFirstJob with ID app-20160712105044-0010 
16/07/12 10:51:20 INFO Master: Received unregister request from application app-20160712105044-0010 
16/07/12 10:51:20 INFO Master: Removing app app-20160712105044-0010 
16/07/12 10:51:20 INFO Master: 10.0.100.100:54682 got disassociated, removing it. 
16/07/12 10:51:20 INFO Master: 10.0.100.100:54680 got disassociated, removing it. 
16/07/12 10:58:16 INFO Master: Registering app myFirstJob 
16/07/12 10:58:16 INFO Master: Registered app myFirstJob with ID app-20160712105816-0011 

합니다. ..

동일한 환경에서 이전 질문 (해결되지 않음)은 Apache Spark Server installation requires Hadoop? Not automatically installed? 이었지만 완전히 다릅니다. - 많이 sma ller - app.

무슨 일이 벌어지고 있는지에 대한 단서가 있습니까?

답변

1

웹 UI 스크린 샷에 따르면 서버에 작업자 (슬레이브)가 없습니다. Spark은 클러스터를 시작하기위한 몇 가지 스크립트를 제공합니다.

  • sbin에/start-all.sh : conf/slaves
  • sbin에 시작/마스터 만 노예를 시작 마스터와 conf/slaves
  • 에 규정 된 노동자 sbin에/start-slaves.sh 시작합니다. SH : 현재 시스템의 마스터를 시작
  • sbin에/start-slave.sh : 클러스터가 올바르게 구성되어 경우에만를 호출해야, 현재 시스템

에서 노예를 시작합니다마스터 컴퓨터에 모든 것을 시작합니다.

+0

고마워요. 그 말이 맞습니다. 동일한 서버에 마스터와 슬레이브가있는 구성을 어떻게 만들어야하는지 이해해야합니다. http://spark.apache.org/docs/1.6.2/spark-standalone.html에서 내가 놓친 것이있을 것입니다. – jgp

+0

만약 당신이 마스터와 슬레이브를 같은 머신에 가지고 있다면, 머신의 IP 주소를'conf/slave '에 넣기 만하면됩니다. – Dikei

+0

작동 - 다른 문제가 생겼지 만이 부분은 작동합니다 - tx! 나는 더 현대적인 노예 제도에 있다고 생각합니다. 당신은 주인이지만 노예가 없을 때 당신은 스스로 일합니다 ... – jgp