spark yarn-cluster模式hdfs io文件路径配置
spark yarn-cluster mode hdfs io file path configuration
我已经尝试 运行 下面在名称节点服务器上使用 psuedo-dist 模式的基本 spark wordcount 示例:hadoop 2.6.0
import org.apache.spark.{SparkConf, SparkContext}
object WordCount {
def main(args: Array[String]){
//args(0): input file name, args(1): output dir name
//e.g. hello.txt hello
val conf = new SparkConf().setAppName("WordCount")
val sc = new SparkContext(conf)
val input = sc.textFile(args(0))
val words = input.flatMap(_.split(" "))
val counts = words.map((_, 1)).reduceByKey(_ + _)
counts.saveAsTextFile(args(1))
}
}
用 start.sh 这样的文件...
$SPARK_HOME/bin/spark-submit \
--master yarn-cluster \
--class com.gmail.hancury.hdfsio.WordCount \
./target/scala-2.10/sparktest_2.10-1.0.jar hello.txt server_hello
当我写输入文件路径时
hdfs://master:port/path/to/input/hello.txt
或
hdfs:/master:port/path/to/input/hello.txt
或
/path/to/input/hello.txt
自动附加了一些神秘的附加路径
/user/${user.name}/input/
所以,如果我写的路径像 /user/curycu/input/hello.txt
那么就会应用这样的路径:/user/curycu/input/user/curycu/input/hello.txt
所以出现了fileNotFound异常。
我想知道那条神奇的道路到底是从哪里来的...
我检查了 core-site.xml、yarn-site.xml、hdfs-site.xml、mapred-site.xml、spark_env.sh、spark-defaults.conf 的名称节点服务器,但没有 /user/${user.name}/input
的线索
当您不使用 assembly jar (uber jar) 时会出现以上所有错误...
不是sbt package
使用 sbt assembly
我已经尝试 运行 下面在名称节点服务器上使用 psuedo-dist 模式的基本 spark wordcount 示例:hadoop 2.6.0
import org.apache.spark.{SparkConf, SparkContext}
object WordCount {
def main(args: Array[String]){
//args(0): input file name, args(1): output dir name
//e.g. hello.txt hello
val conf = new SparkConf().setAppName("WordCount")
val sc = new SparkContext(conf)
val input = sc.textFile(args(0))
val words = input.flatMap(_.split(" "))
val counts = words.map((_, 1)).reduceByKey(_ + _)
counts.saveAsTextFile(args(1))
}
}
用 start.sh 这样的文件...
$SPARK_HOME/bin/spark-submit \
--master yarn-cluster \
--class com.gmail.hancury.hdfsio.WordCount \
./target/scala-2.10/sparktest_2.10-1.0.jar hello.txt server_hello
当我写输入文件路径时
hdfs://master:port/path/to/input/hello.txt
或
hdfs:/master:port/path/to/input/hello.txt
或
/path/to/input/hello.txt
自动附加了一些神秘的附加路径
/user/${user.name}/input/
所以,如果我写的路径像 /user/curycu/input/hello.txt
那么就会应用这样的路径:/user/curycu/input/user/curycu/input/hello.txt
所以出现了fileNotFound异常。
我想知道那条神奇的道路到底是从哪里来的...
我检查了 core-site.xml、yarn-site.xml、hdfs-site.xml、mapred-site.xml、spark_env.sh、spark-defaults.conf 的名称节点服务器,但没有 /user/${user.name}/input
当您不使用 assembly jar (uber jar) 时会出现以上所有错误...
不是sbt package
使用 sbt assembly