spark学习笔记:集群模式下的addFile()操作(存疑)
来源:互联网 发布:golang for sleep 编辑:程序博客网 时间:2024/06/05 07:31
前言
Add a file to be downloaded with this Spark job on every node.Path can be either a local file, a file in HDFS (or other Hadoop-supported filesystems), or an HTTP, HTTPS or FTP URI. To access the file in Spark jobs, use SparkFiles.get(fileName)
to find its download location.
scala
在scala源码文件夹下新建scala对象,代码如下:
package sparkdemoimport org.apache.spark.SparkContextimport org.apache.spark.SparkConfimport org.apache.spark.SparkFilesobject addFileDemo { def main(args: Array[String]): Unit = { val conf=new SparkConf(); conf.setMaster("spark://master:7077"); conf.setAppName("spark_test"); val sc=new SparkContext(conf); sc.addFile("/home/daya/test.txt"); var rdd=sc.textFile(SparkFiles.get("test.txt")); rdd.foreach(println); }}
因为集群模式下的各从机没有程序执行所需要的依赖包,所以右键项目使用maven打包:
将eclipse项目文件夹下的/target/sparkDemo-1.0-SNAPSHOT.jar提交到集群上运行:
spark-submit --class sparkdemo.addFileDemo --master spark://master:7077 sparkDemo-1.0-SNAPSHOT.jar
执行时报错:File file:/tmp/spark-34036848-e44c-46c3-962b-289832e83331/userFiles-4a903147-b4c2-46f5-8561-d92d3f4be7e6/test.txt does not exist
查看日志
在spark的web页面查看某一节点的stderr日志:
发现有这么两行:
17/08/25 01:59:04 INFO Utils: Fetching spark://192.168.200.100:36893/files/test.txt to /tmp/spark-b166b539-4279-419a-b8fc-7cecee60b7da/executor-2363a3f5-de00-4c2a-9f7e-6ed012905a9c/spark-31a8caa5-442a-4120-ab74-5685b5b7c04f/fetchFileTemp6483074797707216066.tmp17/08/25 01:59:04 INFO Utils: Copying /tmp/spark-b166b539-4279-419a-b8fc-7cecee60b7da/executor-2363a3f5-de00-4c2a-9f7e-6ed012905a9c/spark-31a8caa5-442a-4120-ab74-5685b5b7c04f/-257922111503651539934_cache to /usr/DevProgram/spark-2.2.0-bin-hadoop2.7/work/app-20170825015858-0004/0/./test.txt
远程登录到slave1从机,进入log记载的目录,发现确实有test.txt文件存在,而且内容与master主机一致 :
这说明从机确实从主机上下载到了目标文件。
在日志信息中搜索错误的相关信息“spark-34036848”,发现只有两条记录:
注意到slave1从机与主机对应文件夹名并不一致,所以这才是导致报错的原因。
主机的文件夹名:spark-34036848-e44c-46c3-962b-289832e83331,但是各从机上并没有生成这一文件夹,也没有把目标文件复制到这一目录下,所以当然会提示文件不存在。
这个错误暂时不知道如何解决。
Java
Java示例使用网络文件http://community.apache.org/newbiefaq.html。
在java源码文件夹下新建java类,代码如下:
package daya.sparkdemo;import org.apache.spark.SparkConf;import org.apache.spark.SparkFiles;import org.apache.spark.api.java.JavaSparkContext;public class addFileDemo { public static void main( String[] args ) { SparkConf conf =new SparkConf(); conf.setMaster("local[4]"); conf.setAppName("sparkdemo"); JavaSparkContext jsc=new JavaSparkContext(conf); jsc.addFile("http://community.apache.org/newbiefaq.html"); jsc.textFile(SparkFiles.get("newbiefaq.html")).count(); jsc.close(); }}
同样使用maven编译打包,然后执行:
spark-submit --class daya.sparkdemo.addFileDemo --master spark://master:7077 sparkdemo-0.0.1-SNAPSHOT.jar
采用网络文件时没有报错,但是却不知道文件分发到哪去了,/tmp与/usr/DevProgram/spark-2.2.0-bin-hadoop2.7/work下面都没有找到html文件。
- spark学习笔记:集群模式下的addFile()操作(存疑)
- Spark学习笔记(30)集群运行模式下的Spark Streaming调试
- Spark standalone 模式下的集群部署
- Spark学习笔记--01 Spark集群的安装
- 蜗龙徒行-Spark学习笔记【五】IDEA中集群运行模式的配置
- Spark Hadoop集群部署与Spark操作HDFS运行详解---Spark学习笔记10
- Spark Hadoop集群部署与Spark操作HDFS运行详解---Spark学习笔记10
- spark学习笔记四:spark集群搭建
- spark学习笔记:spark独立集群模式配置及FIFO调度
- java学习笔记:java语法基础(存疑)
- javascript学习笔记:BOM对象(存疑)
- spark1.6.1学习笔记02-spark集群的作业调度
- spark学习笔记:考察集群的文件读取机制
- 关于光波导的模式概念存疑
- Java学习笔记:类的继承与抽象(抽象类存疑)
- Spark学习笔记-HBase操作
- spark的独立模式集群部署
- spark 客户端和集群模式的区别
- Balloon Comes!
- Essential Studio for JavaScript发布2017 v3版本,支持统计图表
- mac命令行:E325: ATTENTION
- 1.6switch、case关键字
- JVM对象的创建
- spark学习笔记:集群模式下的addFile()操作(存疑)
- 互联网开发新组件的学习技巧
- 几种排序算法时间复杂度对比
- JVM底层存储示意图
- IfFileExists(文件存在)+Goto实现简单跳转
- c# 利用ADODB连接ORACLE数据库
- C++——USACO Section 2.3 题解
- 一致性Hash算法
- WPF 后台图片绘制线段并生成本地图片文件