Apache spark 火花数据表集合

Apache spark 火花数据表集合,apache-spark,cluster-computing,Apache Spark,Cluster Computing,我制作了一个带有7台电脑的独立apache集群。要运行scala代码,代码如下 步骤如下: 我使用sbt创建.jar文件 使用spark submit*.jar提交作业 但是我的执行者找不到sc.textFile(“file:///home/ralfahad/LearnSpark/SBTCreate/customer-orders.csv“” 此customer-orders.csv文件存储在我的主PC中 完整堆栈跟踪: 错误:[阶段0:>(0+2)/2]17/09/25 17:32:35错

我制作了一个带有7台电脑的独立apache集群。要运行scala代码,代码如下



步骤如下:

  • 我使用sbt创建.jar文件

  • 使用spark submit*.jar提交作业

  • 但是我的执行者找不到
    sc.textFile(“file:///home/ralfahad/LearnSpark/SBTCreate/customer-orders.csv“”

    此customer-orders.csv文件存储在我的主PC中

    完整堆栈跟踪:

    错误:[阶段0:>(0+2)/2]17/09/25 17:32:35错误任务管理器: 0.0阶段任务0失败4次;正在中止线程中的作业异常 “main”org.apache.spark.SparkException:作业因阶段而中止 失败:阶段0.0中的任务0失败4次,最近一次失败:丢失 第0.0阶段的任务0.3(TID 5,141.225.166.191,执行者2): java.io.FileNotFoundException:文件 文件:/home/ralfahad/LearnSpark/SBTCreate/customer-orders.csv不存在 存在

    我如何解决这个问题


    请修改代码以在my cluster中运行。

    为了使您的工作节点能够访问该文件,您有几个选项

    1。手动将文件复制到所有节点。

    val bufferedSource = io.Source.fromFile("/home/ralfahad/LearnSpark/SBTCreate/customer-orders.csv")
    val lines = (for (line <- bufferedSource.getLines()) yield line).toList
    val rdd = sc.makeRdd(lines)
    
    每个节点的此文件应正好位于以下路径:
    /home/ralfahad/LearnSpark/SBTCreate/customer orders.csv

    2。随附文件提交您的工作。

    val bufferedSource = io.Source.fromFile("/home/ralfahad/LearnSpark/SBTCreate/customer-orders.csv")
    val lines = (for (line <- bufferedSource.getLines()) yield line).toList
    val rdd = sc.makeRdd(lines)
    
    spark submit
    有一个选项调用
    --files
    ,允许您在提交作业时复制任意数量的文件,如下所示:

    spark-submit --master ... -jars ... --files /home/ralfahad/LearnSpark/SBTCreate/customer-orders.csv
    
    不要滥用这个。此选项更适用于测试目的和小文件

    3。使用一些可供所有节点访问的外部通用存储。

    val bufferedSource = io.Source.fromFile("/home/ralfahad/LearnSpark/SBTCreate/customer-orders.csv")
    val lines = (for (line <- bufferedSource.getLines()) yield line).toList
    val rdd = sc.makeRdd(lines)
    
    S3和NFS共享是流行的选择

    sc.textFile("s3n://bucketname/customer-orders.csv")
    
    4。您可以读取驱动程序中的数据,然后将其转换为RDD进行处理。

    val bufferedSource = io.Source.fromFile("/home/ralfahad/LearnSpark/SBTCreate/customer-orders.csv")
    val lines = (for (line <- bufferedSource.getLines()) yield line).toList
    val rdd = sc.makeRdd(lines)
    
    val bufferedSource=io.Source.fromFile(“/home/ralfahad/LearnSpark/SBTCreate/customer orders.csv”)
    
    val lines=(对于(行错误:[阶段0:>(0+2)/2]17/09/25 17:32:35错误TaskSetManager:阶段0.0中的任务0失败4次;中止线程“main”中的作业异常org.apache.spark.sparkeexception:作业因阶段失败而中止:阶段0.0中的任务0失败了4次,最近的失败:阶段0.0中的任务0.3丢失(TID 5141.225.166.191,executor 2):java.io.FileNotFoundException:文件文件:/home/ralfahad/learnpark/SBTCreate/customer-orders.csv不存在