首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从windows上的星星之火到HDFS存储文件

从windows上的星星之火到HDFS存储文件
EN

Stack Overflow用户
提问于 2018-09-16 16:45:20
回答 1查看 357关注 0票数 0

我已经在本地windows机器上的linux中安装了Hadoop/YARN。在同一台windows机器(不在VM中)上,我已经安装了Spark。在windows上运行spark时,我可以读取HDFS中存储的文件(在linux中)。

代码语言:javascript
复制
val lines = sc.textFile("hdfs://MyIP:9000/Data/sample.txt")

当保存一个用于HDFS saveAsTextFile("hdfs://MyIP:9000/Data/Output")的文件时,我得到以下错误:

org.apache.hadoop.security.AccessControlException:权限被拒绝: user=LocalWindowsUser,access=WRITE,inode="/Data":hadoop:supergroup:drwxr-xr-x。

我想,这是因为Windows和linux用户是不同的,windows用户没有在Linux中编写文件的权限。

使用spark将文件从windows存储到HDFS (linux )的正确方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-16 21:06:08

您的问题是,您用写模式访问HDFS所使用的用户名没有权限。

目录/Data具有rwxr-xr-x权限。这转化为模式755。您的用户名是LocalWindowsUser,它具有读取和执行权限。

可能的解决办法:

Soution 1:由于这是一个由您完全控制的本地系统,请更改权限以允许每个人访问。在VM中以用户hadoop的身份执行此命令:

hdfs dfs -chmod -R 777 /Data

解决方案2:在Windows中创建一个环境变量并设置用户名:

set HADOOP_USER_NAME=hadoop

用户名实际上应该是用户hdfs。如果必要的话也试一试。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52356284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档