HDFS的JAVA客户端编写 

现在,我们来玩玩,在linux系统里,玩eclipse

或者,

即,更改图标,成功

这个,别慌。重新换个版本就好,有错误出错是好事。

http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/luna/SR2/eclipse-jee-luna-SR2-linux-gtk-x86_64.tar.gz

具体如何下载,我就省略了。直接继续

这个,肯定是与之前,有重复的,没关系,它会自行覆盖,

就是说,home/hadoop/app/hadoop-2.4.1/share/hadoop/common/lib

和,home/hadoop/app/hadoop-2.4.1/share/hadoop/hdfs/lib

有重复的,没关系,它会自行覆盖。

到此,hdfslib下的相关依赖jar包加载完毕。

New是无法new的,只能get和set方法

本地,java里的那个fileoutputstream。

它不认识hdfs://

希望得到,这样的一个解析,file:///

玩windows下的eclipse去。

总结:其实,创建User Library,如hdfslib,mapreducelib,yarnlib。

如创建hdfslib,则需要

/home/hadoop/app/hadoop-2.4.1/share/hadoop/hdfs/*

/home/hadoop/app/hadoop-2.4.1/share/hadoop/hdfs/lib/*

/home/hadoop/app/hadoop-2.4.1/share/hadoop/common/*

home/hadoop/app/hadoop-2.4.1/share/hadoop/common/lib/*

 

如创建mapreducelib,则需要

/home/hadoop/app/hadoop-2.4.1/share/hadoop/mapreduce/*

 /home/hadoop/app/hadoop-2.4.1/share/hadoop/mapreduce/lib/*

/home/hadoop/app/hadoop-2.4.1/share/hadoop/common/*

home/hadoop/app/hadoop-2.4.1/share/hadoop/common/lib/*

 

如创建yarnlib,则需要

/home/hadoop/app/hadoop-2.4.1/share/hadoop/yarn/*

/home/hadoop/app/hadoop-2.4.1/share/hadoop/yarn/lib/*

/home/hadoop/app/hadoop-2.4.1/share/hadoop/common/*

home/hadoop/app/hadoop-2.4.1/share/hadoop/common/lib/*

 

如创建httpfslib,则需要

/home/hadoop/app/hadoop-2.4.1/share/hadoop/httpfs/tomcat/lib*

/home/hadoop/app/hadoop-2.4.1/share/hadoop/common/*

home/hadoop/app/hadoop-2.4.1/share/hadoop/common/lib/*

 

如创建toolslib,则需要

/home/hadoop/app/hadoop-2.4.1/share/hadoop/tools/lib*

/home/hadoop/app/hadoop-2.4.1/share/hadoop/common/*

home/hadoop/app/hadoop-2.4.1/share/hadoop/common/lib/*

 

 

 

会有重复的,但是,没关系,自己会覆盖。

当然,这只是为了具体分析,在生产中,都是直接导入总包。

如创建hdfslib,则需要

/home/hadoop/app/hadoop-2.4.1/share/hadoop/hdfs/*

/home/hadoop/app/hadoop-2.4.1/share/hadoop/hdfs/lib/*

/home/hadoop/app/hadoop-2.4.1/share/hadoop/common/*

home/hadoop/app/hadoop-2.4.1/share/hadoop/common/lib/*

 

如创建mapreducelib,则需要

/home/hadoop/app/hadoop-2.4.1/share/hadoop/mapreduce/*

 /home/hadoop/app/hadoop-2.4.1/share/hadoop/mapreduce/lib/*

/home/hadoop/app/hadoop-2.4.1/share/hadoop/common/*

home/hadoop/app/hadoop-2.4.1/share/hadoop/common/lib/*

 

如创建yarnlib,则需要

/home/hadoop/app/hadoop-2.4.1/share/hadoop/yarn/*

/home/hadoop/app/hadoop-2.4.1/share/hadoop/yarn/lib/*

/home/hadoop/app/hadoop-2.4.1/share/hadoop/common/*

home/hadoop/app/hadoop-2.4.1/share/hadoop/common/lib/*

 

如创建httpfslib,则需要

/home/hadoop/app/hadoop-2.4.1/share/hadoop/httpfs/tomcat/lib*

/home/hadoop/app/hadoop-2.4.1/share/hadoop/common/*

home/hadoop/app/hadoop-2.4.1/share/hadoop/common/lib/*

 

如创建toolslib,则需要

/home/hadoop/app/hadoop-2.4.1/share/hadoop/tools/lib*

/home/hadoop/app/hadoop-2.4.1/share/hadoop/common/*

home/hadoop/app/hadoop-2.4.1/share/hadoop/common/lib/*

 

 

 

会有重复的,但是,没关系,自己会覆盖。

当然,这只是为了具体分析,在生产中,都是直接导入总包。

FileSystem是一个抽象类,New是无法new的,只能get和set方法

这里,有个非常实用的快捷键,

在C盘,新建qingshu.txt

出现错误是好事,

原来是这里,

后经查找资料,是少了个 winutils.exe

这只是个WARN警告而已,不影响运行。

错误是:

java.lang.IllegalArgumentException:Wrong FS:hdfs://weekend110:9000/aa,expected:file:///

解决方案一:就不再写了,是上面的在Linux里解决的那种方法。

将/home/hadoop/app/hadoop-2.4.1/etc/hadoop/core-site.xml

和/home/hadoop/app/hadoop-2.4.1/etc/hadoop/hdfs-site.xml

放到,

解决方案二:

身份报错,windows是administrator,hadoop集群那边是hadoop ,supergroup。

-DHADOOP_USER_NAME=Hadoop

问题在:d:\test.txt这个文件。此文件没有扩展名

解决方法:电脑工具栏-文件夹选项-查看-高级设置:-隐藏已知文件类型的扩展名(勾选去掉-应用-确定)

解决方案:

解决方案:

比较底层的写法,适合懂原理。

封装好的写法,适合开发。

解决方案:

快捷键是什么?

我的只能这样

默认是path,养成业务习惯。

等价于,下面

总结,本地文件系统操作很简单,new file即可,

具体的实现是不一样的。但是,上层有一个抽象的文件系统,是Filesystem,为什么这么弄?

是因为Hadoop的文件系统伴随其他的框架结耦合的,我在编程时,只需面向父即抽象,filesystem就可以了,filesystem具体去拿哪个文件系统,我上层不需去管,

你具体是本地文件系统RawLocalFileSystem,那我就可以拿本地文件系统去读啊

你的数据是放在hdfs里面,那我就可以拿DistributedFileSystem去读啊

你的数据是放在S3里面,那我就可以拿S3FileSystem去读啊

你的数据是放在htp服务器里面,,,,,,,都可以。

 

总而言之,降低耦合度。

Filesystem设计思想总结

也可以这样来,

2 weekend110的HDFS的JAVA客户端编写 + filesystem设计思想总结的更多相关文章

  1. HDFS的Java客户端编写

    总结: 之前在教材上看hdfs的Java客户端编写,只有关键代码,呵呵…….闲话不说,上正文. 1. Hadoop 的Java客户端编写建议在linux系统上开发 2. 可以使用eclipse,ide ...

  2. 一次失败的尝试hdfs的java客户端编写(在linux下使用eclipse)

    一次失败的尝试hdfs的java客户端编写(在linux下使用eclipse) 给centOS安装图形界面 GNOME桌面环境 https://blog.csdn.net/wh211212/artic ...

  3. 【Hadoop】HDFS的java客户端编写

    项目使用了Maven  Project 快速进行HDFS 客户端程序测试 客户端操作系统:win10 64位 JDK: 1.7.0_79 开发工具 :Eclipse Luna pom.xml < ...

  4. 一脸懵逼学习hadoop之HDFS的java客户端编写

    1:eclipse创建一个项目,然后导入对应的jar包: 鼠标右击项目,点击properties或者alt+enter快捷键--->java build path--->libraries ...

  5. day03-hdfs的客户端操作\hdfs的java客户端编程

    5.hdfs的客户端操作 客户端的理解 hdfs的客户端有多种形式: 1.网页形式 2.命令行形式 3.客户端在哪里运行,没有约束,只要运行客户端的机器能够跟hdfs集群联网 文件的切块大小和存储的副 ...

  6. hdfs shell命令及java客户端编写

    一. hdfs shell命令 可以通过hadoop fs 查看所有的shell命令及其用法. 传文件到hdfs: hadoop fs -put /home/koushengrui/Downloads ...

  7. HDFS的Java客户端操作代码(HDFS的查看、创建)

    1.HDFS的put上传文件操作的java代码: package Hdfs; import java.io.FileInputStream; import java.io.FileNotFoundEx ...

  8. HDFS的java客户端操作代码(Windows上面打jar包,提交至linux运行)

    1.通过java.net.URL实现屏幕显示demo1文件的内容 package Hdfs; import java.io.InputStream; import java.net.URL; impo ...

  9. HDFS的Java客户端操作代码(HDFS删除文件或目录)

    1.HDFS删除文件或目录 package Hdfs; import java.io.IOException; import java.net.URI; import org.apache.hadoo ...

随机推荐

  1. matlab函数集锦

    matlab函数集锦 matlab函数集锦ISFINITE(X), ISINF(X), or ISNAN(X)pwd 当前目录eval 执行matlab函数CONV2(  ,'same')  卷积F  ...

  2. java中参数传递

    一.参数是基本类型 相当于C++传值调用,方法中的形参是实参的副本. 二.参数是类类型 类类型的参数在方法调用中,相当于C++中的传址调用.形参是实参引用同一个对象.所有形参修改则实参也修改了 三.总 ...

  3. Miller_Rabin (米勒-拉宾) 素性测试

    之前一直对于这个神奇的素性判定方法感到痴迷而又没有时间去了解.借着学习<信息安全数学基础>将素性这一判定方法学习一遍. 首先证明一下费马小定理. 若p为素数,且gcd(a, p)=1, 则 ...

  4. UVa 11210 (DFS) Chinese Mahjong

    大白书第一章的例题,当时看起来很吃力,现如今A这道题的话怎么写都无所谓了. 思路很简单,就是枚举胡哪张牌,然后枚举一下将牌,剩下如果能找到4个顺子或者刻子就胡了. 由于粗心,34个字符串初始化写错,各 ...

  5. 51nod1189 阶乘分数

    (x-n!)(y-n!)=n!2 ans=t[n]+1.t表示的是n!2的小于n!的约数个数.n!2=p1a1*p2a2*p3a3...t[n]=(a1+1)*(a2+1)...-1 /2; 2对于n ...

  6. PHP实现站点pv,uv统计(一)

    具体步骤分为数据采集脚本,数据收取服务,数据分析脚本,数据存储服务 采集脚本一般有两种形式,一种是简单的页面插入一个图片进行请求,一种是复杂的动态生成js标签,引入一段js(这时采集服务器会网往客户端 ...

  7. 【转】Git连接oschina管理代码版本

    原文网址:http://blog.csdn.net/liukang325/article/details/24051467 工作中一般都是用的SVN,最近好像GitHub有些火,看到开源中国上也有Gi ...

  8. nodejs的调试(node-inspector)

    我们在接触客户端javascript的时候,调试利器就是firebug ,也是当年为何喜欢用上firefox 浏览器的主要动力,当然,后来 chrome 插件里也出现了firebug的身影..... ...

  9. MongoDB中shell基本使用

    1.创建一个数据库,名为foobar use foobar 这个foobar数据库没有被真正的被创建.只是在mongo的缓存中 但是直接离开的话,这个数据库会被mongo删除. 2.现在我们给foob ...

  10. App中嵌入网页浏览器

    TOWebViewController 插件 NSURL *url =[NSURL URLWithString:@"http://192.168.1.134:8180/Home/IndexP ...