一、操作 HDFS 上的文件有两个命令可以用

hdfs dfs:只能操作 HDFS 上的文件

Usage: hdfs [--config confdir] [--loglevel loglevel] COMMAND
where COMMAND is one of:
dfs run a filesystem command on the file systems supported in Hadoop.
classpath prints the classpath
namenode -format format the DFS filesystem
secondarynamenode run the DFS secondary namenode
namenode run the DFS namenode
journalnode run the DFS journalnode
zkfc run the ZK Failover Controller daemon
datanode run a DFS datanode
debug run a Debug Admin to execute HDFS debug commands
dfsadmin run a DFS admin client
dfsrouter run the DFS router
dfsrouteradmin manage Router-based federation
haadmin run a DFS HA admin client
fsck run a DFS filesystem checking utility
balancer run a cluster balancing utility
jmxget get JMX exported values from NameNode or DataNode.
mover run a utility to move block replicas across
storage types
oiv apply the offline fsimage viewer to an fsimage
oiv_legacy apply the offline fsimage viewer to an legacy fsimage
oev apply the offline edits viewer to an edits file
fetchdt fetch a delegation token from the NameNode
getconf get config values from configuration
groups get the groups which users belong to
snapshotDiff diff two snapshots of a directory or diff the
current directory contents with a snapshot
lsSnapshottableDir list all snapshottable dirs owned by the current user
Use -help to see options
portmap run a portmap service
nfs3 run an NFS version 3 gateway
cacheadmin configure the HDFS cache
crypto configure HDFS encryption zones
storagepolicies list/get/set block storage policies
version print the version Most commands print help when invoked w/o parameters.

hadoop fs:除了 HDFS 上的文件,还可以操作本地文件

Usage: hadoop [--config confdir] [COMMAND | CLASSNAME]
CLASSNAME run the class named CLASSNAME
or
where COMMAND is one of:
fs run a generic filesystem user client
version print the version
jar <jar> run a jar file
note: please use "yarn jar" to launch
YARN applications, not this command.
checknative [-a|-h] check native hadoop and compression libraries availability
distcp <srcurl> <desturl> copy file or directories recursively
archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive
classpath prints the class path needed to get the
Hadoop jar and the required libraries
credential interact with credential providers
daemonlog get/set the log level for each daemon
trace view and modify Hadoop tracing settings Most commands print help when invoked w/o parameters.

二、使用

help:查看命令帮助

hadoop fs -help ls

ls:显示目录信息

# 查看根目录
hadoop fs -ls / # 递归查看所有目录
hadoop fs -ls -R /
hadoop fs -lsr /

mkdir:创建目录

# 创建多级目录
hadoop fs -mkdir -p /china/hubei/

moveFromLocal:移动本地文件到 HDFS 上

# 移动本地 /opt/java-linux-x64.tar.gz 至 HDFS 的 /china/hubei/ 路径下
hadoop fs -moveFromLocal /opt/java-linux-x64.tar.gz /china/hubei/

appendToFile:把本地文件的内容追加到 HDFS 上的文件末尾

# 创建两个文件
echo "AAA" > /tmp/AAA.txt
echo "BBB" > /tmp/BBB.txt # 把本地 /tmp/AAA.txt 移动至 HDFS 上的 /china/ 目录下
hadoop fs -moveFromLocal /tmp/AAA.txt /china/ # 把本地 /tmp/BBB.txt 追加到 HDFS 上的 /china/AAA.txt 文件末尾
hadoop fs -appendToFile /tmp/BBB.txt /china/AAA.txt

cat:查看文件内容

hadoop fs -cat /china/AAA.txt

chgrp 、chmod、chown:修改文件属性和权限

# 修改 /china/ 目录及其所有子目录的用户组为 root
hadoop fs -chgrp -R root /china/ # 修改 /china/ 目录及其所有子目录的权限为
hadoop fs -chmod -R /china/ # 修改 /china/ 目录及其所有子目录的所有者为 root
hadoop fs -chown -R root /china/

put、copyFromLocal:拷贝本地文件到 HDFS 上(上传)

# 复制本地 /tmp/ 目录到 HDFS 的 /china/ 目录下
hadoop fs -copyFromLocal /tmp/ /china/
hadoop fs -put /tmp/ /china/

get、copyToLocal:拷贝 HDFS 上的文件到本地(下载)

# 复制 HDFS 上 /china/BBB.txt 文件到本地的当前目录
hadoop fs -copyToLocal /china/BBB.txt ./
hadoop fs -get /china/BBB.txt ./

moveToLocal:移动 HDFS 上的文件到本地

# Hadoop 目前版本(2.9.)尚未实现该功能

cp:在 HDFS 上复制文件

# 将 HDFS 上的 /china/AAA.txt 复制到 HDFS 的 / 目录下
hadoop fs -cp /china/AAA.txt /

mv:在 HDFS 上移动文件

# 将 HDFS 上的 /china/BBB.txt 移动到 HDFS 的 / 目录下
hadoop fs -mv /china/BBB.txt /

getmerge:合并下载

# 清空本地 /tmp/ 目录
rm -rf /tmp/* # 在本地 /tmp/ 中创建两个文件
echo "AAA" > /tmp/AAA.txt
echo "BBB" > /tmp/BBB.txt # 把本地 /tmp/*.txt 上传至 HDFS 上的 /china/ 目录下
hadoop fs -mkdir -p /china/txt/
hadoop fs -put /tmp/*.txt /china/txt/ # 下载 HDFS 上 /china/txt/ 路径下所有文件的内容到本地
hadoop fs -getmerge /china/txt/* /tmp/CCC.txt

tail:显示 HDFS 上的文件最后 1KB 的内容

# 直接显示
hadoop fs -tail /AAA.txt # 监控显示,有新数据追加进来时会实时显示
hadoop fs -tail -f /AAA.txt

rmdir:删除空文件夹

# 需要确保 HDFS 上的 /temp/ 目录为空
hadoop fs -rmdir /temp/

rm:删除文件或文件夹

# 删除 HDFS 上的 /china/ 目录
# f 目标目录不存在不提示
# r|R 递归删除
hadoop fs -rm -f -r /china/
hadoop fs -rmr -f /china/

如果启用了垃圾箱,则文件系统会将已删除的文件移动到垃圾箱目录,默认禁用垃圾箱功能

<!-- core-site.xml -->
<!-- value 的值单位为分钟,设置大于零的值来启用垃圾箱功能 -->
<!-- 如果在服务器端禁用垃圾,则检查客户端配置。 如果在服务器端启用了垃圾箱,则使用服务器上配置的值,并忽略客户端配置值 -->
<property>
<name>fs.trash.interval</name>
<value>60*24*2</value>
</property>
<!-- value 的值单位为分钟,检查回收站的间隔时间,应小于或等于 fs.trash.interval。 如果为零,则值为fs.trash.interval的值 -->
<!-- 每次 checkpointer 运行时,都会创建一个新的检查点,并删除超过 fs.trash.interval 分钟前创建的检查点 -->
<property>
<name>fs.trash.checkpoint.interval</name>
<value>60*24*2</value>
</property>

count,du:统计文件大小

hadoop fs -du -s -h /
hadoop fs -count /

find:查找文件

# name 不区分大小写
# iname 区分大小写
# print 打印(默认)
# print0 打印在一行
hadoop fs -find / -name *.txt -print

https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/FileSystemShell.html

http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html

https://www.codercto.com/a/42708.html

HDFS-Shell 文件操作的更多相关文章

  1. Linux实验:hdfs shell基本命令操作(一)

    [实验目的] 1)熟练hdfs shell命令操作 2)理解hdfs shell和linux shell命令 [实验原理] 安装好hadoop环境之后,可以执行hdfs shell命令对hdfs 的空 ...

  2. Linux实验:hdfs shell基本命令操作(二)

    [实验目的]    1)熟练hdfs shell命令操作    2)理解hdfs shell和linux shell命令[实验原理]    安装好hadoop环境之后,可以执行hdfs shell命令 ...

  3. Spark环境搭建(二)-----------HDFS shell 常用操作

    配置好HDFS,也学习了点HDFS的简单操作,跟Linux命令相似 1)  配置Hadoop的环境变量,类似Java的配置 在 ~/.bash_profile 中加入 export HADOOP_HO ...

  4. hdfs基本文件操作

    编程实现下列要求: 1.创建一个自己姓名首字母的文件夹 2.在文件夹下创建一个hdfstext1.txt文件,项文件内输入“班级学号姓名HDFS课堂测试”的文字内容: 3.在文件夹下在创建一个好的fs ...

  5. HDFS Shell命令操作与java代码操作

    (一)编程实现以下功能,并利用 Hadoop 提供的 Shell 命令完成相同任务: (1)     向 HDFS 中上传任意文本文件,如果指定的文件在 HDFS 中已经存在,则由用户来指定是追加到原 ...

  6. Hadoop第4周练习—HDFS读写文件操作

    1    运行环境说明... 3 :编译并运行<权威指南>中的例3.2. 3 内容... 3 2.3.1   创建代码目录... 4 2.3.2   建立例子文件上传到hdfs中... 4 ...

  7. Linux中shell文件操作大全

    1.创建文件夹#!/bin/shmkdir -m 777 "%%1" 2.创建文件#!/bin/shtouch "%%1" 3.删除文件#!/bin/shrm ...

  8. HDFS常用文件操作

    put 上传文件    hadoop fs -put wordcount.txt   /data/wordcount/ text 查看文件内容   hadoop fs -text /output/wo ...

  9. HDFS 中文件操作的错误集锦

    问题1  Java ApI执行追加写入时:无法写入 问题描述: ①当前数据节点无法写入,②追加文件需要再次请求. 问题2  命令行执行追加写入时:无法写入 问题描述: 当前数据节点无法写入 问题3   ...

  10. shell 文件操作

      序   在linux平台下开发,我们经常会接触到一些任务性质的工作,而处理方式多样化.现积累各个案例.   从远程服务器拉取文件到本地服务器   scp work@cp01-xx-dev.com: ...

随机推荐

  1. BZOJ2738矩阵乘法——整体二分+二维树状数组

    题目描述 给你一个N*N的矩阵,不用算矩阵乘法,但是每次询问一个子矩形的第K小数. 输入   第一行两个数N,Q,表示矩阵大小和询问组数:接下来N行N列一共N*N个数,表示这个矩阵:再接下来Q行每行5 ...

  2. Destroying the bus stations HDU - 2485(最小割点)

    题意: 就是求最小割点 解析: 正向一遍spfa 反向一遍spfa  然后遍历每一条边,对于当前边 如果dis1[u] + dis2[v] + 1 <= k 那么就把这条边加入到网络流图中, 每 ...

  3. 【XSY2773】基因 后缀平衡树 树套树

    题目描述 有一棵树,每条边上面都有一个字母.每个点还有一个特征值\(a_i\). 定义一个节点\(i\)对应的字符串为从这个点到根的路径上所有边按顺序拼接而成的字符串\(s_i\). 有\(m\)次操 ...

  4. hdu 2844 Coins (多重背包+二进制优化)

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=2844 思路:多重背包 , dp[i] ,容量为i的背包最多能凑到多少容量,如果dp[i] = i,那么代表 ...

  5. [luogu4479][BJWC2018]第k大斜率【二维偏序+二分+离散化+树状数组】

    传送门 https://www.luogu.org/problemnew/show/P4479 题目描述 在平面直角坐标系上,有 n 个不同的点.任意两个不同的点确定了一条直线.请求出所有斜率存在的直 ...

  6. 不能靠眼睛之 KEIL 中失效代码灰暗特性

    @2019-02-15 [问题描述] 使用 KEIL(带灰暗特性版本) 查看头文件代码时,其中有依据不同宏定义对应不同执行语句代码部分,依据灰暗特性呈现生效与失效代码,靠眼睛反应就是灰暗呈现为失效代码 ...

  7. 【转】STM32擦除内部FLASH时间过长导致IWDG复位分析

    @20119-01-29 [小记] STM32擦除内部FLASH时间过长导致IWDG复位分析

  8. rt-thread之stm32系列BSP制作方法

    @2019-01-24 [小记] bsp制作方法: 官网下载 rt-thread 源码,将路径 bsp/stm32/libraries/templates/ 下的模板文件,Copy至路径 bsp/st ...

  9. 【转】非常实用的高频PCB电路设计70问

    1.如何选择PCB 板材? 选择PCB 板材必须在满足设计需求和可量产性及成本中间取得平衡点.设计需求包含电气和机构这两部分.通常在设计非常高速的 PCB 板子(大于 GHz 的频率)时这材质问题会比 ...

  10. JDK8中的并行流

    1.IntStream.parallel():获取并行流处理 2. Collection中调用parallelStream()获取并行流 3.并行排序Arrays.parallelSort()