一、前言
1、启动虚拟机
2、连接工具
3、启动Hadoop并查询确保进程为5+1
start-all.shjps
hadoop_14">练习完请一定 stop-all.sh
关掉hadoop进程
关掉虚拟机
再关机电脑
二、Hadoop命令行主命令
1、进入Hadoop安装目录的bin路径
cd /training/hadoop-3.3.0/bin/
2、查看低下的执行文件(这是两个小写的L)
ll
可以看到Hadoop有四个主命令
,其中hadoop和hdfs和HDFS有关
,mapred和yarn与数据处理有关
。
hadoophdfs_30">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、-touch
、touchz
创建空文件
hdfs dfs -touch /niit/agatha
hdfs dfs -touchz /niit/aggie
touch和touchz的区别:
4、-put
将Linux文件传到HDFS
cd /echo "this is a file" > file.txthdfs 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.gzhdfs dfs -put /compress.gz /niithdfs dfs -cat /niit/compress.gzhdfs dfs -text /niit/compress.gz
7、-tail
、-head
查看文件最后1KB、查看文件最开始1KB
hdfs dfs -tail /niit/file.txthdfs 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、copyToLocal、put、get、moveFromLocal、moveToLocal、cp
未完继续