一、搭建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访问接口的更多相关文章

  1. 熟练掌握HDFS的Java API接口访问

    HDFS设计的主要目的是对海量数据进行存储,也就是说在其上能够存储很大量文件(可以存储TB级的文件).HDFS将这些文件分割之后,存储在不同的DataNode上, HDFS 提供了两种访问接口:She ...

  2. 掌握HDFS的Java API接口访问

    HDFS设计的主要目的是对海量数据进行存储,也就是说在其上能够存储很大量文件(可以存储TB级的文件).HDFS将这些文件分割之后,存储在不同的DataNode上, HDFS 提供了两种访问接口:She ...

  3. hadoop学习(五)----HDFS的java操作

    前面我们基本学习了HDFS的原理,hadoop环境的搭建,下面开始正式的实践,语言以java为主.这一节来看一下HDFS的java操作. 1 环境准备 上一篇说了windows下搭建hadoop环境, ...

  4. Hadoop编程调用HDFS(JAVA)

    1.运行环境 开发工具:intellij idea JDK版本:1.8 项目管理工具:Maven 4.0.0 Hadoop环境: Cloudera QuickStart 2.GITHUB地址 http ...

  5. Hadoop(五)搭建Hadoop与Java访问HDFS集群

    前言 上一篇详细介绍了HDFS集群,还有操作HDFS集群的一些命令,常用的命令: hdfs dfs -ls xxx hdfs dfs -mkdir -p /xxx/xxx hdfs dfs -cat ...

  6. Hadoop(五)搭建Hadoop客户端与Java访问HDFS集群

    阅读目录(Content) 一.Hadoop客户端配置 二.Java访问HDFS集群 2.1.HDFS的Java访问接口 2.2.Java访问HDFS主要编程步骤 2.3.使用FileSystem A ...

  7. Hadoop日记系列目录

    下面是Hadoop日记系列的目录,由于目前时间不是很充裕,以后的更新的速度会变慢,会按照一星期发布一期的原则进行,希望能和大家相互学习.交流. 目录安排 1>  Hadoop日记Day1---H ...

  8. 【Hadoop】四、HDFS的java接口

      Hadoop是用java语言实现的,因此HDFS有很好的java接口用以编程,重点就是Hadoop的FileSystem类,它是所有文件系统的抽象类,HDFS实例(DistributedFileS ...

  9. Hadoop学习笔记1 - 使用Java API访问远程hdfs集群

    转载请标注原链接 http://www.cnblogs.com/xczyd/p/8570437.html 2018年3月从新司重新起航了.之前在某司过了的蛋疼三个月,也算给自己放了个小假了. 第一个小 ...

随机推荐

  1. react native中的聊天气泡以及timer封装成的发送验证码倒计时

    今天看来情书写的文章,研究了一下大佬写的文章,自己做一点总结. 其实,今天我想把我近期遇到的坑都总结一下:1.goBack的跨页面跳转,又两种方法,一可以像兔哥那样修改navigation源码,二可以 ...

  2. encode()、decode()字符编码问题

    python3中,更改了默认的编码方式,更改为了unicode 前提知识: utf-8与Unicode的关系:https://baike.baidu.com/item/UTF-8/481798?fr= ...

  3. Linux服务器ftp+httpd部署

    一.ftp安装 1.安装vsftpd 命令:yum -y install vsftpd 2.修改ftp配置文件 命令:vim /etc/vsftpd/vsftpd.conf 3.按i进入insert模 ...

  4. 在 Azure 中的 Windows 虚拟机上使用 SSL 证书保护 IIS Web 服务器

    若要保护 Web 服务器,可以使用安全套接字层 (SSL) 证书来加密 Web 流量. 这些 SSL 证书可存储在 Azure Key Vault 中,并可安全部署到 Azure 中的 Windows ...

  5. SQL Server FileStream (转载)

    从SQL SERVER 2008开始,SQL SERVER引入了一种新的文件组类型叫FileStream文件组,如下图所示: 那么这种文件组是用来做什么的呢? 以往我们对文件管理有两种方法: 数据库只 ...

  6. MySQL分析函数实现

    | MySQL分析函数实现还好MySQL8.0已经实现了与Oracle相同的分析函数. 1. 实现rownumSET @rn:=0;SELECT @rn:=@rn+1 AS rownum ,e.* F ...

  7. sql server复制表数据到另外一个表 的存储过程

    ) Drop Procedure GenerateData go CREATE PROCEDURE GenerateData @tablename sysname AS begin ) ) ) dec ...

  8. 像azure一样桌面显示Windows系统信息

    介绍 我们在使用azure的公有云时,可以看到打开虚拟机时右上角可以显示系统配置信息和公网私有地址,很好奇如何做到的,终于经过询问一位微软的朋友,他帮我找到了这个工具 工具地址:https://tec ...

  9. October 19th 2017 Week 42nd Thursday

    If you remember me, then I don't care if everyone else forgets. 只要你记得我,我不介意整个世界都把我遗忘了. I can't follo ...

  10. DevExpress03、GridControl

    设计数据源并绑定字段: 数据源可以是实现下列接口之一的任何类型: IList 接口,包括一维数组.List<T>等! IListSource 接口,例如,DataTable 和 DataS ...