Hadoop分布式文件系统HDFS文件系统的操作实践(二)。

Hadoop分布式文件系统HDFS文件系统的操作实践。
hadoop文件系统配置教程请看上篇博文,在开始学习前请启动hadoop。

cd /usr/local/hadoop
./sbin/start-dfs.sh #启动hadoop

利用shell命令HDFS进行交互

注意事项:
1、HADOOP包含很多shell命令,其中其包含的hdfs文件系统包含了fs命令,它的作用是进行对HDFS文件系统进行交互(包含上传,下载文件,创建文件)。
在这里插入图片描述
2、本文的所有fs命令均是./bin/hdfs dfs的shell格式命令(只能访问HDFS文件系统)。
3、本文的当前目录设定语句为:cd /usr/local/hadoop。

在HDFS文件系统中创建目录

注意事项:
1、本文是利用hadoop用户登陆linux系统,为方便操作在hadoop用户下进行实践
2、初次使用的HDFS的用户,要在HDFS中建立hadoop的用户目录操作如下:

cd /usr/local/hadoop
./bin/hdfs dfs –mkdir –p /user/hadoop

说明:这串shell命令表示,在HDFS系统中创建一个多级目录,第一句话设定当前目录,第二句话是创建目录的实际语句,其中-mkdir是创建目录的语句,-p是参数,表示创建多级目录,即父目录和子目录一并创建,/usr/hadoop是一个多级目录,这里必须用-p,这样hadoop用户之下的/usr/hadoop就可以供新用户使用并成为hadoop下的用户目录。

查看HDFS抽象文件系统目录中的内容

 ./bin/hdfs dfs –ls .

-ls表示列出某个HDFS文件系统的所有内容,.是表示HDFS文件系统的当前目录,而不是本地linux的文件系统,因此它和下列代码是等价的:

 ./bin/hdfs dfs –ls user hadoop

值得注意的是/user/hadoop是上一步创建的,而非本机sur/local/hadoop。

当想列出HDFS所有文件目录内容的时候使用下面代码:

./bin/hdfs dfs –ls

删除HDFS目录下面所有内容

下面创建一个input目录

 ./bin/hdfs dfs –mkdir input

值得注意的是这边input目录的创建是使用的相对路径,创建完成之后,它在HDFS中的完整路径为user/hadoop/input

如果想要在HDFS的根目录下创建input则使用下列代码:

./bin/hdfs dfs –mkdir /input

删除/input:
使用-rm可以删除一个目录文件,比如刚才在HDFS中创建的/input目录(不是/user/hadoop/input目录)

./bin/hdfs dfs –rm –r  /input

上面代码中**-r表示删除/input及其子目录的所有内容**,当所删除目录下面有子目录的时候使用该参数,否则报错。

从本地向HDFS上传文件

步骤一:找到想要上传文件的位置,本文使用的是home/hadoop/mylocalfile.txt的文件。(该文件是使用vim编辑器在本地linux系统的home/hadoop下创建的。)
步骤二:把该文件上传到HDFS的input目录下,代码如下:

./bin/hdfs dfs -put /home/hadoop/myLocalFile.txt  input

其中-put为基础命令,第二个参数上传文件的路径,绝对相对都可以,第三个是HDFS的想要存放的位置,相对绝对都可(hdfs的当前路径为user/hadoop)。

  • 显示文件内容
    下面使用下面语句对HDFS抽象文件系统中的文件进行内容显示:
./bin/hdfs dfs –cat input/myLocalFile.txt

-cat是显示文件内容语句,直接抓取查看。
参考:linux基本命令行简介

从HDFS向本地获取文件

把HDFS文件系统中的mylocalfile。txt下载到本地linux系统/home/hadoop/下载这个目录中去。

./bin/hdfs dfs -get input/myLocalFile.txt  /home/hadoop/下载

-get是从HDFS中下载到本机系统,参数格式与-put相同。

  • 在HDFS中进行目录以及文件的拷贝
    比如将HDFS中的/user/hadoop/input/myLocalFile.txt拷贝到HDFS的根目录下的/input中,可以使用如下代码:
./bin/hdfs dfs -cp input/myLocalFile.txt  /input

-cp是将目录拷贝的命令。
参考:linux基本命令行简介

使用web查看HDFS文件信息

格式:http://localhost:你配置的版本的端口号(我的版本是9870).

使用java API进行交互

准备工作:搭建环境。

注意事项:

1、将集群的配置文件放在java工程下面,如图所示:
在这里插入图片描述
否则报错:
在这里插入图片描述

实践编写确定分布式文件系统上是否有无文件的代码

import org.apache.hadoop.conf.Configuration;					//管理相关配置文件
import org.apache.hadoop.fs.FileSystem;						//输入输出流
import org.apache.hadoop.fs.Path;
public class HDFSFileIfExist {
    public static void main(String[] args){					//入口函数
        try{									//捕捉运行错误
            String fileName = "test";
            Configuration conf = new Configuration();
            conf.set("fs.defaultFS", "hdfs://localhost:9000");
            conf.set("fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem");
            FileSystem fs = FileSystem.get(conf);
            if(fs.exists(new Path(fileName))){
                System.out.println("文件存在");
            }else{
                System.out.println("文件不存在");
            }
 
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值