[英]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.