【问题标题】:Spark Standalone not work with local file systemSpark Standalone 不适用于本地文件系统
【发布时间】:2019-01-15 22:09:12
【问题描述】:

我正在使用spark-worker 容器,它基于spark-base 容器。

我该如何解决这个异常:

org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: file:/README.md

Main.java

        context = new SparkContext(
                new SparkConf()
                        .setAppName("Test App")
                        .setMaster("spark://spark-master:7077")
                        .set("spark.executor.memory", "1g")
                        .setJars(new String[] { "target/spark-docker-1.0-SNAPSHOT.jar" })
        );

        String path = "file:///README.md";

        // EXCEPTION HERE!!!
        List<Tuple2<String, Integer>> output = context.textFile(path, 2) 
         ...

我的 Docker 容器没有设置 HDFS,所以我希望它们能与每个 spark-worker 的本地文件系统一起工作。我对每个工人都做了:

shell> docker exec -it spark-worker-# bash
shell> touch README.md

docker-compose.yml

# No HDFS or file system configurations!

version: '3.3'
services:
  spark-master:
    image: bde2020/spark-master
    container_name: spark-master
    ports: ['8080:8080', '7077:7077', '6066:6066']
  spark-worker-1:
    image: bde2020/spark-worker
    container_name: spark-worker-1
    ports: ['8082:8081']
    depends_on:
      - spark-master
    environment:
      - "SPARK_MASTER=spark://spark-master:7077"
  spark-worker-2:
    image: bde2020/spark-worker
    container_name: spark-worker-2
    ports: ['8083:8081']
    depends_on:
      - spark-master
    environment:
      - "SPARK_MASTER=spark://spark-master:7077"

【问题讨论】:

    标签: docker apache-spark


    【解决方案1】:

    Spark 可以处理本地文件,但这意味着您必须在集群中的每个节点(包括驱动程序)上提供文件的副本。

    另外,"file:///README.md" 是文件系统根目录中的路径,因此请确保这是您创建文件的位置,并且用户具有正确的访问权限。

    使用本地文件的最简单方法是使用SparkFiles 分发它

    还要记住,正确的写入需要分布式存储 - Saving dataframe to local file system results in empty results

    如果您想同时支持写入和读取,只需使用工作人员之间共享的 Docker 卷。

    【讨论】:

      猜你喜欢
      • 2018-01-25
      • 1970-01-01
      • 2013-07-08
      • 1970-01-01
      • 1970-01-01
      • 2019-12-12
      • 1970-01-01
      • 2015-09-23
      • 1970-01-01
      相关资源
      最近更新 更多