Hadoop on Mac with IntelliJ IDEA - 2 解决URI错误导致Permission denied

本文讲述在IntelliJ IDEA中使用FileSystem.copyFromLocalFile操作Hadoop时因URI格式有误导致Permission denied的解决过程。

环境:Mac OS X 10.9.5, IntelliJ IDEA 13.1.4, Hadoop 1.2.1

Hadoop放在虚拟机中,宿主机通过SSH连接,IDE和数据文件在宿主机。

操作代码如下

 1 public class CopyFromLocalTestDriver {
 2     public static void main(String[] args) {
 3         Configuration configuration = new Configuration();
 4         try {
 5             FileSystem fileSystem = FileSystem.get(new URI("hadoopalice"), configuration);
 6
 7             Path dst = new Path("/d1/");
 8             Path src = new Path("/Users/michael/Desktop/Hadoop/Books/EasyHadoop实战手册.doc");
 9
10             fileSystem.copyFromLocalFile(src, dst);
11
12             boolean exists = fileSystem.exists(new Path("/d1/EasyHadoop实战手册.doc"));
13             System.out.println("FILE EasyHadoop实战手册.doc EXISTS STATUS: " + exists);
14         } catch (IOException e) {
15             e.printStackTrace();
16         } catch (URISyntaxException e) {
17             e.printStackTrace();
18         }
19     }
20 }

Hadoop中也有相应目录

执行却提示

嗯,你欺负我是小白,一定是。上一张图说了我是有访问权限的。

好,那就是说问题应该不在hadoop上,那就再检查下代码吧。

代码第5行,构造URI时,似乎并不符合URI规则。据Elliotte Rusty Harold. Java Network Programming 3rd Edition第七章的”URI的各部分“一节

URI引用包括多达三个部分:模式、模式特有部分和片段标识符。一般格式为:

  scheme:scheme-specific-part:fragment

对比第5行FileSystem fileSystem = FileSystem.get(new URI("hadoopalice"), configuration);少了模式部分,则它是个相对URI。方便起见,加上模式,简单粗暴地解决这个问题,继续后面的学习。

  FileSystem fileSystem = FileSystem.get(new URI("hdfs://hadoopalice:9000"), configuration);

重新执行,结果如下

查询hadoop,发现文件确实提交了。

时间: 2024-10-27 05:34:01

Hadoop on Mac with IntelliJ IDEA - 2 解决URI错误导致Permission denied的相关文章

Hadoop on Mac with IntelliJ IDEA - 7 解决failed to report status for 600 seconds. Killing!问题

本文讲述作业在Hadoop 1.2.1完成map后ruduce阶段遇到failed to report status for 600 seconds. Killing!问题的解决过程. 环境:Mac OS X 10.9.5, IntelliJ IDEA 13.1.4, Hadoop 1.2.1 Hadoop放在虚拟机中,宿主机通过SSH连接,IDE和数据文件在宿主机.IDEA自身运行于JDK 1.8,IDEA工程及Hadoop使用JDK 1.6. 提交作业到hadoop后,作业执行时间过长,输出

Hadoop on Mac with IntelliJ IDEA - 5 解决java heap space问题

本文讲述在CentOS 6.5中提交作业到hadoop 1.2.1于reduce阶段遇到Error: java heap space错误导致作业重新计算的解决过程.解决办法适用Linux.Mac OS X 和Windows操作系统. 环境:Mac OS X 10.9.5, IntelliJ IDEA 13.1.4, Hadoop 1.2.1 Hadoop放在虚拟机中,宿主机通过SSH连接,IDE和数据文件在宿主机.IDEA自身运行于JDK 1.8,IDEA工程及Hadoop使用JDK 1.6.

Hadoop on Mac with IntelliJ IDEA: 1 解决输入路径不存在问题

本文讲述使用IntelliJ IDEA时遇到Hadoop提示input path does not exist(输入路径不存在)的一种解决办法. 环境:Mac OS X 10.9.5, IntelliJ IDEA 13.1.4, Hadoop 1.2.1 Hadoop放在虚拟机中,宿主机通过SSH连接,IDE和数据文件在宿主机. 这是自学Hadoop的第三天.以前做过点.NET开发,Mac.IntelliJ IDEA.Hadoop.CentOS对我而言,相当陌生.第一份Hadoop代码就遇到了问

Hadoop on Mac with IntelliJ IDEA - 6 解决KeyValueTextInputFormat读取时只有key值问题

本文讲述使用KeyValueTextInputFormat在Hadoop 0.x正常工作.Hadoop 1.2.1失效的解决过程. 环境:Mac OS X 10.9.5, IntelliJ IDEA 13.1.4, Hadoop 1.2.1 Hadoop放在虚拟机中,宿主机通过SSH连接,IDE和数据文件在宿主机.IDEA自身运行于JDK 1.8,IDEA工程及Hadoop使用JDK 1.6. 还在折腾Hadoop In Action第4章的代码,书的写法,如下所示. job.setInputF

Hadoop on Mac with IntelliJ IDEA - 9 解决Type mismatch in value from map问题

修改陆喜恒. Hadoop实战(第2版)5.3排序的代码时遇到IO异常. 环境:Mac OS X 10.9.5, IntelliJ IDEA 13.1.5, Hadoop 1.2.1 异常具体信息如下 1 14/10/06 03:08:51 INFO mapred.JobClient: Task Id : attempt_201410021756_0043_m_000000_0, Status : FAILED 2 java.io.IOException: Type mismatch in va

解决ubuntu bash: cd: ~:Permission denied

cd /usr/local/hadoop 报错:bash: cd: /usr/local/hadoop:Permission denied 输入指令: sudo chmod 777 /usr/local/hadoop 原因是没有权限,777代表,user,group ,others ,都有读写和可执行权限.

解决mongodb服务启动 Permission denied:exception in ...

解决mongodb服务启动报错:exception in initAndListen: 98 Unable to create/open lock file: /var/lib/mongodb/mongod.lock errno:13 Permission denied is a mongod instance already running? mongodb服务启动不成功,通过查看日志文件,命令: [Shell] 纯文本查看 复制代码 ? 1 sudo gedit /var/log/mongo

Hadoop on Mac with IntelliJ IDEA - 4 制作jar包

本文讲述使用IntelliJ IDEA打包Project的过程,即,打jar包. 环境:Mac OS X 10.9.5, IntelliJ IDEA 13.1.4, Hadoop 1.2.1 Hadoop放在虚拟机中,宿主机通过SSH连接,IDE和数据文件在宿主机.IDEA自身运行于JDK 1.8,IDEA工程及Hadoop使用JDK 1.6. 在本系列博文的第一篇,我因不会使用IDEA打jar包,不得不直接调试代码,遇到输入路径不存在问题.今天,我打了几次jar包,结果不都满意,默认情况,ID

Hadoop on Mac with IntelliJ IDEA - 8 单表关联NullPointerException

简化陆喜恒. Hadoop实战(第2版)5.4单表关联的代码时遇到空指向异常,经分析是逻辑问题,在此做个记录. 环境:Mac OS X 10.9.5, IntelliJ IDEA 13.1.5, Hadoop 1.2.1 改好的代码如下,在reduce阶段遇到了NullPointerException. 1 public class STjoinEx { 2 private static final String TIMES = "TIMES"; 3 4 public static v