root 发表于 2018-11-1 08:08:02

Hadoop (HDFS)分布式文件系统基本操作

  Hadoop HDFS提供了一组命令集来操作文件,它既可以操作Hadoop分布式文件系统,也可以操作本地文件系统。但是要加上theme(Hadoop文件系统用hdfs://,本地文件系统用file://)
  1. 添加文件,目录
  HDFS文件系统(需要加hdfs://):
  因为我们在core-site.xml中配置了fs.default.name

  所以所有和HDFS打交道的命令都不需要加上前缀hdfs://192.168.129.35:9000
  比如我们要在Hadoop 文件系统中创建一个目录叫 /user/hadoop-user ,则
  hadoop fs -mkdir /user/hadoop-user
  要查看我们创建的目录,
  hadoop fs -ls /


  或者用 hadoop fs -lsr /递归的显示子目录
  本地的文件系统(需要加file://):
  比如我们要查看Linux本地文件系统的/tmp/charles目录,则:

  2.移动复制文件,目录
  如果我们要把一个文件从本地文件系统复制到HDFS:
  比如我们在/tmp/charles目录下有个文件叫 textfile.txt,那么我们想上传到HDFS中我们刚才创建的/user/hadoop-user目录下:
  hadoop fs -put /tmp/charles/textfile.txt /user/hadoop-user
  我们用 hadoop fs -ls 来查看是否这个文件已经被添加:

  因为我们在hadoop的hdfs-site.xml中设置了replication-factor为1,所以这里只存一个备份,显示1
  如果我们要把文件从HDFS复制到本地文件系统:
  比如我们要把刚才复制过来的文件textfile.txt复制到本地目录下/tmp/charles2:
  hadoop fs -get /user/hadoop-user/textfile.txt/tmp/charles2/textfile.txt
  我们检查本地文件系统,果然发现文件从HDFS 复制过来了。

  为了证明HDFS的文件复制功能没有破坏文件,我们用md5sum命令来检查原始的位于/tmp/charles目录下的原始文件和/tmp/charles2目录下的复制回来的文件的md5校验和:

  从这里可以看出,老文件和新文件校验和一致,说明HDFS的文件复制功能没有破坏文件。
  3.查看文件,目录
  如果我们要查看HDFS文件系统的某个文件:
  hadoop fs -cat textfile.txt

  4.删除文件,目录
  如果我们要从HDFS文件系统中删除某个文件:
  hadoop fs -rm textfile.txt

  此时我们再去检查HDFS文件系统,文件已经不存在了。

页: [1]
查看完整版本: Hadoop (HDFS)分布式文件系统基本操作