Spark: verifique a interface do usuário do cluster para garantir que os trabalhadores estejam registrados
Eu tenho um programa simples no Spark:
/* SimpleApp.scala */
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
object SimpleApp {
def main(args: Array[String]) {
val conf = new SparkConf().setMaster("spark://10.250.7.117:7077").setAppName("Simple Application").set("spark.cores.max","2")
val sc = new SparkContext(conf)
val ratingsFile = sc.textFile("hdfs://hostname:8020/user/hdfs/mydata/movieLens/ds_small/ratings.csv")
//first get the first 10 records
println("Getting the first 10 records: ")
ratingsFile.take(10)
//get the number of records in the movie ratings file
println("The number of records in the movie list are : ")
ratingsFile.count()
}
}
Quando tento executar este programa a partir do spark-shell, ou seja, faço logon no nó de nome (instalação Cloudera) e executo os comandos sequencialmente no spark-shell:
val ratingsFile = sc.textFile("hdfs://hostname:8020/user/hdfs/mydata/movieLens/ds_small/ratings.csv")
println("Getting the first 10 records: ")
ratingsFile.take(10)
println("The number of records in the movie list are : ")
ratingsFile.count()
Eu obtenho resultados corretos, mas se eu tentar executar o programa no eclipse, nenhum recurso será atribuído ao programa e, no log do console, tudo o que vejo é:
WARN TaskSchedulerImpl: o trabalho inicial não aceitou nenhum recurso; verifique a interface do usuário do cluster para garantir que os trabalhadores estejam registrados e tenham recursos suficientes
Além disso, na interface do usuário do Spark, vejo o seguinte:
O trabalho continua em execução - Spark
Além disso, deve-se notar que esta versão do spark foi instalada com o Cloudera (portanto, nenhum nó de trabalho aparece).
O que devo fazer para que isso funcione?
EDITAR:
Eu verifiquei o HistoryServer e esses trabalhos não aparecem lá (mesmo em aplicativos incompletos)