大数据之Hadoop中HDFS客户端操作(第四篇)

HDFS客户端操作
继上篇Hadoop入门第三篇后,我们今天来说一下HDFS客户端的操作。
准备工作:
这里我们先用伪分布式来说一下,所以我们要先有一个伪分布式。

1、HDFS客户端环境准备
1)根据自己电脑的操作系统拷贝对应的编译后的hadoop jar包到非中文路径(例如:C:\Study\tools)。

2)配置环境变量

1)配置系统环境变量
1.2.1.1 配置jdk的环境变量

一般学java的我们都会配好JDK的环境变量所以这里就不细说。

1.2.1.2 配置hadoop的环境变量

首先这里要创建HADOOP_HOME变量名和变量值
1

然后编辑系统变量中的Path

对Path进行编辑

添加变量%HADOOP_HOME%\bin
以上步骤就把我们环境变量配置好了。然后我们开始进行配置eclipse环境

2)配置eclipse环境
1.2.2.1 在eclipse启动之前,先将hadoop-eclipse-plugin-2.6.0.jar复制到eclipse的安装目录下的plugins
1.2.2.2 启动eclipse
eclipse启动后,首先打开window——Show View——Other

进入到这个视图之后我们开始配置的端口号,此处的端口号是我们在伪分布式搭建成功后登陆50070后跳转页面上显示的接口号

这要我们就有了我们小象的视图了

然后在我们的虚拟机中先上传个文件,以便我们之后查看我们的文件。
我们先创建一个目录

[root@node01 ~]# hdfs dfs -mkdir -p /user/root
1
然后上传我们要上传的文件

[root@node01 ~]# hdfs dfs -put /etc/profile /user/root
1
/etc/profile 为我要上传的文件
/user/root 为我创建的目录

然后在我们eclipse中的左侧的小象刷新就可以显示我们已经上传到HDFS的文件了


2、创建项目
1)window——perferences
Hadoop Map/Reduce ——放置hadoop-2.6.5
java—build Path-----User Libraries—Add External然后把lib下的所有jar包导入进来

2)创建一个Java Project 项目
然后在我们的项目里右击----Build Path,导入我们所需要的User library—lib包
以及Junit包
创建conf文件夹,利用Xftp6这个软件把我们Linux中的配置文件拖出来。然后将这两个配置文件放入conf文件夹中,右击build,将它转化为资源包生效文件。

3、HDFS的API操作

3.1 创建一个类在其中编写我们的代码

//首先引入配置文件
    Configuration conf=null;
    //创建文件流
    FileSystem fs=null;
    @Before
    public void conn() throws IOException {
        //设置是否读取配置信息
        conf=new Configuration(true);
        fs=FileSystem.get(conf);
    }
    @After
    public void close() throws IOException {
        fs.close();
    }
    

创建一个文件夹和判断是否存在以及删除文件夹

//创建删除重命名判断是否存在
    @Test
    public void mkdir() throws IOException {
    //
        Path f=new Path("/aaa");
        //判断是否存在
        if (fs.exists(f)) {
        //删除文件夹
            fs.delete(f);
        }
        fs.mkdirs(f);
    }

//重命名
    @Test
    public void rn() throws IOException {
        Path p1 = new Path("/user/root/profile");
        Path p2 = new Path("/user/root/haha.txt");
        boolean rename = fs.rename(p1, p2);
        System.out.println(rename);
    }

    //上传文件
    @Test
    public void upload() throws IOException {
        //输入位置  C:\\Users\\***\\Desktop\笔记.doc
        //输出位置  /user/root
        Path inputFile = new Path("/user/root/笔记.txt");
        //文件内容输出
        FSDataOutputStream output = fs.create(inputFile);
        //输入
        InputStream input=new BufferedInputStream(new FileInputStream(new File("C:\\\\Users\\\\吕宏达\\\\Desktop\\笔记.doc")));
        IOUtils.copyBytes(input, output, conf, true);
    }

    //下载文件
    @Test
    public void download() throws IOException {
        //从linux中上传到hdfs
        //输入位置
        Path src = new Path("/user/root/笔记.txt");
        FSDataInputStream input = fs.open(src);
        //输出位置
        FileOutputStream output = new FileOutputStream("c:\\123\\笔记.txt");
        IOUtils.copyBytes(input, output, conf, true);
    }
    
--------------------- 
作者:夜、那么美จุ๊บ 
来源:CSDN 
原文:https://blog.csdn.net/adamaaron/article/details/91894617 
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值