Scala java.lang.IllegalArgumentException:java.net.UnknownHostException:tmp
我从事Spark scala应用程序的工作,并与sbt合作完成了一个项目,我的树冠是:Scala java.lang.IllegalArgumentException:java.net.UnknownHostException:tmp,scala,apache-spark,sbt,Scala,Apache Spark,Sbt,我从事Spark scala应用程序的工作,并与sbt合作完成了一个项目,我的树冠是: projectFilms/src/main/scala/AppFilms 我在HDFS中有3个文件,这些目录是:HDFS/tmp/projetFilms/,当我通过这个命令行“sbt run”运行我的代码时,它生成了一个错误: java.lang.IllegalArgumentException: java.net.UnknownHostException: tmp 这是: [trace] Stack
projectFilms/src/main/scala/AppFilms
我在HDFS中有3个文件,这些目录是:HDFS/tmp/projetFilms/
,当我通过这个命令行“sbt run”运行我的代码时,它生成了一个错误:
java.lang.IllegalArgumentException: java.net.UnknownHostException: tmp
这是:
[trace] Stack trace suppressed: run last compile:run for the full output.
ERROR Utils: uncaught error in thread SparkListenerBus, stopping SparkContext
java.lang.InterruptedException
这是我的代码:
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
import org.apache.spark.rdd._
object appFilms {
val conf = new SparkConf().setAppName("system of recommandation").setMaster("local[*]")
val sc = new SparkContext(conf)
def main(args: Array[String]) {
val files = sc.wholeTextFiles("hdfs://tmp/ProjetFilm/*.dat")
//val nbfiles = files.count
println("Hello my application!")
sc.stop()
}
}
我无法从hdfs读取文件,但当我写入
root@sandbox projectFilms# hadoop fs -cat /tmp/ProjetFilms/*
我如何从HDFS读取所有文件的内容,知道我总是使用相同的命令
请你回答我 使用:
val files = sc.wholeTextFiles("hdfs:///tmp/ProjetFilm/*.dat")
还有一个附加的/after
hdfs://
,它是一个协议名。您必须通过hdfs://协议转到/tmp/…
,这就是URL需要额外/。如果不这样做,Spark将尝试访问主机tmp
,而不是文件夹错误IllegalArgumentException:java.net.UnknownHostException:tmp
,因为在wholeTextFiles
值中,它将tmp
作为主机名。将值替换为hdfs:///tmp/ProjetFilm/*.dat
谢谢您的回答!我将HDFS文件的完整路径名写为:val files=sc.wholeTextFiles(“hdfs://sandbox.hortonworks.com:8020/tmp/ProjetFilm/*.dat“)