使用docker swarm进行Spark:主机名中的非法字符

时间:2018-09-13 07:55:34

标签: docker apache-spark hadoop docker-compose docker-swarm

我有一个用docker swarm构建的Spark和hadoop集群。它们在同一网络下标识。我用Scala编写了一个简单的WordCount示例:

val spark = SparkSession.builder().master("local").appName("test").getOrCreate()
val data = spark.sparkContext.textFile("hdfs://10.0.3.16:8088/Sample.txt")

val counts = data.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey(_ + _)
counts.foreach(println)

当我在spark的主节点容器中运行代码时,IP地址随容器的名称而变化,并发生错误

  

主机名在索引12处的非法字符:hdfs://spark_namenode.1.ywlf9yx9hcm4duhxnywn91i35.spark_overlay:9000

而且我无法更改容器名称,因为在docker swarm中不允许使用它。

0 个答案:

没有答案