hadoop学习笔记(三):hdfs常用命令

一、hadoop fs

1、创建目录

[[email protected] hadoop-2.7.0]# hadoop fs -mkdir /testdir1
[[email protected] hadoop-2.7.0]# hadoop fs -ls /
Found 2 items
drwxr-xr-x   - root supergroup          0 2018-05-07 11:27 /test
drwxr-xr-x   - root supergroup          0 2018-05-18 09:27 /testdir1

加 -p 则创建多级目录

[[email protected] hadoop-2.7.0]# hadoop fs -mkdir -p /aa/bb/cc
[[email protected] hadoop-2.7.0]# hadoop fs -ls /
Found 3 items
drwxr-xr-x   - root supergroup          0 2018-05-18 09:28 /aa
drwxr-xr-x   - root supergroup          0 2018-05-07 11:27 /test
drwxr-xr-x   - root supergroup          0 2018-05-18 09:27 /testdir1

2、ls,列出指定目录的所有文件或文件夹

[[email protected] hadoop-2.7.0]# hadoop fs -ls /
Found 1 items
drwxr-xr-x   - root supergroup          0 2018-05-07 11:27 /test

加 -R,列出所有级的目录和文件

[[email protected] hadoop-2.7.0]# hadoop fs -ls -R /
drwxr-xr-x   - root supergroup          0 2018-05-18 09:28 /aa
drwxr-xr-x   - root supergroup          0 2018-05-18 09:28 /aa/bb
drwxr-xr-x   - root supergroup          0 2018-05-18 09:28 /aa/bb/cc
drwxr-xr-x   - root supergroup          0 2018-05-07 11:27 /test
drwxr-xr-x   - root supergroup          0 2018-05-18 09:27 /testdir1

3、copeFromLocal,复制本地文件到hdfs的目录,除了限定源路径是一个本地文件外,和put命令相似,如果要强制复制文件 加-f 也可以一次复制多个文件

[[email protected] hadoop-2.7.0]# touch /root/file1.txt
[[email protected] hadoop-2.7.0]# hadoop  fs -copyFromLocal /root/file1.txt /testdir1
[[email protected] hadoop-2.7.0]# hadoop fs -ls  /testdir1
Found 1 items
-rw-r--r--   2 root supergroup          0 2018-05-18 09:33 /testdir1/file1.txt

4、put,复制文件到hdfs中,文件可以从标准输入中读取(与copeFromLocal不同点,此时dst是一个文件)。

使用方法: hadoop fs -put <localsrc> ... <dst>

1)从本地文件复到hdfs的文件夹(与copeFromLocal相同)

[[email protected] hadoop-2.7.0]# hadoop fs -put /root/file1.txt /aa
[[email protected] hadoop-2.7.0]# hadoop fs -ls  /aa
Found 2 items
drwxr-xr-x   - root supergroup          0 2018-05-18 09:28 /aa/bb
-rw-r--r--   2 root supergroup          0 2018-05-18 09:40 /aa/file1.txt

2) 从标准输入流中写入到hdfs中

[[email protected] hadoop-2.7.0]# echo abc | hadoop fs -put - /aa/file2.txt
[[email protected] hadoop-2.7.0]# hadoop fs -ls  /aa
Found 3 items
drwxr-xr-x   - root supergroup          0 2018-05-18 09:28 /aa/bb
-rw-r--r--   2 root supergroup          0 2018-05-18 09:40 /aa/file1.txt
-rw-r--r--   2 root supergroup          4 2018-05-18 09:44 /aa/file2.txt

5、cat,列出文件的内容

[[email protected] hadoop-2.7.0]# hadoop fs -cat  /test/readme.txt
total 0
drwxr-xr-x.  3 root  root   18 May  7 10:21 dfs
drwxr-xr-x. 10 10021 10021 161 May  7 10:22 hadoop-2.7.0
drwxr-xr-x.  4 root  root   30 May  7 09:15 hdfs
drwxr-xr-x.  3 root  root   17 May  7 10:41 tmp

如果文件过大可以在后面加|more就可以一页一页的显示

 hadoop fs -cat  /test/readme.txt|more

6、rm,删除文件或目录

1)删除文件

[[email protected] hadoop-2.7.0]# hadoop fs -rm  /aa/file2.txt
rm: Failed to get server trash configuration: null. Consider using -skipTrash option
[[email protected] hadoop-2.7.0]# hadoop fs -rm -skipTrash  /aa/file2.txt
Deleted /aa/file2.txt

2)删除目录

[[email protected] hadoop-2.7.0]# hadoop fs -rm -r -skipTrash  /aa/bb
Deleted /aa/bb
[[email protected] hadoop-2.7.0]# hadoop fs -ls /aa
Found 1 items
-rw-r--r--   2 root supergroup          0 2018-05-18 09:40 /aa/file1.txt

7、cp,在hdfs内部复文件,这个命令允许有多个源路径,此时目标路径必须是一个目录

[[email protected] hadoop-2.7.0]# hadoop fs -cp /aa/file1.txt /aa/file3.txt
18/05/18 10:01:01 WARN hdfs.DFSClient: DFSInputStream has been closed already
[[email protected] hadoop-2.7.0]# hadoop fs -ls /aa
Found 2 items
-rw-r--r--   2 root supergroup          0 2018-05-18 09:40 /aa/file1.txt
-rw-r--r--   2 root supergroup          0 2018-05-18 10:01 /aa/file3.txt

8、get,将文件从hdfs复制到本地

[[email protected] hadoop-2.7.0]# hadoop fs -get /aa/file3.txt /root/
18/05/18 10:04:11 WARN hdfs.DFSClient: DFSInputStream has been closed already
[[email protected] hadoop-2.7.0]# ll /root/
total 8
-rw-------. 1 root root 1260 Apr 19 18:36 anaconda-ks.cfg
-rw-r--r--. 1 root root  784 Apr 19 11:35 authorized_keys
-rw-r--r--. 1 root root    0 May 18 09:32 file1.txt
-rw-r--r--. 1 root root    0 May 18 10:04 file3.txt

9、copyToLocal,除了限定目标路径是一个本地文件外,和get命令类似

10、mv,在hdfs内部移动文件

[[email protected] hadoop-2.7.0]# hadoop fs -mv /aa/file3.txt /aa/file4.txt
[[email protected] hadoop-2.7.0]# hadoop fs -ls /aa
Found 2 items
-rw-r--r--   2 root supergroup          0 2018-05-18 09:40 /aa/file1.txt
-rw-r--r--   2 root supergroup          0 2018-05-18 10:01 /aa/file4.txt

总结用法与Linux命令类似,不再一一列了

二、hdfs dfsadmin 管理命令

1、-report,查看文件系统的信息和统计信息

[[email protected] hadoop-2.7.0]# hdfs dfsadmin -report
Configured Capacity: 47204802560 (43.96 GB)
Present Capacity: 43612942336 (40.62 GB)
DFS Remaining: 43612909568 (40.62 GB)
DFS Used: 32768 (32 KB)
DFS Used%: 0.00%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0
Missing blocks (with replication factor 1): 0

-------------------------------------------------
Live datanodes (2):

Name: 192.168.137.102:50010 (node2)
Hostname: node2
Decommission Status : Normal
Configured Capacity: 23602401280 (21.98 GB)
DFS Used: 16384 (16 KB)
Non DFS Used: 1795612672 (1.67 GB)
DFS Remaining: 21806772224 (20.31 GB)
DFS Used%: 0.00%
DFS Remaining%: 92.39%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Fri May 18 10:13:58 EDT 2018

Name: 192.168.137.101:50010 (node1)
Hostname: node1
Decommission Status : Normal
Configured Capacity: 23602401280 (21.98 GB)
DFS Used: 16384 (16 KB)
Non DFS Used: 1796247552 (1.67 GB)
DFS Remaining: 21806137344 (20.31 GB)
DFS Used%: 0.00%
DFS Remaining%: 92.39%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Fri May 18 10:13:58 EDT 2018

2、-safemode,enter | leave | get | wait:安全模式命令。安全模式是NameNode的一种状态,在这种状态下,NameNode不接受对名字空间的更改(只读);不复制或删除块。NameNode在启动时自动进入安全模式,当配置块的最小百分数满足最小副本数的条件时,会自动离开安全模式。enter是进入,leave是离开。

[[email protected] hadoop-2.7.0]# hdfs dfsadmin -safemode get
Safe mode is OFF
[[email protected] hadoop-2.7.0]# hdfs dfsadmin -safemode enter
Safe mode is ON
[[email protected] hadoop-2.7.0]# hadoop fs -ls /aa
Found 2 items
-rw-r--r--   2 root supergroup          0 2018-05-18 09:40 /aa/file1.txt
-rw-r--r--   2 root supergroup          0 2018-05-18 10:01 /aa/file4.txt
[[email protected] hadoop-2.7.0]# hadoop fs -rm -skipTrash /aa/file4.txt
rm: Cannot delete /aa/file4.txt. Name node is in safe mode.

3、-refreshNodes,重新读取hosts和exclude文件,使新的节点或需要退出集群的节点能够被NameNode重新识别。这个命令在新增节点或注销节点时用到。

[[email protected] hadoop-2.7.0]# hdfs dfsadmin -refreshNodes
Refresh nodes successful

4、-finalizeUpgrade,终结HDFS的升级操作。Datanode删除前一个版本的工作目录,之后Namenode也这样做。这个操作完结整个升级过程。

[[email protected] hadoop-2.7.0]# hdfs dfsadmin -finalizeUpgrade
Finalize upgrade successful

5、-metasave filename,保存Namenode的主要数据结构到hadoop.log.dir属性指定的目录(默认值是hadoop安装目录:/home/hadoop/hadoop-2.7.0)下的<filename>文件。对于下面的每一项,<filename>中都会一行内容与之对应
1. Namenode收到的Datanode的心跳信号
2. 等待被复制的块
3. 正在被复制的块
4. 等待被删除的块

[[email protected] hadoop-2.7.0]# hdfs dfsadmin -metasave newlog.log
Created metasave file newlog.log in the log directory of namenode hdfs://192.168.137.100:9000
[[email protected] logs]# pwd
/home/hadoop/hadoop-2.7.0/logs
[[email protected] logs]# ll
total 940
-rw-r--r--. 1 root root 254161 May 18 10:26 hadoop-root-namenode-master.log
-rw-r--r--. 1 root root    714 May 18 09:21 hadoop-root-namenode-master.out
-rw-r--r--. 1 root root    714 May  7 11:36 hadoop-root-namenode-master.out.1
-rw-r--r--. 1 root root    714 May  7 11:24 hadoop-root-namenode-master.out.2
-rw-r--r--. 1 root root    714 May  7 11:19 hadoop-root-namenode-master.out.3
-rw-r--r--. 1 root root    714 May  7 11:00 hadoop-root-namenode-master.out.4
-rw-r--r--. 1 root root    714 May  7 10:49 hadoop-root-namenode-master.out.5
-rw-r--r--. 1 root root 267631 May 18 10:16 hadoop-root-secondarynamenode-master.log
-rw-r--r--. 1 root root    714 May 18 09:21 hadoop-root-secondarynamenode-master.out
-rw-r--r--. 1 root root    714 May  7 11:36 hadoop-root-secondarynamenode-master.out.1
-rw-r--r--. 1 root root    714 May  7 11:24 hadoop-root-secondarynamenode-master.out.2
-rw-r--r--. 1 root root   6074 May  7 11:21 hadoop-root-secondarynamenode-master.out.3
-rw-r--r--. 1 root root   1067 May  7 11:10 hadoop-root-secondarynamenode-master.out.4
-rw-r--r--. 1 root root  12148 May  7 11:05 hadoop-root-secondarynamenode-master.out.5
-rw-r--r--. 1 root root    582 May 18 10:33 newlog.log
-rw-r--r--. 1 root root      0 May  7 10:22 SecurityAuth-root.audit
-rw-r--r--. 1 root root 340628 May 18 09:31 yarn-root-resourcemanager-master.log
-rw-r--r--. 1 root root    700 May 18 09:21 yarn-root-resourcemanager-master.out
-rw-r--r--. 1 root root    700 May  7 11:36 yarn-root-resourcemanager-master.out.1
-rw-r--r--. 1 root root    700 May  7 11:24 yarn-root-resourcemanager-master.out.2
-rw-r--r--. 1 root root    700 May  7 11:19 yarn-root-resourcemanager-master.out.3
-rw-r--r--. 1 root root    700 May  7 11:10 yarn-root-resourcemanager-master.out.4
-rw-r--r--. 1 root root    700 May  7 11:00 yarn-root-resourcemanager-master.out.5

6、-setQuota <quota> <dirname>...<dirname>,为每个目录 <dirname>设定配额<quota>。目录配额是一个长整型整数N,强制限定了目录树下的名字个数。
命令会在这个目录上工作良好,以下情况会报错:
1. N不是一个正整数,或者
2. 用户不是管理员,或者
3. 这个目录不存在或是文件,或者
4. 目录会马上超出新设定的配额。

[[email protected] hadoop-2.7.0]# hadoop fs -ls /aa
Found 2 items
-rw-r--r--   2 root supergroup          0 2018-05-18 09:40 /aa/file1.txt
-rw-r--r--   2 root supergroup          0 2018-05-18 10:01 /aa/file4.txt
[[email protected] hadoop-2.7.0]#
[[email protected] hadoop-2.7.0]#
[[email protected] hadoop-2.7.0]# hdfs dfsadmin -setQuota 3 /aa
[[email protected] hadoop-2.7.0]# hadoop fs -touchz /aa/file5.txt
touchz: The NameSpace quota (directories and files) of directory /aa is exceeded: quota=3 file count=4
[[email protected] hadoop-2.7.0]# hadoop fs -ls /aa
Found 2 items
-rw-r--r--   2 root supergroup          0 2018-05-18 09:40 /aa/file1.txt
-rw-r--r--   2 root supergroup          0 2018-05-18 10:01 /aa/file4.txt
[[email protected] hadoop-2.7.0]# hadoop fs -ls -R /aa
-rw-r--r--   2 root supergroup          0 2018-05-18 09:40 /aa/file1.txt
-rw-r--r--   2 root supergroup          0 2018-05-18 10:01 /aa/file4.txt
[[email protected] hadoop-2.7.0]# hadoop fs -touchz /aa/fi.txt
touchz: The NameSpace quota (directories and files) of directory /aa is exceeded: quota=3 file count=4
[[email protected] hadoop-2.7.0]# 

[[email protected] hadoop-2.7.0]# hdfs dfsadmin -setQuota 6 /aa
[[email protected] hadoop-2.7.0]# hadoop fs -touchz /aa/file5.txt

7、-clrQuota <dirname>...<dirname>,为每一个目录<dirname>清除配额设定。
命令会在这个目录上工作良好,以下情况会报错:
1. 这个目录不存在或是文件,或者
2. 用户不是管理员。
如果目录原来没有配额不会报错。

hdfs dfsadmin -clrQuota /aa

原文地址:https://www.cnblogs.com/boshen-hzb/p/9058312.html

时间: 2024-11-08 12:36:15

hadoop学习笔记(三):hdfs常用命令的相关文章

Hadoop学习笔记(三) ——HDFS

参考书籍:<Hadoop实战>第二版 第9章:HDFS详解 1. HDFS基本操作 @ 出现的bug信息 @[email protected] WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable @[email protected] WARN hdfs.DFSClient: DFSInpu

学习笔记-- 2014-07-07 Linux常用命令

2014-07-07 Linux常用命令 在Linuxtoy.org上看一些文章收集一些常用命令==================一.ps.kill 使用备查二.Ubuntu 提示三则三.最小化安装 Ubuntu四.Linux Mint设置时间 一到三来看linuxtoy.org网站 ===================一.ps.kill 使用备查 ps-查看当前正在运行的进程,示例:$ ps     kill {PID}-通过 PID 来停止任意进程,示例:$ kill 1012    

Oracle学习笔记—数据字典和常用命令(转载)

转载自: oracle常用数据字典和SQL语句总结 Oracle常用命令大全(很有用,做笔记) 一.Oracle数据字典 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的.比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息等.当用户在对数据库中的数据进行操作时遇到困难就可以访问数据字典来查看详细的信息. Oracle中的数据字典有静态和动态之分.静态数据字典主要是在用户访问数据字典时不会发生改变的,但动态数据字典是依赖数据库运行的性能的,反映数据库运行的

Linux学习笔记(四)-Linux常用命令

常用命令格式 #command(指令) [-options] parameter1(参数1) parameter2(参数2)... 大小写区分,tab自动补全 Shell特殊字符 通配符 管道Pipe:把前面进程的输出作为后面进程的输入,把前面文件的输出作为后面进程的输入 输入/输出重定向 命令帮助 Man工具就是系统帮助手册:man+命令 Info工具是一个基于菜单的超文本系统 翻页 ctrl+f:下一页 ctrl+b:上一页 more 历史记录查看 history n(指定查看最近多少条)

Maven学习笔记二:常用命令

Maven常用命令: 1.mvn -v:显示版本信息 2.创建Java项目 mvn archetype:generate groupid:项目标识,java包的目录结构: artifactid:项目名称 示例: mvn archetype:generate -DarchetypeCatalog=internal -Dgroupid=com.demo.app -Dartifactid=myapp -Dversion=1.0 -DarchetypeCatalog=internal:不从远程服务器上获

Hadoop学习笔记0002——HDFS文件操作

  说明:Hadoop之HDFS文件操作常有两种方式,命令行方式和JavaAPI方式. 方式一:命令行方式 Hadoop文件操作命令形式为:hadoop fs -cmd <args> 说明:cmd是具体的文件操作命令,<args>是一组数目可变的参数. Hadoop最常用的文件操作命令,包括添加文件和目录.获取文件.删除文件等. 1 添加文件和目录 HDFS有一个默认工作目录/usr/$USER,其中$USER是你的登录用户名,作者的用户名是root.该目录不能自动创建,需要执行m

Hadoop学习笔记三:分布式hadoop部署

前语:如果看官是个比较喜欢使用现成软件的,比较推荐使用quickhadoop,这个使用参照官方文档即可,是比较傻瓜式的,这里不做介绍.本文主要是针对自己部署分布式hadoop. 1.修改机器名 [[email protected] root]# vi /etc/sysconfig/network 将HOSTNAME=*** 一栏改成适当的名称,笔者两台机器采用HOSTNAME=Hadoop00,HOSTNAME=Hadoop01这种方式. 2.修改IP,网关,掩码等 vim /etc/sysco

hadoop学习笔记之--- HDFS原理学习

HDFS HDFS设计基础与目标: 冗余:硬件错误是常态 流式数据访问.即数据比量读取而非随机读写,Hadoop擅长做的是数据分析而不是事务处理. 大规模数据集 简单一致性模型.为了降低系统复杂程度,对文件采用一次性写多多次读的逻辑设置,即是文件一经写入,关闭,再也不能修改. 程序采用"数据京近"原则分配节点执行. OLTP:偶尔随机性德读写 HDFS体系架构: NameNode: 管理文件系统的命名空间: 记录每个文件数据块在各个Datanode上的位置和副本信息: 协调客户端对文件

【安全牛学习笔记】tcpdump常用命令实例

默认启动 tcpdump普通情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包. 监听网卡eth0tcpdump -i eth0这个方式最简单了,但是用处不多,因为基本上只能看到数据包的信息刷屏,压根看不清,可以使 用ctrl+c中断退出,如果真有需求,可以将输出内容重定向到一个文件,这样也更方便查看. 监听指定的主机tcpdump -i eth0 -nn 'host 192.168.168.2'这样的话,192.168.168.2这台主机接收到的包和发送的包都会被抓取.tcp

Docker学习笔记(2)--Docker常用命令

原文地址:http://blog.csdn.net/we_shell/article/details/38368137 1. 查看docker信息(version.info) [plain] view plaincopy # 查看docker版本 $docker version # 显示docker系统的信息 $docker info 2. 对image的操作(search.pull.images.rmi.history) [plain] view plaincopy # 检索image $do