Hadoop之HDFS(三)HDFS的JAVA API操作

Hadoop之HDFS(三)HDFS的JAVA API操作

HDFS的JAVA API操作

  HDFS 在生产应用中主要是客户端的开发,其核心步骤是从 HDFS 提供的 api中构造一个 HDFS 的访问客户端对象,然后通过该客户端对象操作(增删改查)HDFS 上的文件。

创建 Maven工程,引入 pom依赖:

    <dependencies>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>2.7.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>2.7.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>2.7.4</version>
        </dependency>
    </dependencies>

配置Windows平台的Hadoop环境

在 windows 平台下编译 Hadoop 源码
解压到 windows 的任意一个目录下(无中文无空格)
在 windows 系统中配置 HADOOP_HOME 指向你解压的安装包目录
在 windows 系统的 path 变量中加入 HADOOP_HOME 的 bin 目录(和配置java环境变量基本一致)

使用java api操作HDFS

public class HDFSClient {
    public static void main(String[] args) throws Exception {
        //指定相关参数的配置
        Configuration conf = new Configuration();
        //这里指定使用的是 hdfs 文件系统
        conf.set("fs.defaultFS", "hdfs://bigdata-01:9000");

        //通过如下的方式进行客户端身份的设置
        System.setProperty("HADOOP_USER_NAME", "root");

        //通过 FileSystem 的静态方法获取文件系统客户端对象
        FileSystem fs = FileSystem.get(conf);
        //也可以通过如下的方式去指定文件系统的类型 并且同时设置用户身份
        //FileSystem fs = FileSystem.get(new URI("hdfs://bigdata-01:9000"), conf, "root");


        //创建一个文件夹
        //fs.mkdirs(new Path("/hdfsbyjava"));
        //创建一个文件
        //fs.create(new Path("/hdfsbyjava/abc"), false);

        //上传一个文件
        //fs.copyFromLocalFile(new Path("d:/a.txt"), new Path("/hdfsbyjava-ha"));


        //下载一个文件
        fs.copyToLocalFile(new Path("/hdfsbyjava/abc"),new Path("D://bcd"));

        //删除一个文件
        //fs.delete(new Path("/hdfsbyjava/abc"));

        //关闭文件系统
        fs.close();
    }
}

 

posted @ 2017-07-11 20:51 青衫仗剑 阅读( ...) 评论( ...) 编辑 收藏
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值