Hadoop命令行语句

一、前言

1、启动虚拟机
在这里插入图片描述
2、连接工具
在这里插入图片描述
3、启动Hadoop并查询确保进程为5+1

start-all.sh

jps

在这里插入图片描述

练习完请一定 stop-all.sh 关掉hadoop进程

关掉虚拟机

再关机电脑

二、Hadoop命令行主命令

1、进入Hadoop安装目录的bin路径
cd /training/hadoop-3.3.0/bin/
2、查看低下的执行文件(这是两个小写的L)
ll

在这里插入图片描述
可以看到Hadoop有四个主命令,其中hadoop和hdfs和HDFS有关mapred和yarn与数据处理有关

3、hadoop与hdfs

目前我们将学习这两个和HDFS有关的命令

1)当你输入hadoop回车,你可以看到如图
在这里插入图片描述
2)当你输入hdfs回车,你可以看到如图
在这里插入图片描述
你可以发现这两个主命令有共同和不同的点
其中共同点为:从命令都分为三类:管理l类Admin,客户类Client,进程类Daemon
其中不同点为:从命令数量和内容不同,以及使用范围不同

三、Hadoop命令行从命令

目前我们将学习HDFS文件系统的命令行语句,属于client类的从命令

1、根据上图你会发现hadoop命令涉及到的HDFS从命令为fs,hdfs命令涉及到的HDFS从命令为dfs
为了方便未来好记,你可以记成所谓的固定搭配,即:
hdfs+dfs、hadoop+fs

2、那hdfs dfs 和 hadoop fs有什么不同呢?
hadoop fs 适用于所有文件系统(Windows文件系统,Linux文件系统,HDFS······)
hdfs dfs 只适用于HDFS

因为是学习HDFS的命令行,后续将大部分使用 hdfs dfs 搭配 ,所以如果看到代码是hdfs dfs开头的,或者hadoop fs 开头的说明是hadoop的代码,如果没有这个开头就是普通Linux命令

四、Hadoop端口

Hadoop中进程之间有沟通,会有内部端口使用tcp协议沟通,同时会有网页可视化文件系统方便使用

内部为8020,在core-site.xml里配置了
HTTP网页端口为9870,可以可视化看hadoop网页

可以用ip去访问,也可以用主机名访问,下面来配置一下主机名访问的东西

1、在window中进入C:\Windows\System32\drivers\etc找到hosts文件
在这里插入图片描述
2、右键,属性,把只读取消掉
在这里插入图片描述
3、点击安全,点击编辑,把用户名每一个都点一遍,把能勾的都勾上,然后应用,然后关闭
在这里插入图片描述
在这里插入图片描述
4、用管理员的记事本打开这个文件
在这里插入图片描述
在这里插入图片描述
5、添加自己的ip和主机名 在这里插入图片描述
6、在浏览器地址栏写主机名:9870,就可以打开了
在这里插入图片描述
7、这里可以看hadoop文件系统
在这里插入图片描述
在这里插入图片描述

五、Hadoop命令行语句

注意在hadoop中只有绝对路径,没有相对路径,涉及到路径的必须全部写全

hdfs + dfs + 主操作 + 从操作

1、-ls查看某个路径下的所有文件文件夹
hdfs dfs -ls /

在这里插入图片描述

2、-mkdir在某个路径下创建文件夹
hdfs dfs -mkdir /niit

在这里插入图片描述
在这里插入图片描述

3、-touchtouchz 创建空文件
hdfs dfs -touch /niit/agatha
hdfs dfs -touchz /niit/aggie

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
touch和touchz的区别:
在这里插入图片描述

4、-put 将Linux文件传到HDFS
cd /

echo "this is a file" > file.txt

hdfs dfs -put /file.txt /niit

在这里插入图片描述
在这里插入图片描述

5、-cat 查看文件内容
hdfs dfs -cat /niit/file.txt

在这里插入图片描述

6、-text 查看文件转成文本后的内容

这里我们创建一个压缩包,并上传到HDFS,当你用cat查看你会发现他显示的是二进制内容,因为压缩的原因,而如果你使用text命令,会帮你转换成原本的文本显示

echo "this is a compressed file" | gzip > compress.gz

hdfs dfs -put /compress.gz /niit

hdfs dfs -cat /niit/compress.gz

 hdfs dfs -text /niit/compress.gz

在这里插入图片描述

7、-tail-head 查看文件最后1KB、查看文件最开始1KB
hdfs dfs -tail /niit/file.txt

hdfs dfs -head /niit/file.txt

在这里插入图片描述

8、-test 检查 -e检查是否存在-z检查是否为空-d检查是否是文件夹

1)-test -e 检查是否存在,存在为0,不存在为1

hdfs dfs -test -e /niit/agatha

调用系统变量?查看返回值

echo $?

有agatha文件,所以返回0

hdfs dfs -test -e /niit/haha

调用系统变量?查看返回值

echo $?

没有haha文件,所以返回1

在这里插入图片描述
2)-test -z检查是否为空,为空则返回0,不为空则返回1

hdfs dfs -test -z /niit/agatha

调用系统变量?查看返回值

echo $?

agatha为空所以返回0

hdfs dfs -test -z /niit/file.txt

调用系统变量?查看返回值

echo $?

file.txt不为空所以返回1

在这里插入图片描述
3)-test -d 检查是否是文件夹, 是文件夹为0,不是文件夹为1

hdfs dfs -test -d /niit/agatha

调用系统变量?查看返回值

echo $?

agatha为文件,所以返回1

hdfs dfs -test -d /niit

调用系统变量?查看返回值

echo $?

niit为文件夹,所以返回0
在这里插入图片描述

9、-count 计数文件夹,文件,文件夹总大小
hdfs dfs -count /niit

显示3个参数,参数1为包含该目录有几个文件夹,参数2为有几个文件,参数3为整个文件夹的大小

在这里插入图片描述
在这里插入图片描述

10、-du 显示文件夹下单个文件的字节大小 -h将超过KB的字节转成KB\MB形式,-s整个文件夹计算

显示三个参数,单个大小,单个大小*副本数量,文件路径

hdfs dfs -du /niit

在这里插入图片描述

hdfs dfs -du -h /niit

这里由于文件没有超过KB,所以没什么区别

在这里插入图片描述

hdfs dfs -du -h -s /niit

在这里插入图片描述

11、-copyFromLocal从Linux传到HDFS

记得Hadoop命令是区分大小写的,后面不再提示

1)创一个文件夹用于传数据

hdfs dfs -mkdir /niit/learn

在这里插入图片描述

在这里插入图片描述
2)使用copyFromLocal上传

hdfs dfs -copyFromLocal  Linux路径/文件(/file.txt)  HDFS路径(/niit/learn)

在这里插入图片描述
在这里插入图片描述

运行后刷新页面就传过来了
在这里插入图片描述

12、-copyToLocal 从HDFS传到Linux
 hdfs dfs -copyToLocal  HDFS路径/文件(/niit/learn/file.txt)  Linux路径(/tools)

在这里插入图片描述
在这里插入图片描述

13、-moveFromLocal 从Linux剪切到HDFS

(我就不运行了,不然文件剪切掉了,和copyFromLocal是同理的,只不过一个是复制一个是剪切)

hdfs dfs -mkdir /niit/learn1

hdfs dfs -moveFromLocal /file.txt /niit/learn1

在这里插入图片描述

14、-moveToLocal 从HDFS剪切到Linux

目前实现不了,因为HDFS剪切要删元数据,但是HDFS不允许,所以未实现这个命令,可以用copyToLocal替换,只需知道功能是从HDFS剪切到Linux就行

15、-cp 在HDFS里面进行文件复制

1)创一个文件夹/niit/learn1用于一会演示复制

hdfs dfs -mkdir /niit/learn1

2)cp命令HDFS内部复制

hdfs dfs -cp HDFS原路径/文件(/niit/learn/file.txt)  新HDFS路径(/niit/learn1)

在这里插入图片描述

复制过来啦
在这里插入图片描述

16、-getmerge 合并HDFS文件并将合并内容放到Linux文件里面

1)创几个文件用于一会合并用

echo "this is file1 content" > /file1.txt
echo "this is file2 content" > /file2.txt
echo "this is file3 content" > /file3.txt

在这里插入图片描述

2)把刚刚3个文件传进HDFS去

hdfs dfs -put /file1.txt /niit/learn
hdfs dfs -put /file2.txt /niit/learn
hdfs dfs -put /file3.txt /niit/learn

在这里插入图片描述

在这里插入图片描述
3)合并这个learn文件夹里的 file file1 file2 file3 并将结果放到Linux的文件里
这里我取名filemerge.txt,放到Linux/目录下

hdfs dfs -getmerge HDFS路径(/niit/learn) Linux路径/文件名(/filemerge.txt)

用Linux cat命令查看一下文件内容

cat /filemerge.txt

你就可以看到4个文件内容合成一个放这个文件里了
在这里插入图片描述

17、-rm删除文件
hdfs dfs -rm HDFS路径/文件

在这里插入图片描述
在这里插入图片描述

18、-rmdir删除空文件夹
hdfs dfs -rmdir HDFS空文件夹路径

在这里插入图片描述

19、-rm -r 删除非空文件夹( 旧命令为-rmr 现建议用 -rm -r)
hdfs dfs -rm -r HDFS路径

在这里插入图片描述
在这里插入图片描述

20、-expunge 清空回收站

回收站的真实功能需要在core-site.xml里配置点代码,不过只运行没有什么影响
配置的两个东西如下,只了解就行

1、fs.trash.interval
文件在回收站多久之后有资格被删除

2、fs.trash.checkpoint.interval
Hadoop多久去自动删除一次回收站的频率

在这里插入图片描述

21、一些偶尔用但要考的命令 背就行了

hdfs dfs -stat HDFS路径 查看文件或文件夹的最新编辑时间
hdfs dfs -setrep 数量 HDFS文件 编辑某单个文件副本数量
hdfs dfs -setrep -R 数量 HDFS文件夹 统一编辑某个文件夹内所有文件副本数量
hdfs dfs -chgrp换组
hdfs dfs -chmod换权限
hdfs dfs -chown换用户

22、一些不常用但要考的命令 背就行了

hadoop distcp 跨集群文件复制
hdfs fsck HDFS状态检查
hadoop balancer hadoop资源平衡
hadoop jar jar包运行
hdfs dfsadmin hadoop客户端管理
hdfs dfsadmin -safemode leave 退出hadoop安全模式
hadoop namenode hadoop和主节点有关的命令
hadoop namenode -format hadoop格式化
hadoop job hadoop和任务有关的命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Agatha方艺璇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值