2 weekend110的HDFS的JAVA客户端编写 + filesystem设计思想总结
HDFS的JAVA客户端编写
现在,我们来玩玩,在linux系统里,玩eclipse
或者,
即,更改图标,成功
这个,别慌。重新换个版本就好,有错误出错是好事。
具体如何下载,我就省略了。直接继续
这个,肯定是与之前,有重复的,没关系,它会自行覆盖,
就是说,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设计思想总结的更多相关文章
- HDFS的Java客户端编写
总结: 之前在教材上看hdfs的Java客户端编写,只有关键代码,呵呵…….闲话不说,上正文. 1. Hadoop 的Java客户端编写建议在linux系统上开发 2. 可以使用eclipse,ide ...
- 一次失败的尝试hdfs的java客户端编写(在linux下使用eclipse)
一次失败的尝试hdfs的java客户端编写(在linux下使用eclipse) 给centOS安装图形界面 GNOME桌面环境 https://blog.csdn.net/wh211212/artic ...
- 【Hadoop】HDFS的java客户端编写
项目使用了Maven Project 快速进行HDFS 客户端程序测试 客户端操作系统:win10 64位 JDK: 1.7.0_79 开发工具 :Eclipse Luna pom.xml < ...
- 一脸懵逼学习hadoop之HDFS的java客户端编写
1:eclipse创建一个项目,然后导入对应的jar包: 鼠标右击项目,点击properties或者alt+enter快捷键--->java build path--->libraries ...
- day03-hdfs的客户端操作\hdfs的java客户端编程
5.hdfs的客户端操作 客户端的理解 hdfs的客户端有多种形式: 1.网页形式 2.命令行形式 3.客户端在哪里运行,没有约束,只要运行客户端的机器能够跟hdfs集群联网 文件的切块大小和存储的副 ...
- hdfs shell命令及java客户端编写
一. hdfs shell命令 可以通过hadoop fs 查看所有的shell命令及其用法. 传文件到hdfs: hadoop fs -put /home/koushengrui/Downloads ...
- HDFS的Java客户端操作代码(HDFS的查看、创建)
1.HDFS的put上传文件操作的java代码: package Hdfs; import java.io.FileInputStream; import java.io.FileNotFoundEx ...
- HDFS的java客户端操作代码(Windows上面打jar包,提交至linux运行)
1.通过java.net.URL实现屏幕显示demo1文件的内容 package Hdfs; import java.io.InputStream; import java.net.URL; impo ...
- HDFS的Java客户端操作代码(HDFS删除文件或目录)
1.HDFS删除文件或目录 package Hdfs; import java.io.IOException; import java.net.URI; import org.apache.hadoo ...
随机推荐
- MongoDB 学习笔记(四)C# 操作MongoDB
C#驱动对mongodb的操作,目前驱动有两种:官方驱动和samus驱动,不过我个人还是喜欢后者, 因为提供了丰富的linq操作,相当方便. 官方驱动:https://github.com/mongo ...
- 一、Oracle分析函数入门
分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计值. 分析函数和聚合函数的不同 ...
- 移动WebApp开发框架(珍藏)
1.Jquery Mobilehttp://demos.jquerymobile.com/1.4.5/button-markup/http://andymatthews.net/code/jQuer ...
- UVa 1611 (排序 模拟) Crane
假设数字1~i-1已经全部归位,则第i到第n个数为无序区间. 如果i在无序区间的前半段,那么直接将i换到第i个位置上. 否则先将i换到无序区间的前半段,再将i归位.这样每个数最多操作两次即可归位. # ...
- asp.net webpage
一.服务器脚本基础介绍 首先,我们先复习一下Web服务器页面的基本执行方式: 1. 客户端通过在浏览器的地址栏敲入地址来发送请求到服务器端 2. 服务器接收到请求之后,发给相应的服务器端页面(也就是脚 ...
- 16.Object-C--NSArray数组的排序
今天我来总结一下NSArray数组的排序方式. NSArray数组的排序有三种方式: 1.简单排序(sortedArrayUsingSelector:) 2.利用block语法(sortedArray ...
- Windows上安装Yeoman
之前直接安装完Node.js后,运行npm install -g yo命令,结果出现什么"要安装framework2.0 sdk,vcbuild"什么的错误,怎么也弄不好,结果是各 ...
- 监听器Listener
监听器 6个事件类,均以event结尾 *某些操作,如启动/关闭容器,创建/销毁会话,都将触发一种事件发生,当发生了某种事件,容器将创建对应的事件类对象 8个监听接口,均以Listener结尾 监听器 ...
- Http进行网络通信
http使用get的方式进行网络通信: package com.testGet; import java.io.BufferedReader; import java.io.IOException; ...
- Java 动态太极图 DynamicTaiChi (整理)
package demo; import java.awt.Color; import java.awt.Graphics; import javax.swing.JFrame; import jav ...