当前位置:   article > 正文

Hadoop基本操作 - HDFS文件系统操作_hadoop从words.txt中读取字符串并打印至控制台

hadoop从words.txt中读取字符串并打印至控制台

目录

1.启动/停止脚本

1.一键启停

 2.单进程启停

2.文件系统操作

1.HDFS文件系统的基本信息:

2.操作

1.初识 (操作hadoop文件系统与Linux文件系统类似)

2.创建文件夹

3.查看指定目录下内容

4.上传文件到HDFS指定目录下

5.查看HDFS文件内容

6.下载HDFS文件

 7.拷贝HDFS文件

8. 追加数据到HDFS文件中

9. HDFS数据移动操作

​编辑

10.HDFS数据删除操作 

11.HDFS shell其它命令

命令官方指导文档


1.启动/停止脚本

1.一键启停

Hadoop HDFS组件内置了HDFS集群的一键启停脚本。

$HADOOP_HOME/sbin/start-dfs.sh ,一键启动 HDFS 集群

                执行原理:

在执行此脚本的机器上,启动 SecondaryNameNode
读取 core-site.xml 内容(fs.defaultFS项),确认 NameNode 所在机器,启动 NameNode
读取 workers 内容,确认 DataNode 所在机器,启动全部 DataNode
$HADOOP_HOME/sbin/stop-dfs.sh ,一键关闭 HDFS 集群

                执行原理:

在执行此脚本的机器上,关闭SecondaryNameNode
读取core-site.xml内容(fs.defaultFS项),确认NameNode所在机器,关闭NameNode
读取workers内容,确认DataNode所在机器,关闭全部NameNode
  1. # 一键启动hdfs集群
  2. start-dfs.sh
  3. # 一键关闭hdfs集群
  4. stop-dfs.sh
  5. # 如果遇到命令未找到的错误,表明环境变量未配置好,可以以绝对路径执行
  6. /export/server/hadoop/sbin/start-dfs.sh
  7. /export/server/hadoop/sbin/stop-dfs.sh

 2.单进程启停

 除了一键启停外,也可以单独控制进程的启停。

1. $HADOOP_HOME/sbin/hadoop-daemon.sh,此脚本可以单独控制所在机器的进程的启停

用法:hadoop-daemon.sh (start|status|stop) (namenode|secondarynamenode|datanode)

  1. #会提示已过时,无所谓,不用管
  2. hadoop-daemon.sh stop datanode

2. $HADOOP_HOME/bin/hdfs,此程序也可以用以单独控制所在机器的进程的启停

用法:hdfs --daemon (start|status|stop) (namenode|secondarynamenode|datanode)

hdfs --daemon stop secondarynamenode

2.文件系统操作

1.HDFS文件系统的基本信息:

 HDFS作为分布式存储的文件系统,有其对数据的路径表达方式。

HDFS Linux 系统一样,均是以 / 作为根目录的组织形式

看下面这两个路径 :

两个路径相同如何区分是LINUX操作系统还是HDFS文件呢? 

答案是采取协议头

协议头file:/// hdfs://node1:8020/可以省略

需要提供 Linux 路径的参数,会自动识别为 file://
需要提供 HDFS 路径的参数,会自动识别为 hdfs://

除非你明确需要写或不写会有BUG,否则一般不用写协议头

2.操作

1.初识 (操作hadoop文件系统与Linux文件系统类似)

关于HDFS文件系统的操作命令,Hadoop提供了2套命令体系

1.hadoop命令(老版本用法),用法:hadoop fs [generic options]

2.hdfs命令(新版本用法),用法:hdfs dfs [generic options]

两者在文件系统操作上,用法完全一致用哪个都可以,某些特殊操作需要选择hadoop命令或hdfs命令。

2.创建文件夹

hadoop fs -mkdir [-p] <path> ...

hdfs dfs -mkdir [-p] <path> ...

  path 为待创建的目录

  -p选项的行为与Linux mkdir -p一致,它会沿着路径创建父目录

  1. hadoop fs -mkdir -p /sy/bigdata
  2. hdfs fs -mkdir -p /sy/hadoop

全路径(加上协议头):

 hadoop fs -mkdir -p hdfs://node1:8020/sy/bigdata

在本地Linux系统创建文件夹

hadoop fs -mkdir -p file:///home/hadoop/test

3.查看指定目录下内容

hadoop fs -ls [-h] [-R] [<path> ...]

hadoop fs -ls /

hdfs dfs -ls [-h] [-R] [<path> ...]  

hdfs dfs -ls /

   path 指定目录路径

  -h 人性化显示文件size

  -R 递归查看指定目录及其子目录

hdfs dfs -ls  -R /

4.上传文件到HDFS指定目录下

hadoop fs -put [-f] [-p] <localsrc> ... <dst>

  1. # 完整的带协议头的写法
  2. hadoop fs -put file:///home/hadoop/text.txt hdfs://node1:8020/

  1. #不使用协议头
  2. hadoop fs -put ./haha.txt /

hdfs dfs -put [-f] [-p] <localsrc> ... <dst>

  -f 覆盖目标文件(已存在下)

hdfs dfs -put -f  ./haha.txt  /

  -p 保留访问和修改时间,所有权和权限。

hdfs dfs -put -p  ./haha.txt  /

  localsrc 本地文件系统(客户端所在机器)

  dst 目标文件系统(HDFS

5.查看HDFS文件内容

hadoop fs -cat <src> ...

hdfs dfs -cat <src> ...

读取指定文件全部内容,显示在标准输出控制台。

  1. hadoop fs -cat /sy/words.txt
  2. hdfs dfs -cat /sy/profile

读取大文件可以使用管道符配合more

hadoop fs -cat <src> | more

hdfs dfs -cat <src> | more

6.下载HDFS文件

从当前HDFS下载到本地Linux。

hadoop fs -get [-f] [-p] <src> ... <localdst>

hdfs dfs -get [-f] [-p] <src> ... <localdst>

 hadoop fs -get /test.txt .

下载文件到本地文件系统指定目录localdst必须是目录

      -f 覆盖目标文件(已存在下)

 hadoop fs -get -f /test.txt .

      -p 保留访问和修改时间,所有权和权限

 hadoop fs -get -p /test.txt .

 7.拷贝HDFS文件

在HDFS文件系统中复制,从HDFS复制到HDFS

hadoop fs -cp [-f] <src> ... <dst>

hdfs dfs -cp [-f] <src> ... <dst>

        -f 覆盖目标文件(已存在下

hadoop fs -cp /test.txt /text.txt

       

8. 追加数据到HDFS文件中

hadoop fs -appendToFile <localsrc> ... <dst>

hdfs dfs -appendToFile <localsrc> ... <dst>

所有给定本地文件(Linux)的内容追加到给定dst文件(Hadoop)。

hadoop fs -appendToFile append.txt /test.txt

        dst如果文件不存在,将创建该文件。

        如果<localSrc>-,则输入为从标准输入中读取

HDFS要么删除要么追加,无法指定修改某一行

9. HDFS数据移动操作

HDFS->HDFS

hadoop fs -mv <src> ... <dst>

 hadoop fs -mv /test.txt /sy/

hdfs dfs -mv <src> ... <dst> 

   移动文件到指定文件夹下

   可以使用该命令移动数据,重命名文件的名称

10.HDFS数据删除操作 

hadoop fs -rm -r [-skipTrash] URI [URI ...]

hdfs dfs -rm -r [-skipTrash] URI [URI ...] 

hadoop fs -rm -r /text.txt

      删除指定路径的文件或文件夹

     -skipTrash 跳过回收站,直接删除 

 每两个小时检查一次,若超过1440,则彻底清空。

  1. vim /export/server/hadoop/etc/hadoop/core-site.xml
  2. #回收站功能默认关闭,如果要开启需要在core-site.xml内配置:
  3. <property>
  4. <name>fs.trash.interval</name>
  5. <value>1440</value>
  6. </property>
  7. <property>
  8. <name>fs.trash.checkpoint.interval</name>
  9. <value>120</value>
  10. </property>
  11. #无需重启集群,在哪个机器配置的,在哪个机器执行命令就生效。
  12. #回收站默认位置在:/user/用户名(hadoop)/.Trash

 回收站生效后再删除,会提示移动,而不是直接消失了:

 被送到了回收站中:

11.HDFS shell其它命令

命令官方指导文档

Apache Hadoop 3.3.4 – Overview

提示

常见的操作自己最好能够记住,其他操作可以根据需要查询文档使用。 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/500965
推荐阅读
相关标签
  

闽ICP备14008679号