Hadoop hdfs上传文件 权限问题
问题描述:
hadoop在虚拟机中的linux系统下
在本地通过eclipse编写代码把本地文件上传至hadoop平台的指定目录
代码如下:
@Test
public void upload() throws IOException
{
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://lujie01:9000/");
FileSystem fs = FileSystem.get(conf); Path path = new Path("hdfs://lujie01:9000/aa/lulu.txt");
FSDataOutputStream outputStream = fs.create(path);
FileInputStream inputStream = new FileInputStream("D:/lulu.txt"); IOUtils.copy(inputStream, outputStream); }
文件上传有更加简单的方法:
直接使用FileSystem的copyFromLocalFile方法
fs.copyFromLocalFile(new Path("D:/lulu.txt"), new Path("hdfs://lujie01:9000/aa/lulu.txt"));
在没有设定用户或者更改hadoop下/aa文件夹的权限之前,本机的用户身份无法通过hadoop的认证,导致无法上传
错误如下:

解决方法一:

把/aa文件夹的权限设为任何用户都可读可写可操作
再次执行测试程序,正常运行,通过客户端可以查看aa中的文件lulu.txt。表示已上传成功,注意这里的owner是lujie,电脑本地的用户名

解决方法二:
在Run Configuration中设置Arguments,把用户名改为Linux系统的用户名hadoop

解决方法三:
直接在代码中指定用户为hadoop
FileSystem fs = FileSystem.get(new URI("hdfs://lujie01:9000/"),conf,"hadoop");
@Test
public void upload() throws IOException, InterruptedException, URISyntaxException
{
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://lujie01:9000/");
FileSystem fs = FileSystem.get(new URI("hdfs://lujie01:9000/"),conf,"hadoop");
Path path = new Path("hdfs://lujie01:9000/aa/lulu1.txt");
FSDataOutputStream outputStream = fs.create(path);
FileInputStream inputStream = new FileInputStream("D:/lulu.txt"); IOUtils.copy(inputStream, outputStream); }
上传成功后,在客户端查看

Hadoop hdfs上传文件 权限问题的更多相关文章
- HDFS 上传文件的不平衡,Balancer问题是过慢
至HDFS上传文件.假定从datanode开始上传文件,上传的数据将导致目前的当务之急是全datanode圆盘.这是一个分布式程序的执行是非常不利. 解决方案: 1.从其他非datanode节点上传 ...
- 【转载】HDFS 上传文件不均衡和Balancer太慢的问题
向HDFS上传文件,如果是从某个datanode开始上传文件,会导致上传的数据优先写满当前datanode的磁盘,这对于运行分布式程序是非常不利的. 解决的办法: 1.从其他非datanode节点上传 ...
- HDFS设计思路,HDFS使用,查看集群状态,HDFS,HDFS上传文件,HDFS下载文件,yarn web管理界面信息查看,运行一个mapreduce程序,mapreduce的demo
26 集群使用初步 HDFS的设计思路 l 设计思想 分而治之:将大文件.大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析: l 在大数据系统中作用: 为各类分布式 ...
- HDFS上传文件
1.client端向namenode请求上传文件,查看文件是否存在,是否有权限往hdfs写入 2.如果文件不存在,权限OK就根据副本数N(例如2个),根据网络拓扑选择N个离client端最近的data ...
- HDFS上传文件错误--hdfs:DFSClient:DataStreamer Exception
今天上传文件的时候发现传上去的文件为空,错误提示如上述所示,原来是IP地址改掉了对呀应etc/hosts下面的IP地址也要改变,永久改ip命令-ifconfig eth0 xxx·xxx·xxx·xx ...
- Hadoop无法上传文件查找原因
部署了集群,上传测试文件到HDFS文件系统的时候出现问题.could only be replicated to 0 nodes, instead of 1,如下图所示: 度娘寻找解决方案: 博客链接 ...
- 03 测试Hadoop hdfs 上传 与 mr
1.随便在哪个目录新增一个文档.内容随便输入 mkdir words 2.在hdfs 中新建文件输入目录 ./hdfs dfs -mkdir /test 3.把新建的文档 (/home/hadoop/ ...
- hadoop java上传文件
import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.InputStream; impo ...
- tomcat 上传文件权限不足
参考:https://www.cnblogs.com/houchaoying/p/8652040.html tomcat-bin-catalina.sh UMASK="0027" ...
随机推荐
- Redis数据类型之Hash(二)
前言: Redis hash是一个String类型的field和value的映射表.添加.删除操作复杂度平均为O(1),为什么是平均呢?因为Hash的内部结构包含zipmap和hash两种.hash特 ...
- JVM-3.内存
目录 一.运行时数据区 二.内存使用细节:以HotSpot的堆为例 三.实战:OutOfMemoryError异常 四.垃圾收集器(堆+方法区)与内存分配策略 一.运行时数据区 1.程序计 ...
- docker - win7下构建swarm nodes实现跨host的容器之间的通信
前言 之前在Linux环境下尝试了swarm,通过将不同host以swarm nodes 的方式连接到一起(构建Overlay 子网),从而实现跨host的container通信. 今天我们就来说说如 ...
- 利用npm安装/删除/发布/更新/撤销发布包 --社会我npm哥,好用话不多
一.什么是npm? npm是javascript的包管理工具,是前端模块化下的一个标志性产物 简单地地说,就是通过npm下载模块,复用已有的代码,提高工作效率 1.从社区的角度:把针对某一特定 ...
- JQuery与js具体使用的区别(不全,初学)
jQuery能大大简化Javascript程序的编写 要使用jQuery,首先要在HTML代码最前面加上对jQuery库的引用,比如: <script language="javasc ...
- 原生和jQuery的ajax用法
jQuery的ajax方法: $.ajax({ url:'/comm/test1.php', type:'POST', //GET async:true, //或false,是否异步 data:{ n ...
- 在64位Ubuntu系统上安装32位程序包
在64位Ubuntu系统上安装32位的程序包 $sudo apt-get install package_name:i386 例如: $sudo apt-get install openjdk-7-j ...
- comm的用法
1.comm的功能 对两个排序过的文本文件进行逐行比较基本用法:comm -[123] file1 file2 2.例子 1)显示两个文本文件都有的行#comm -12 file1 file2 2)显 ...
- 如何用php实现文件上传与显示
首先,我们要创建一个前台页面用于操作选择文件等: <body> <div id="div1"></div> <form action=&q ...
- 摘记:Web应用系统测试内容
表示层: 内容测试,包括整体审美.字体.色彩.拼写.内容准确性和默认值 Web站点结构,包括无效的链接或图形 用户环境,包括Web浏览器版本和操作系统配置(每一个浏览器都有不同的脚本引擎或虚拟机在客户 ...