Я создал программу scala, которая ищет слово в текстовом файле. Я создаю файл scala с затмением и после того, как я скомпилирую и создаю банку с сборкой sbt и sbt. После этого я запускаю .jar с Spark в local и запускаю правильно. Теперь я хочу попробовать запустить эту программу, используя Spark на hadoop, у меня есть 1 мастер и 2 рабочих машины. Мне нужно изменить код? и какую команду я делаю с оболочкой мастера? я есть создать ведро и я поставил текстовый файл в HadoopЗапуск программы Scala с Spark на 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())
}
}
Спасибо всем
Измените свою программу, используйте мастер как указание на исходный интерфейс вспышки, например 'spark: // xyz-server: 7077', или лучше не устанавливать мастер в вашей программе, тогда вам не нужно менять свой код , просто скажите мастеру при запуске кода в оболочке по параметру как «--master local» –
команда, которую я пытаюсь использовать на оболочке в главном, - исправить-submit --master local --jars wordcount.jar? Я помещаю файл jar в папку искры в мастер, это правильно? – user3836982
Позвольте мне рассказать вам, как я это делаю. 1 - Я не упоминаю об искрах в моем коде. 2. Я использую следующую команду для запуска моих искровых приложений в режиме кластера. 'spark-submit --class full.path.to.MainClass --master spark: // cloud-server: 7077 path_to_my_JAR.jar' –