hadoop学习笔记(三):hdfs常用命令
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了hadoop学习笔记(三):hdfs常用命令,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含10016字,纯文字阅读大概需要15分钟。
内容图文
一、hadoop fs
1、创建目录
[root@master hadoop-2.7.0]# hadoop fs -mkdir /testdir1 [root@master hadoop-2.7.0]# hadoop fs -ls / Found 2 items drwxr-xr-x - root supergroup 02018-05-0711:27 /test drwxr-xr-x - root supergroup 02018-05-1809:27 /testdir1
加 -p 则创建多级目录
[root@master hadoop-2.7.0]# hadoop fs -mkdir -p /aa/bb/cc [root@master hadoop-2.7.0]# hadoop fs -ls / Found 3 items drwxr-xr-x - root supergroup 02018-05-1809:28 /aa drwxr-xr-x - root supergroup 02018-05-0711:27 /test drwxr-xr-x - root supergroup 02018-05-1809:27 /testdir1
2、ls,列出指定目录的所有文件或文件夹
[root@master hadoop-2.7.0]# hadoop fs -ls / Found 1 items drwxr-xr-x - root supergroup 02018-05-0711:27 /test
加 -R,列出所有级的目录和文件
[root@master hadoop-2.7.0]# hadoop fs -ls -R / drwxr-xr-x - root supergroup 02018-05-1809:28 /aa drwxr-xr-x - root supergroup 02018-05-1809:28 /aa/bb drwxr-xr-x - root supergroup 02018-05-1809:28 /aa/bb/cc drwxr-xr-x - root supergroup 02018-05-0711:27 /test drwxr-xr-x - root supergroup 02018-05-1809:27 /testdir1
3、copeFromLocal,复制本地文件到hdfs的目录,除了限定源路径是一个本地文件外,和put命令相似,如果要强制复制文件 加-f 也可以一次复制多个文件
[root@master hadoop-2.7.0]# touch /root/file1.txt [root@master hadoop-2.7.0]# hadoop fs -copyFromLocal /root/file1.txt /testdir1 [root@master hadoop-2.7.0]# hadoop fs -ls /testdir1 Found 1 items -rw-r--r-- 2 root supergroup 02018-05-1809:33 /testdir1/file1.txt
4、put,复制文件到hdfs中,文件可以从标准输入中读取(与copeFromLocal不同点,此时dst是一个文件)。
使用方法: hadoop fs -put <localsrc> ... <dst>
1)从本地文件复到hdfs的文件夹(与copeFromLocal相同)
[root@master hadoop-2.7.0]# hadoop fs -put /root/file1.txt /aa [root@master hadoop-2.7.0]# hadoop fs -ls /aa Found 2 items drwxr-xr-x - root supergroup 02018-05-1809:28 /aa/bb -rw-r--r-- 2 root supergroup 02018-05-1809:40 /aa/file1.txt
2) 从标准输入流中写入到hdfs中
[root@master hadoop-2.7.0]# echo abc | hadoop fs -put - /aa/file2.txt [root@master hadoop-2.7.0]# hadoop fs -ls /aa Found 3 items drwxr-xr-x - root supergroup 02018-05-1809:28 /aa/bb -rw-r--r-- 2 root supergroup 02018-05-1809:40 /aa/file1.txt -rw-r--r-- 2 root supergroup 42018-05-1809:44 /aa/file2.txt
5、cat,列出文件的内容
[root@master hadoop-2.7.0]# hadoop fs -cat /test/readme.txt total 0 drwxr-xr-x. 3 root root 18 May 710:21 dfs drwxr-xr-x. 101002110021161 May 710:22 hadoop-2.7.0 drwxr-xr-x. 4 root root 30 May 709:15 hdfs drwxr-xr-x. 3 root root 17 May 710:41 tmp
如果文件过大可以在后面加|more就可以一页一页的显示
hadoop fs -cat /test/readme.txt|more
6、rm,删除文件或目录
1)删除文件
[root@master hadoop-2.7.0]# hadoop fs -rm /aa/file2.txt rm: Failed to get server trash configuration: null. Consider using -skipTrash option [root@master hadoop-2.7.0]# hadoop fs -rm -skipTrash /aa/file2.txt Deleted /aa/file2.txt
2)删除目录
[root@master hadoop-2.7.0]# hadoop fs -rm -r -skipTrash /aa/bb Deleted /aa/bb [root@master hadoop-2.7.0]# hadoop fs -ls /aa Found 1 items -rw-r--r-- 2 root supergroup 02018-05-1809:40 /aa/file1.txt
7、cp,在hdfs内部复文件,这个命令允许有多个源路径,此时目标路径必须是一个目录
[root@master hadoop-2.7.0]# hadoop fs -cp /aa/file1.txt /aa/file3.txt 18/05/1810:01:01 WARN hdfs.DFSClient: DFSInputStream has been closed already [root@master hadoop-2.7.0]# hadoop fs -ls /aa Found 2 items -rw-r--r-- 2 root supergroup 02018-05-1809:40 /aa/file1.txt -rw-r--r-- 2 root supergroup 02018-05-1810:01 /aa/file3.txt
8、get,将文件从hdfs复制到本地
[root@master hadoop-2.7.0]# hadoop fs -get /aa/file3.txt /root/ 18/05/1810:04:11 WARN hdfs.DFSClient: DFSInputStream has been closed already [root@master hadoop-2.7.0]# ll /root/ total 8 -rw-------. 1 root root 1260 Apr 1918:36 anaconda-ks.cfg -rw-r--r--. 1 root root 784 Apr 1911:35 authorized_keys -rw-r--r--. 1 root root 0 May 1809:32 file1.txt -rw-r--r--. 1 root root 0 May 1810:04 file3.txt
9、copyToLocal,除了限定目标路径是一个本地文件外,和get命令类似
10、mv,在hdfs内部移动文件
[root@master hadoop-2.7.0]# hadoop fs -mv /aa/file3.txt /aa/file4.txt [root@master hadoop-2.7.0]# hadoop fs -ls /aa Found 2 items -rw-r--r-- 2 root supergroup 02018-05-1809:40 /aa/file1.txt -rw-r--r-- 2 root supergroup 02018-05-1810:01 /aa/file4.txt
总结用法与Linux命令类似,不再一一列了
二、hdfs dfsadmin 管理命令
1、-report,查看文件系统的信息和统计信息
[root@master 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 1810: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 1810:13:58 EDT 2018
2、-safemode,enter | leave | get | wait:安全模式命令。安全模式是NameNode的一种状态,在这种状态下,NameNode不接受对名字空间的更改(只读);不复制或删除块。NameNode在启动时自动进入安全模式,当配置块的最小百分数满足最小副本数的条件时,会自动离开安全模式。enter是进入,leave是离开。
[root@master hadoop-2.7.0]# hdfs dfsadmin -safemode get Safe mode is OFF [root@master hadoop-2.7.0]# hdfs dfsadmin -safemode enter Safe mode is ON [root@master hadoop-2.7.0]# hadoop fs -ls /aa Found 2 items -rw-r--r-- 2 root supergroup 02018-05-1809:40 /aa/file1.txt -rw-r--r-- 2 root supergroup 02018-05-1810:01 /aa/file4.txt [root@master hadoop-2.7.0]# hadoop fs -rm -skipTrash /aa/file4.txt rm: Cannot delete /aa/file4.txt. Name node isin safe mode.
3、-refreshNodes,重新读取hosts和exclude文件,使新的节点或需要退出集群的节点能够被NameNode重新识别。这个命令在新增节点或注销节点时用到。
[root@master hadoop-2.7.0]# hdfs dfsadmin -refreshNodes Refresh nodes successful
4、-finalizeUpgrade,终结HDFS的升级操作。Datanode删除前一个版本的工作目录,之后Namenode也这样做。这个操作完结整个升级过程。
[root@master 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. 等待被删除的块
[root@master 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
[root@master logs]# pwd /home/hadoop/hadoop-2.7.0/logs [root@master logs]# ll total 940 -rw-r--r--. 1 root root 254161 May 1810:26 hadoop-root-namenode-master.log -rw-r--r--. 1 root root 714 May 1809:21 hadoop-root-namenode-master.out -rw-r--r--. 1 root root 714 May 711:36 hadoop-root-namenode-master.out.1 -rw-r--r--. 1 root root 714 May 711:24 hadoop-root-namenode-master.out.2 -rw-r--r--. 1 root root 714 May 711:19 hadoop-root-namenode-master.out.3 -rw-r--r--. 1 root root 714 May 711:00 hadoop-root-namenode-master.out.4 -rw-r--r--. 1 root root 714 May 710:49 hadoop-root-namenode-master.out.5 -rw-r--r--. 1 root root 267631 May 1810:16 hadoop-root-secondarynamenode-master.log -rw-r--r--. 1 root root 714 May 1809:21 hadoop-root-secondarynamenode-master.out -rw-r--r--. 1 root root 714 May 711:36 hadoop-root-secondarynamenode-master.out.1 -rw-r--r--. 1 root root 714 May 711:24 hadoop-root-secondarynamenode-master.out.2 -rw-r--r--. 1 root root 6074 May 711:21 hadoop-root-secondarynamenode-master.out.3 -rw-r--r--. 1 root root 1067 May 711:10 hadoop-root-secondarynamenode-master.out.4 -rw-r--r--. 1 root root 12148 May 711:05 hadoop-root-secondarynamenode-master.out.5 -rw-r--r--. 1 root root 582 May 1810:33 newlog.log -rw-r--r--. 1 root root 0 May 710:22 SecurityAuth-root.audit -rw-r--r--. 1 root root 340628 May 1809:31 yarn-root-resourcemanager-master.log -rw-r--r--. 1 root root 700 May 1809:21 yarn-root-resourcemanager-master.out -rw-r--r--. 1 root root 700 May 711:36 yarn-root-resourcemanager-master.out.1 -rw-r--r--. 1 root root 700 May 711:24 yarn-root-resourcemanager-master.out.2 -rw-r--r--. 1 root root 700 May 711:19 yarn-root-resourcemanager-master.out.3 -rw-r--r--. 1 root root 700 May 711:10 yarn-root-resourcemanager-master.out.4 -rw-r--r--. 1 root root 700 May 711:00 yarn-root-resourcemanager-master.out.5
6、-setQuota <quota> <dirname>...<dirname>,为每个目录 <dirname>设定配额<quota>。目录配额是一个长整型整数N,强制限定了目录树下的名字个数。
命令会在这个目录上工作良好,以下情况会报错:
1. N不是一个正整数,或者
2. 用户不是管理员,或者
3. 这个目录不存在或是文件,或者
4. 目录会马上超出新设定的配额。
[root@master hadoop-2.7.0]# hadoop fs -ls /aa Found 2 items -rw-r--r-- 2 root supergroup 02018-05-1809:40 /aa/file1.txt -rw-r--r-- 2 root supergroup 02018-05-1810:01 /aa/file4.txt [root@master hadoop-2.7.0]# [root@master hadoop-2.7.0]# [root@master hadoop-2.7.0]# hdfs dfsadmin -setQuota 3 /aa [root@master 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 [root@master hadoop-2.7.0]# hadoop fs -ls /aa Found 2 items -rw-r--r-- 2 root supergroup 02018-05-1809:40 /aa/file1.txt -rw-r--r-- 2 root supergroup 02018-05-1810:01 /aa/file4.txt [root@master hadoop-2.7.0]# hadoop fs -ls -R /aa -rw-r--r-- 2 root supergroup 02018-05-1809:40 /aa/file1.txt -rw-r--r-- 2 root supergroup 02018-05-1810:01 /aa/file4.txt [root@master 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 [root@master hadoop-2.7.0]# [root@master hadoop-2.7.0]# hdfs dfsadmin -setQuota 6 /aa [root@master 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
内容总结
以上是互联网集市为您收集整理的hadoop学习笔记(三):hdfs常用命令全部内容,希望文章能够帮你解决hadoop学习笔记(三):hdfs常用命令所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。