Hadoop日记Day9---HDFS的java访问接口
一、搭建Hadoop 开发环境
我们在工作中写完的各种代码是在服务器中运行的,HDFS 的操作代码也不例外。在开发阶段,我们使用windows 下的eclipse 作为开发环境,访问运行在虚拟机中的HDFS。也就是通过在本地的eclipse 中的java 代码访问远程linux 中的hdfs。
要使用宿主机中的java 代码访问客户机中的hdfs,需要保证以下几点:
(1)确保宿主机与客户机的网络是互通的
(2)确保宿主机和客户机的防火墙都关闭,因为很多端口需要通过,为了减少防火墙配置,直接关闭.
(3)确保宿主机与客户机使用的jdk 版本一致。如果客户机为jdk6,宿主机为jdk7,那么代码运行时会报不支持的版本的错误。
(4)宿主机的登录用户名必须与客户机的用户名一直。比如我们linux 使用的是root 用户,那么windows 也要使用root 用户,否则会报权限异常
在eclipse 项目中覆盖hadoop 的org.apache.hadoop.fs.FileUtil 类的checkReturnValue 方法,如图1.1,目的是为了避免权限错误。
aaarticlea/png;base64,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" alt="" width="717" height="236" />
图1.1
如果读者在开发过程中出现权限等问题,请按照本节的提示检查自己的环境。
二、使用FileSystem api 读写数据
在hadoop 的HDFS 操作中,有个非常重要的api,是org.apache.hadoop.fs.FileSystem,这是我们用户代码操作HDFS 的直接入口,该类含有操作HDFS 的各种方法,类似于jdbc 中操作数据库的直接入口是Connection 类。
那我们怎么获得一个FileSystem 对象?
String uri = "hdfs://10.1.14.24:9000/";
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(URI.create(uri), conf);
以上代码中,要注意调用的是FileSystem 的静态方法get,传递两个值给形式参数,第一个访问的HDFS 地址,该地址的协议是hdfs,ip 是10.1.14.24,端口是9000。这个地址的完整信息是在配置文件core-site.xml 中指定的,读者可以使用自己环境的配置文件中的设置。第二个参数是一个配置对象。
1. 创建文件夹
使用HDFS 的shell 命令查看一下根目录下的文件情况,如图2.1所示。
图2.1
我们在HDFS 的根目录下创建文件夹,代码如下
------------------------------------------------------------------------------------------------------
final String pathString = "/d1";
boolean exists = fs.exists(new Path(pathString));
if(!exists){
boolean result = fs.mkdirs(new Path(pathString));
System.out.println(result);
}
------------------------------------------------------------------------------------------------------
以上代码中要放在Main函数中,
- 第一行决定创建的文件夹完整路径是“/d1”。
- 第二行代码是使用方法exitst判断文件夹是否存在;如果不存在,执行创建操作。
- 第三行创建文件夹,调用的是mkdirs 方法,返回值是布尔值,如果是true,表示创建成功;如果是false,表示创建失败。
现在查看一下是否成功了,如图3.2,3.3可见创建成功了。
图3.2
图 3.3
2. 写文件
我们可以向HDFS 写入文件,代码如下:
-----------------------------------------------------------------------------------------------------
final String pathString = "/d1/f1";
final FSDataOutputStream fsDataOutputStream = fs.create(new Path(pathString));//写出去
IOUtils.copyBytes(new ByteArrayInputStream("my name is Sunddenly".getBytes()),
fsDataOutputStream, conf, true);
------------------------------------------------------------------------------------------------------
第一行代码表示创建的文件是在刚才创建的d1 文件夹下的文件f1;
第二行是调用create 方法创建一个通向HDFS 的输出流;
第三行是通过调用hadoop 的一个工具类IOUtils 的静态方法copyBytes 把一个字符串发送给输出流中。
该静态方法有四个参数:
- 第一个参数输入流。
- 第二个参数是输出流。
- 第三个参数是配置对象。
- 第四个参数是布尔值,如果是true 表示数据传输完毕后关闭流。
现在看一下是否创建成功了,如图3.4所示。
图3.4
3. 读文件
现在我们把刚才写入到HDFS 的文件“/d1/f1”读出来,代码如下:
------------------------------------------------------------------------------------------------------
final String pathString = "/d1/f1";
final FSDataInputStream fsDataInputStream = fs.open(new Path(pathString));//读进来
IOUtils.copyBytes(fsDataInputStream, System.out, conf, true);
-------------------------------------------------------------------------------------------------------
- 第一行指定所读文件的路径。
- 第二行表示调用方法open 打开一个指定的文件,返回值是一个通向该文件的输入流;
- 第三行还是调用IOUtils.copyBytes 方法,输出的目的地是控制台。
见图3.5
图3.5
4. 查看目录列表和文件详细信息
我们可以把根目录下的所有文件和目录显示出来,代码如下
--------------------------------------------------------------------------------------------------------
final String pathString = "/";
final FileStatus[] listStatus = fs.listStatus(new Path(pathString));
for (FileStatus fileStatus : listStatus) {
final String type = fileStatus.isDir()?"目录":"文件";
final short replication = fileStatus.getReplication();
final String permission = fileStatus.getPermission() .toString();
final long len = fileStatus.getLen();
final Path path = fileStatus.getPath();
System.out.println(type+"\t"+permission+"\t"+replication+"\t"+len+"\t"+path);
}
-----------------------------------------------------------------------------------------------------------
调用listStatus方法会得到一个指定路径下的所有文件和文件夹,每一个用FileStatus表示。我们使用for循环显示每一个FileStatus对象。FileStatus对象表示文件的详细信息,里面含有类型、副本数、权限、长度、路径等很多信息,我们只是显示了一部分。结果如图3.6所示。
图 3.6
5. 删除文件或目录
我们可以删除某个文件或者路径,代码如下
-----------------------------------------------------------------------------------------------------
final String pathString = "/d1/f1";
//fs.delete(new Path("/d1"), true);
fs.deleteOnExit(new Path(pathString));
-----------------------------------------------------------------------------------------------------
第三行代码表示删除文件“/d1/f1”,注释掉的第二行代码表示递归删除目录“/d1”及下面的所有内容。除了上面列出的fs 的方法外,还有很多方法,请读者自己查阅api。
Hadoop日记Day9---HDFS的java访问接口的更多相关文章
- 熟练掌握HDFS的Java API接口访问
HDFS设计的主要目的是对海量数据进行存储,也就是说在其上能够存储很大量文件(可以存储TB级的文件).HDFS将这些文件分割之后,存储在不同的DataNode上, HDFS 提供了两种访问接口:She ...
- 掌握HDFS的Java API接口访问
HDFS设计的主要目的是对海量数据进行存储,也就是说在其上能够存储很大量文件(可以存储TB级的文件).HDFS将这些文件分割之后,存储在不同的DataNode上, HDFS 提供了两种访问接口:She ...
- hadoop学习(五)----HDFS的java操作
前面我们基本学习了HDFS的原理,hadoop环境的搭建,下面开始正式的实践,语言以java为主.这一节来看一下HDFS的java操作. 1 环境准备 上一篇说了windows下搭建hadoop环境, ...
- Hadoop编程调用HDFS(JAVA)
1.运行环境 开发工具:intellij idea JDK版本:1.8 项目管理工具:Maven 4.0.0 Hadoop环境: Cloudera QuickStart 2.GITHUB地址 http ...
- Hadoop(五)搭建Hadoop与Java访问HDFS集群
前言 上一篇详细介绍了HDFS集群,还有操作HDFS集群的一些命令,常用的命令: hdfs dfs -ls xxx hdfs dfs -mkdir -p /xxx/xxx hdfs dfs -cat ...
- Hadoop(五)搭建Hadoop客户端与Java访问HDFS集群
阅读目录(Content) 一.Hadoop客户端配置 二.Java访问HDFS集群 2.1.HDFS的Java访问接口 2.2.Java访问HDFS主要编程步骤 2.3.使用FileSystem A ...
- Hadoop日记系列目录
下面是Hadoop日记系列的目录,由于目前时间不是很充裕,以后的更新的速度会变慢,会按照一星期发布一期的原则进行,希望能和大家相互学习.交流. 目录安排 1> Hadoop日记Day1---H ...
- 【Hadoop】四、HDFS的java接口
Hadoop是用java语言实现的,因此HDFS有很好的java接口用以编程,重点就是Hadoop的FileSystem类,它是所有文件系统的抽象类,HDFS实例(DistributedFileS ...
- Hadoop学习笔记1 - 使用Java API访问远程hdfs集群
转载请标注原链接 http://www.cnblogs.com/xczyd/p/8570437.html 2018年3月从新司重新起航了.之前在某司过了的蛋疼三个月,也算给自己放了个小假了. 第一个小 ...
随机推荐
- Python+Selenium笔记(十一):配置selenium Grid
(一) 前言 Selenium Grid可以将测试分布在若干个物理或虚拟机器上,从而实现分布方式或并行方式执行测试. 这个链接是官方的相关说明. https://github.com/Selenium ...
- LeetCode题解之 Merge k Sorted Lists
1.题目描述 2.问题分析 使用合并两个链表的方法,逐次合并,效率较低.可以考虑同时合并K个链表. 3.代码 ListNode* mergeKLists(vector<ListNode*> ...
- LintCode题解之Search Range in Binary Search Tree
1.题目描述 2.问题分析 首先将二叉查找树使用中序遍历的方式将元素放入一个vector,然后在vector 中截取符合条件的数字. 3.代码 /** * Definition of TreeNode ...
- SQL Server 的 RowGuid/RowGuidCol 是什么意思?
SQL Server 中设计表时,有个属性叫 RowGuid(用 SQL 时,关键词是 RowGuidCol),这个是什么意思呢?这个是全局唯一标识符,与“标识”不同,标识是只在本表中唯一,全局唯一标 ...
- pythonGUI编程-tkinter
图形用户界面( G raphical U ser I nterface,GUI)编程 Python2.0级以下的版本叫做Tkinter,Python3.0改名为tkinter tkinter 模块:添 ...
- 另开一篇 https
https 流程 1.加密传输:对称加密传输信息 2.身份认证:非对称加密.通过证书来保障客户端给服务器的密钥唯一性. 因为中间层要是伪装公钥和证书,但是又无法解密原有的发送的数据,那么发给服务器的数 ...
- Eclipse 插件安装报错问题(已解决)
错误信息提示: An error occurred while installing the items session context was:(profile=epp.package.jee, p ...
- 经典Paxos算法笔记
介绍 Paxos算法是一个高容错性的分布式一致性算法.去年学习过Paxos算法,一直没将整理到博客.现在将经典Paxos算法相关内容整理到博客上. 经典Paxos算法本身也并不是太难理解,Lampor ...
- MySQL多实例.md
MySQL5.7多实例配置 数据库实例1配置文件 # cat /etc/my.cnf [mysqld] datadir=/data/mysql port=3306 socket=/tmp/mysql. ...
- 2017-2018-2 20165318 实验四《Android程序设计》实验报告
2017-2018-2 20165318 实验四<Android程序设计>实验报告 一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:孙晓暄 ...