问题描述:

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上传文件 权限问题的更多相关文章

  1. HDFS 上传文件的不平衡,Balancer问题是过慢

    至HDFS上传文件.假定从datanode开始上传文件,上传的数据将导致目前的当务之急是全datanode圆盘.这是一个分布式程序的执行是非常不利. 解决方案: 1.从其他非datanode节点上传 ...

  2. 【转载】HDFS 上传文件不均衡和Balancer太慢的问题

    向HDFS上传文件,如果是从某个datanode开始上传文件,会导致上传的数据优先写满当前datanode的磁盘,这对于运行分布式程序是非常不利的. 解决的办法: 1.从其他非datanode节点上传 ...

  3. HDFS设计思路,HDFS使用,查看集群状态,HDFS,HDFS上传文件,HDFS下载文件,yarn web管理界面信息查看,运行一个mapreduce程序,mapreduce的demo

    26 集群使用初步 HDFS的设计思路 l 设计思想 分而治之:将大文件.大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析: l 在大数据系统中作用: 为各类分布式 ...

  4. HDFS上传文件

    1.client端向namenode请求上传文件,查看文件是否存在,是否有权限往hdfs写入 2.如果文件不存在,权限OK就根据副本数N(例如2个),根据网络拓扑选择N个离client端最近的data ...

  5. HDFS上传文件错误--hdfs:DFSClient:DataStreamer Exception

    今天上传文件的时候发现传上去的文件为空,错误提示如上述所示,原来是IP地址改掉了对呀应etc/hosts下面的IP地址也要改变,永久改ip命令-ifconfig eth0 xxx·xxx·xxx·xx ...

  6. Hadoop无法上传文件查找原因

    部署了集群,上传测试文件到HDFS文件系统的时候出现问题.could only be replicated to 0 nodes, instead of 1,如下图所示: 度娘寻找解决方案: 博客链接 ...

  7. 03 测试Hadoop hdfs 上传 与 mr

    1.随便在哪个目录新增一个文档.内容随便输入 mkdir words 2.在hdfs 中新建文件输入目录 ./hdfs dfs -mkdir /test 3.把新建的文档 (/home/hadoop/ ...

  8. hadoop java上传文件

    import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.InputStream; impo ...

  9. tomcat 上传文件权限不足

    参考:https://www.cnblogs.com/houchaoying/p/8652040.html tomcat-bin-catalina.sh UMASK="0027" ...

随机推荐

  1. Bottle源码阅读笔记(一):WSGI

    前言 Bottle是一个Python Web框架.整个框架只有一个文件,不到4k行的代码,没有Python标准库以外的依赖,却包含了路由.模板和插件等Web框架常用功能.通过阅读Bottle源码来了解 ...

  2. javaSE_06Java中的数组(array)-提高练习

    1.求1!+2!+3!+···+30!的和,定义一个方法 public class Test1{ public static void main(String[] args){ //1.求1!+2!+ ...

  3. 设计模式二:MVC

    先附上部分代码: /* *MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式.这种模式用于应用程序的分层开发. *Model(模型) - 模型代表一个存取数据的对 ...

  4. mysql安装报错

    一: -- MySQL 5.5.22Warning: Bison executable not found in PATH-- Configuring done-- Generating done-- ...

  5. VMware 创建多台Linux机器并配置IP

    1.查看并分配虚拟网络 我们首先要知道 VMware 三种网络模式的区别. ①.Bridged(桥接模式):就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信.在桥接的作用下,类似于把物理主机虚拟为 ...

  6. 『珍藏】eclipse快捷键

    提示所有快捷键的快捷键是 ctrl+shift+L 菜单是在: window-->preferences-->general-->keys 提供能容帮助是 alt+/ Ctrl+1 ...

  7. 制作Ubuntu Kylin局域网源

    国人参与开发的开源操作系统UbuntuKylin(http://www.ubuntukylin.com/)已经发布有一段时间了,一直想在单位的局域网内部用用,可惜离线安装比较麻烦,于是搜索了些如何制作 ...

  8. Jmeter-WINDOWS下的配置部署

    前提:已配置安装JDK环境及已部署TOMCAT. 解压apache-jmeter-2.9.zip文件至目录,我的是D:\Program Files目录. 点击我的电脑----属性----高级----环 ...

  9. Myeclipse中隐藏jar包

    在package explorer的右上角有一个向下的小三角 点击选择Filter 在打开的对话框中 第一个选框中打上对勾 文字框中填上 *.jar 然后点击OK就行了 多个隐藏内容之间用逗号隔开 如 ...

  10. oracle 10G 没有 PIVOT 函数怎么办,自己写一个不久有了

    众所周知,静态SQL的输出结构必须也是静态的.对于经典的行转列问题,如果行数不定导致输出的列数不定,标准的答案就是使用动态SQL, 到11G里面则有XML结果的PIVOT. 但是 oracle 10G ...