【spark】【问题】textFile找不到文件
2018/5/9
关于textFile读取文件的问题
问题描述:
今天第一次使用spark-shell来读取文件,我在本地建立了一个text.txt文件,然后用textFile读取生成rdd。
但是执行的时候报错了,提示找不到文件。

解决方法:
1.
首先我们知道,通过文件建立rdd的textFile("file:///")的方法可以填入本地地址和HDFS地址。
我们这里想要用本地文件建立一个rdd,但是是通过spark-shell建立的。
spark-shell默认并不是使用本地模式,而是集群中任意一个节点,我们只有保证那个节点有这个文件才不会报找不到文件的错误。
但是当前spark-shell所有的机器你并不知道,只有你保证所有节点都有你的文件才可以。
这样的解决方法基本上就是无稽之谈。
那么我们如何解决呢?
我们把文件放到HDFS中就行了。
我们在使用HDFS的时候,可以在前边使用hadoop fs 或者 hdfs dfs 作为前缀
hadoop fs -ls / 查看HDFS中的文件目录,HDFS中并没有cd命令,我们只能通过 -ls 找到要使用的文件夹。
hadoop fs -mkdir /tmp/yuhang.zhang/ 在/tmp中建立一个文件夹
hadoop fs -put text.txt /tmp/yuhang.zhan 把本地的text.txt文件传入到HDFS:/tmp/yuhang.zhang 中
放置成功后,我们用spark-shell再次进行读取。

这样就不会报错了,我们这里并不用在加上什么 file:///hdfs:xxx.xxx.x.xx 地址了,默认就会在HDFS中去读取文件。
2.
我们可以在IDEA中编写的时候会设置参数,我们一般设置new SparkConf().setMaster(local[*])本地模式
这样我们打包完成后提交给spark的时候,任务运行的时候就会去本地读取文件啦。
注意,我们提交任务的时候如果不添加任何参数的时候一般会默认最大资源,会很占用资源。
下面是一般我们提交任务的时候采用的命令。
| 参数名 | 参数说明 |
| --master | master 的地址,提交任务到哪里执行,例如 spark://host:port, yarn, local |
| --deploy-mode | 在本地 (client) 启动 driver 或在 cluster 上启动,默认是 client |
| --class | 应用程序的主类,仅针对 java 或 scala 应用 |
| --name | 应用程序的名称 |
| --jars | 用逗号分隔的本地 jar 包,设置后,这些 jar 将包含在 driver 和 executor 的 classpath 下 |
| --packages | 包含在driver 和executor 的 classpath 中的 jar 的 maven 坐标 |
| --exclude-packages | 为了避免冲突 而指定不包含的 package |
| --repositories | 远程 repository |
| --conf PROP=VALUE |
指定 spark 配置属性的值, 例如 -conf spark.executor.extraJavaOptions="-XX:MaxPermSize=256m" |
| --properties-file | 加载的配置文件,默认为 conf/spark-defaults.conf |
| --driver-memory | Driver内存,默认 1G |
| --driver-java-options | 传给 driver 的额外的 Java 选项 |
| --driver-library-path | 传给 driver 的额外的库路径 |
| --driver-class-path | 传给 driver 的额外的类路径 |
| --driver-cores | Driver 的核数,默认是1。在 yarn 或者 standalone 下使用 |
| --executor-memory | 每个 executor 的内存,默认是1G |
| --total-executor-cores | 所有 executor 总共的核数。仅仅在 mesos 或者 standalone 下使用 |
| --num-executors | 启动的 executor 数量。默认为2。在 yarn 下使用 |
| --executor-core | 每个 executor 的核数。在yarn或者standalone下使用 |
| 参数 | 参考值 | 说明 |
|---|---|---|
| class | org.apache.spark.examples.SparkPi | 作业的主类。 |
| master | yarn | 因为 E-MapReduce 使用 Yarn 的模式,所以这里只能是 yarn 模式。 |
| yarn-client | 等同于 –-master yarn —deploy-mode client, 此时不需要指定deploy-mode。 | |
| yarn-cluster | 等同于 –-master yarn —deploy-mode cluster, 此时不需要指定deploy-mode。 | |
| deploy-mode | client | client 模式表示作业的 AM 会放在 Master 节点上运行。要注意的是,如果设置这个参数,那么需要同时指定上面 master 为 yarn。 |
| cluster | cluster 模式表示 AM 会随机的在 worker 节点中的任意一台上启动运行。要注意的是,如果设置这个参数,那么需要同时指定上面 master 为yarn。 | |
| driver-memory | 4g | driver 使用的内存,不可超过单机的 core 总数。 |
| num-executors | 2 | 创建多少个 executor。 |
| executor-memory | 2g | 各个 executor 使用的最大内存,不可超过单机的最大可使用内存。 |
| executor-cores | 2 | 各个 executor 使用的并发线程数目,也即每个 executor 最大可并发执行的 Task 数目。 |
1.spark2-submit --master yarn --deploy-mode cluster --driver-memory 1g --executor-memory 1g --num-executors 2 \
--executor-cores 1 --queue report_job \
--class
2.--class org.apache.spark.examples.SparkPi --master yarn --deploy-mode client \
--driver-memory 4g –num-executors 2 --executor-memory 2g --executor-cores 2 \
/opt/apps/spark-1.6.0-bin-hadoop2.6/lib/spark-examples*.jar 10
最后我们在贴一下hdfs的命令
# -help [cmd] //显示命令的帮助信息,如: hadoop fs -help ls
# -ls(r) <path> //显示当前目录下所有文件,path是hadoop下的路径,如:/shikun/file
# -du(s) <path> //显示目录中所有文件大小
# -count[-q] <path> //显示目录中文件数量
# -mv <src> <dst> //移动多个文件到目标目录
# -cp <src> <dst> //复制多个文件到目标目录
# -rm(r) //删除文件(夹)
# -put <localsrc> <dst> //本地文件复制到hdfs
# -copyFromLocal //同put
# -moveFromLocal //从本地文件移动到hdfs
# -get [-ignoreCrc] <src> <localdst> //复制文件到本地,可以忽略crc校验
# -getmerge <src> <localdst> //将源目录中的所有文件排序合并到一个文件中
# -cat <src> //在终端显示文件内容
# -text <src> //在终端显示文件内容
# -copyToLocal [-ignoreCrc] <src> <localdst> //复制到本地
# -moveToLocal <src> <localdst>
# -mkdir <path> //创建文件夹
# -touchz <path> //创建一个空文件
【spark】【问题】textFile找不到文件的更多相关文章
- spark textFile读取多个文件
1.spark textFile读取File 1.1 简单读取文件 val spark = SparkSession.builder() .appName("demo") .mas ...
- Spark动态加载外部资源文件
Spark动态加载外部资源文件 1.spark-submit --files 动态加载外部资源文件 之前做一个关于Spark的项目时,因项目中需要读取某个静态资源文件,然后在本地IDEA测试一切皆正常 ...
- Spark保存到HDFS或本地文件相关问题
spark中saveAsTextFile如何最终生成一个文件 http://www.lxway.com/641062624.htm 一般而言,saveAsTextFile会按照执行task的多少生成多 ...
- Cocoapods - pod install 成功后找不到头文件解决
问题描述:使用Cocoapods时,import 找不到头文件. 问题原因:这是因为还没设置头文件的目录. 解决办法:在项目的Target的里设置一下,添加cocoapods头文件目录:目录路径直接写 ...
- Visual Studio 编译项目失败,提示找不到文件
博客地址:http://blog.csdn.net/FoxDave 今天碰到了一个蠢问题,虽然咱们正常情况下是遇不到的,但这确实是个应该注意的地方,所以简单记录一下. Visual Studio ...
- MySQL安装过程net start mysql 启动失败 报“错误2,系统找不到文件”的解决办法
MySQL安装过程net start mysql 启动失败 报“错误2,系统找不到文件”的解决办法 错误2,系统找不到文件. 开始...运行... regedit 注册表项: HKEY_LOCAL_ ...
- iis php5.3.8 默认文档无效 404 - 找不到文件或目录
环境:WIN2008 R2 IIS7.5 / .NET4.X 新开1站点,使用php(5.3.8),默认首页文档已设置为index.php,网站所在目录的网站运行时用户权限正确,应用程序池是asp.n ...
- 当Android工程中提示你找不到头文件,但你已经设置头文件路径了
虽然在Android.mk文件中,配置了LOCAL_C_INCLUDES路径,但是工程中的红色叉号一直提示找不到头文件 这时,你在工程树目录中展开Includes项,捣鼓捣鼓,重新build下,或许就 ...
- pod JONSKit.h MBProgress.h 找不到头文件,怎么办?
这时你看项目pod部分,多了JSONKit库.好了,第三方库就这么神奇的加进来. 头文件路径 那试试看使用JONSKit.h,在ViewController.m里引用下.找不到头文件,怎么办?还没设置 ...
随机推荐
- Python模块学习之bs4
1.安装bs4 我用的ubuntu14.4,直接用apt-get命令就行 sudo apt-get install Python-bs4 2.安装解析器 Beautiful Soup支持Python标 ...
- Android项目使用Ant多渠道打包(最新sdk)
参考文章: http://blog.csdn.net/liuhe688/article/details/6679879 http://www.eoeandroid.com/thread-323111- ...
- Java-idea-创建maven项目,部署项目,部署服务器,简单测试
spring-boot项目创建 1.项目创建 使用Idea,File→Project→Spring initalizr,点击next,进行基本配置.此时 一个spring boot项目创建完成. 之后 ...
- node.js---sails项目开发(5)---用户表的建立
1. ctrl+c 暂停sails项目 ,输入如下命令,创建一个user表 sails generate api user 2.在api目录分别建立了两个文件 api/controllers/U ...
- PAT 1085 Perfect Sequence[难]
1085 Perfect Sequence (25 分) Given a sequence of positive integers and another positive integer p. T ...
- xpath中遇到[<Element a at 0x39a9a80>](转)
Element是什么 回归正题,大家晕头转脑的看完繁杂的语法之后,已经迫不及待写点什么东西了,然后部分同学可能遇到了这个 <Element a at 0x39a9a80>或者类似 Elem ...
- window下rails4.1 发生TZInfo::DataSourceNotFound 错误
在官网上学习rails 4.1 ,启动rails server之后发生了如下错误 $ rails serverBooting WEBrickRails 4.1.0 application starti ...
- 【转】PCA与Whitening
PCA: PCA的具有2个功能,一是维数约简(可以加快算法的训练速度,减小内存消耗等),一是数据的可视化. PCA并不是线性回归,因为线性回归是保证得到的函数是y值方面误差最小,而PCA是保证得到的函 ...
- C# winform 屏蔽鼠标右键 spreadsheet Gear 屏蔽鼠标右键菜单
今天用到spreadsheetGear 插件,然后右键有插件自己的菜单.都是英文的,而且还能打开新的窗体.嵌到程序里面,不太合适,所以着手屏蔽. 刚开始用的Mouse_up,虽然能捕获事件,但是没有K ...
- 【Head First Servlets and JSP】笔记
1.谈到服务器的时候,可能是指物理主机(硬件),也可能是指Web服务应用(软件). 2.谈到客户的时候,通常指人类用户,或者是浏览器应用,或者两者都包括,浏览器应用做些什么?发送请求.解释HTML和呈 ...