У меня есть программа подсчета слов в eclipse с использованием Maven и Scala. После экспорта файла jar и попытки запустить его на терминале (в Ubuntu) Я получил неожиданный результат
Искра моего пути
home/amel/spark
мой путь хауп
/usr/local/hadoop
мои команды su hadoopusr // я ввожу свой пароль затем я ввожу эту команду start-all.sh затем я ввожу свой искровой файл, в котором была сохранена банка, и запускаю эту команду
spark-submit --class bd.spark_app.first.wordcount --master yarn --
master local[2] SparkExample.jar
р
это код, который у меня есть на eclipse (я использую проект maven с scala ide) пакет bd.spark_app
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.rdd.RDD.rddToOrderedRDDFunctions
object first {
def main ( args:Array[String] ) = {
val conf = new SparkConf().setMaster("local").setAppName("wordcount")
val sc = new SparkContext(conf)
val sampledata = sc.textFile("/home/hadoopusr/sampledata")
val result = sampledata.flatMap(_.split(" ")).map(words => (words,
1)).reduceByKey(_+_)
result.collect.foreach(println)
result.saveAsTextFile("outputfile")
sc.stop()
}
}
Я ожидал этого результата
(me,4)
(you,3)
(food,2)
(cat,1)
spark-submit --class bd.spark_app.first.wordcount --master yarn --
master local[2] SparkExample.jar
эта команда неверна, есть 2 мастера, один локальный, а другой пряжа.
во-вторых, вы SparkExample.jar
НЕ находитесь на пути, по которому вы пытаетесь выполнить spark-submit, что является причиной исключения classnot found.
пожалуйста, исправьте все это. см. https://spark.apache.org/docs/latest/submitting-applications.html
Я переместил файл jar туда, где я выполняю команду spark-submit, и вот что получилось. Большинство ошибок исчезли, но у меня все еще есть проблема с IP-адресом spark 19/05/26 01:07: 18 WARN Utils: Ваше имя хоста, amel-Satellite-C850-B374, разрешается в петлевой адрес: 127.0.1.1, но мы не смогли найти ни одного внешнего IP-адреса! 19/05/26 01:07:18 WARN Utils: Установите SPARK_LOCAL_IP, если вам нужно выполнить привязку к другому адресу