大数据 | Java 操作 HDFS 常用 API
一、回顾常用的命令
在上篇文章中整理了 HDFS 常用的命令,这里进行简单的回顾。
ls 命令用来查看 HDFS 系统中的目录和文件,命令如下:
put 命令用来将本地文件上传到 HDFS 系统中,命令如下:
moveFromLocal 命令将本地文件移动到 HDFS 文件系统中,并将本地的文件进行删除,命令如下:
get 命令用来将 HDFS 文件系统中的文件下载到本地,命令如下:
rm 命令用来删除 HDFS 系统中的文件或文件夹,命令如下
mkdir 命令用来在 HDFS 系统中创建目录,命令如下:
cp 命令在 HDFS 系统中用于文件的复制,命令如下:
mv 命令在 HDFS 系统中用于完成文件移动的功能,也可以用来进行文件的重命名功能,命令如下:
cat 命令在 HDFS 文件系统中用于输出某个文件的内容,命令如下:
appendToFile 命令将单个或多个文件的内容从本地系统中追加到 HDFS 系统的文件中,命令如下:
上面的内容简单的对 HDFS 文件系统的常用命令进行了回顾,接下来,我们来整理一下关于 HDFS 常用的 Java API。
二、引入依赖
使用 HDFS 的 Java API 可以操作 HDFS 文件系统中的文件,比如文件的新建、删除、读取等。创建一个 Maven 的项目,然后引入其依赖,准备工作就算是完成了,依赖如下:
引入该依赖后,在 HDFS 的 Java API 中使用 FileSystem 工具类,它可以完成我们的操作,下面我们来进行了解。
三、文件列表
代码非常的简单,因此这里直接上代码,代码如下:
上面的代码中,在自定义的方法 getFileList 中通过 FileSystem 类的 listStatus() 方法返回了 HDFS 文件系统 / 目录下的所有文件和目录,输出内容如下:
上面的输出则是我虚拟机中 HDFS 中的文件列表。如果需要显示其他目录下的文件和目录列表,只需要传入相应的路径即可。如果要显示全部文件,只需要判断是否为目录,如果为目录直接递归调用就可以了。
四、创建目录
创建目录使用 FileSystem 类的 mkdirs 方法即可完成,代码如下:
mkdirs 方法的返回类型是 boolean 类型,返回 true 表示创建成功,返回 false 表示创建失败。使用 HDFS 的命令来进行查看,命令如下:
可以看到,/hdfsDir 目录被创建成功。
五、文件的创建
文件的创建使用 FileSystem 类的 create 方法即可完成文件的创建,代码如下:
上面的代码在 HDFS 的根目录下创建了一个名为 fileAbc.txt 的文件,并向文件内写入了 1234 这样的内容,通过命令来查看该文件是否创建成功,内容是否写入成功,命令如下:
六、文件内容的输出
文件内容的输出使用 FileSystem 类的 open 方法,使用输入流进行读取即可。代码如下:
运行代码即可看到文件的内容被输出,输出如下:
七、删除文件
文件的删除使用 FileSystem 类的 deleteOnExit 方法,代码如下:
通过命令进行查看,文件已经被删除了。
八、读取文件/目录的元数据
读取文件/目录的元数据使用 FileSystem 类的 getFileStatus 方法即可完成,代码如下:
通过 FileStatus 可以得到文件的各种信息,上面的输出内容如下:
这里,我们获取了文件的路径、修改日期、上次访问日期、文件长度等信息。
九、上传本地文件到 HDFS
上传文件使用 FileSystem 类的 copyFromLocalFile 即可完成,代码如下:
通过命令来查看上传的情况,命令如下:
十、下载 HDFS 文件到本地
下载 HDFS 文件到本地使用 FileSystem 类的 copyToLocalFile 方法即可,代码如下:
到本地的 D 盘进行查看,文件已经下载成功。
十一、总结
HDFS 是 Hadoop 项目中的核心模块,使用 HDFS 的 Java API 操作 HDFS 非常的方便也比较简单。不知道大家注意到了么,HDFS 作为文件系统,它可以完成对 文件的 增加、追加、删除、查看 等功能,但是,竟然没有对文件进行修改的功能。这是 HDFS 有别于其他文件系统的一个特点,HDFS 的作者是出于什么样的目的如此设计呢?留着以后讨论吧!
出处:https://mp.weixin.qq.com/s/4XZK4-mkjJ5T4TpYI_ZYBw
JAVA浏览器控件JxBrowser v7.3上线!最新API文档打包带走
JxBrowser是将基于Chromium的浏览器与Java应用程序集成,以处理和显示HTML5,CSS3,JavaScript,Flash等。
近日,JxBrowser v7.3发布上线,支持最新macOS Catalina,支持Java13,支持浏览器发起的URL请求。小编为大家整理了v7.3版的API文档,包括使用的API及其相关描述。
(点击文末“了解更多”下载最新版Jxbrowser)
- com.teamdev.jxbrowser 包含所有用于创建和使用引擎和浏览器的类。
- com.teamdev.jxbrowser.annotation 此包包含用于Java代码的公共注释类型。
- com.teamdev.jxbrowser.browser 这个包提供了允许您使用浏览器的类。
- com.teamdev.jxbrowser.browser.callback 这个包提供了允许您使用浏览器回调的类。
- com.teamdev.jxbrowser.browser.callback.input 鼠标和键盘输入回调。
- com.teamdev.jxbrowser.browser.event 这个包提供了允许您处理浏览器事件的类。
- com.teamdev.jxbrowser.cache 包含允许使用缓存的类。
- com.teamdev.jxbrowser.callback 包含所有回调都必须扩展的公共接口。
- com.teamdev.jxbrowser.cookie 包含允许您管理cookie的类。 com.teamdev.jxbrowser.devtools 这个包提供了允许您使用Chromium开发工具的类。
- com.teamdev.jxbrowser.dom 提供文档对象模型(DOM)的接口和类。 com.teamdev.jxbrowser.dom.event 包含DOM事件的类和接口。
- com.teamdev.jxbrowser.download 这个包提供了允许您管理下载的类。
- com.teamdev.jxbrowser.download.callback 下载服务回调。
- com.teamdev.jxbrowser.download.event 下载活动事件。
- com.teamdev.jxbrowser.engine 这个包提供了允许您使用引擎的类。 com.teamdev.jxbrowser.engine.event 发动机的事件。
- com.teamdev.jxbrowser.event 引擎和浏览器事件。
- com.teamdev.jxbrowser.frame 这个包提供了允许您在浏览器中使用框架的类。
- com.teamdev.jxbrowser.js 这个包提供的类允许您使用JavaScript到Java的桥接
- com.teamdev.jxbrowser.logging 提供允许配置日志记录的类。 com.teamdev.jxbrowser.media 提供处理媒体内容和设备的接口和类。
- com.teamdev.jxbrowser.media.callback 媒体的回调。
- com.teamdev.jxbrowser.media.event 媒体相关事件
- com.teamdev.jxbrowser.menu 此包包含用于处理上下文菜单的接口和类。
- com.teamdev.jxbrowser.navigation 包含用于使用导航的类和接口。
- com.teamdev.jxbrowser.navigation.callback 导航回调。
- com.teamdev.jxbrowser.navigation.event 导航事件。 com.teamdev.jxbrowser.net 包含用于处理网络的类和接口。
- com.teamdev.jxbrowser.net.callback 网络服务回调。
- com.teamdev.jxbrowser.net.event 网络服务事件。
- com.teamdev.jxbrowser.net.proxy 提供允许配置代理的类。
- com.teamdev.jxbrowser.net.tls 包含用于处理SSL证书的类和接口。
- com.teamdev.jxbrowser.os 提供使用操作系统相关功能的实用程序类和接口。
- com.teamdev.jxbrowser.permission 此包提供允许使用权限的类。
- com.teamdev.jxbrowser.permission.callback 权限服务回调。
- com.teamdev.jxbrowser.plugin 包含筛选可用插件的类和接口。 com.teamdev.jxbrowser.plugin.callback 插件服务回调。
- com.teamdev.jxbrowser.search 提供使用搜索功能的类和接口。
- com.teamdev.jxbrowser.spellcheck 此包提供用于拼写检查的类和接口。 com.teamdev.jxbrowser.time 用于处理时间的实用程序类。
- com.teamdev.jxbrowser.ui 用户界面(UI)相关功能的实用程序类。 com.teamdev.jxbrowser.ui.event 用户界面事件。
- com.teamdev.jxbrowser.view.javafx 包含一个显示浏览器内容的JavaFX UI组件
- com.teamdev.jxbrowser.view.javafx.callback 包含显示JavaFX UI对话框的回调实现。
- com.teamdev.jxbrowser.view.swing 包含一个显示浏览器内容的Swing UI组件。
- com.teamdev.jxbrowser.view.swing.callback 包含显示Swing UI对话框的回调的实现。
- com.teamdev.jxbrowser.zoom 此包包含用于处理网页缩放的类和接口。
- com.teamdev.jxbrowser.zoom.event 缩放事件。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。