Input path does not exist: hdfs://localhost:9000/usr/hadoop/word.txt

最近在学习Spark读取HDFS上面的数据,执行代码:

textFile = sc.textFile("hdfs://localhost:9000/usr/local/hadoop/word.txt")

遇到标题上的错误:
Input path does not exist: hdfs://localhost:9000/usr/hadoop/word.txt
作者第一次学习Spark,对本地(local)读取和HDFS读取并不是太懂,折腾了半天,找了很多解答,也还是没有解决这个问题。还好舍友厉害,一通操作,给我解决了这个问题,可惜作者太菜,舍友一番讲解,我还是似懂非懂。就按照我的理解,简单记录一下解决思路和具体做法,理解不到位的地方,还请各位读者体谅。

首先,本地读取和HDFS读取完全不是一回事,本地读取如果遇到这种问题,可以直接手动创建文件夹以及相应文件来解决。但是,对于大数据问题,一个数据集可能上百G,这时就很难从本地读取,便需要从HDFS上读取。这里HDFS可以看成远程数据库,你可以在代码里面读取。一开始我想的是直接手动创建该文件夹,然后直接将文件复制粘贴过去,但是尝试失败。这是因为HDFS不在本地,无法进行这样的操作。于是需要使用Hadoop来进行操作,具体操作方法如下:
首先,我们在HDFS下没有 /usr/hadoop 这个文件夹,于是需要在HDFS下先创建该文件夹:

./bin/hdfs dfs -mkdir -p /usr/hadoop

然后可以用如下语句查看是否创建成功:

./bin/hdfs dfs -ls /

如果有下面这一行,则说明创建成功:

而后找到你的word.txt所在的地方,打开终端,输入如下语句将word.txt放到 /usr/local/hadoop 中去:

./bin/hdfs dfs -put word.txt /usr/hadoop

然后再执行代码,便可成功。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值