簡體   English   中英

在Hadoop上使用Spark運行Scala程序

[英]Run Scala Program with Spark on Hadoop

我已經創建了一個scala程序來搜索文本文件中的單詞。 我使用eclipse創建文件scala,然后編譯並使用sbt和sbt程序集創建一個jar。之后,我在本地使用Spark運行.jar並正確運行。 現在我想嘗試在hadoop上使用Spark運行此程序,我有1個主控機和2個工作機。 我必須更改代碼嗎? 我對主機的外殼執行什么命令? 我創建了一個存儲桶,並將文本文件放入了hadoop

這是我的代碼:

    import scala.io.Source
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf

object wordcount {
    def main(args: Array[String]) {
      // set spark context
      val conf = new SparkConf().setAppName("wordcount").setMaster("local[*]")
      val sc = new SparkContext(conf)

      val distFile = sc.textFile("bible.txt")

      print("Enter word to look for in the HOLY BILE: ")
      val word = Console.readLine
      var count = 0;
      var finalCount=0;
      println("You entered " + word)
      val input = sc.textFile("bible.txt")
      val splitedLines = input.flatMap(line => line.split(" "))
                    .filter(x => x.equals(word))

System.out.println("The word " + word + " appear " + splitedLines.count())
    }
}

謝謝大家

只需更改以下行,

val conf = new SparkConf().setAppName("wordcount").setMaster("local[*]")

val conf = new SparkConf().setAppName("wordcount")

當您要從本地模式切換到群集模式時,這將使您不必修改代碼。 可以通過spark-submit命令傳遞master選項,如下所示:

spark-submit --class wordcount  --master <master-url> --jars wordcount.jar

如果要在本地運行程序,請使用以下命令,

spark-submit --class wordcount  --master local[*] --jars wordcount.jar

是您在運行應用程序時可以設置的master選項的列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM