1.启动和关闭hadoop进程
1.启动|关闭 Hadoop 所有的服务
#启动所有进程
start-all.sh
#关闭所有进程
stop-all.sh
-
jps命令查看启动的节点情况
2.启动|关闭 HDFS 的服务
#启动
start-dfs.sh
#关闭
stop-dfs.sh
3.启动/关闭 YARN 的服务
在配置了 ResourceManager 的节点启动YARN
#进入启动目录
cd /opt/module/hadoop-3.1.3/sbin/
-
#启动
start-yarn.sh
#关闭
stop-yarn.sh
查看 yarn 的 application 信息
##查看所有任务
yarn application -list
##查看正在运行的任务
yarn application -list -appStates RUNNING
##杀掉 yarn 正在运行的服务
yarn application -kill 任务id
##停止yarn 服务
stop-yarn.sh
4.单点启动|关闭
单点代表只启动正在操作的主机,而不是主机集群
单点启动或者关闭Namenode/Datanode/SecondaryNamenode
#单点启动DataNode
hadoop-daemon.sh start/stop datanode
-
#单点启动namenode
hadoop-daemon.sh start/stop namenode
-
#单点启动secondarynamenode
hadoop-daemon.sh start/stop secondarynamenode
单点启动或者关闭Resourcemanager/Nodemanager
#单点启动nodemanager
yarn-daemon.sh start/stop nodemanager
-
#单点启动resourcemanager
yarn-daemon.sh start/stop resourcemanager
5.多点启动或者关闭
多点就代表整个集群启动或者关闭
启动Datanode 或 Nodemanager,在主节点执行
#启动datanode
hadoop-daemons.sh start/stop datanode
-
#启动nodemanager
yarn-daemons.sh start/stop nodemanager
2.查看帮助
hdfs dfs -help
3.目录操作
1.显示目录
hdfs dfs -ls 目录名(必须是HDFS系统上的)
-
hdfs dfs -ls /
2.创建目录
是在hadoop创建的这个大平台集群上面创建一个目录
hdfs dfs -mkdir 目录名
-
#在hadoop平台的根目录下创建一个input目录
hdfs dfs -mkdir /input
-
可以加参数-p,一次创建多级目录
hdfs dfs –mkdir –p /a/b
3.删除空目录
hdfs dfs -rmdir /test
非空目录无法删除
4.文件操作
1.在指定目录下创建空文件
hdfs dfs -touchz /test/zs.txt
-
在test目录下创建一个zs.txt空文件
2.显示文件内容
hdfs dfs -cat /tmp/test_hdfs/testshear.txt
-
查看HDFS系统上/tmp/test_hdfs/testshear.txt的文件内容
如果文件为空,则不显示
3.在文件末尾添加内容
假设test1.txt文件里面内容如下
aaa
-
想要在test1.txt文件末尾添加bbb,在test2.txt文件里面写bbb
vim test2.txt 填写bbb
-
将本地的test2.txt文件内容,添加到HDFS系统的/tmp/test_hdfs/test1.txt文件内容末尾
hdfs dfs -appendToFile test2.txt /tmp/test_hdfs/test1.txt
-
#查看追加结果
hdfs dfs -cat /tmp/test_hdfs/test1.txt
(1)使用此命令时,集群数量不能小于 3 个。
(2)第一个参数是本地文件,第二个是 Hadoop 集群中(HDFS)的文件(不能是本地文件)
4.更改文件权限
#查看文件权限,查看/tmp/test_hdfs/testshear.txt的权限
hdfs dfs -ls /tmp/test_hdfs/testshear.txt
-
#使用chmod将权限更改为755,将/tmp/test_hdfs/testshear.txt文件权限更改为755
hdfs dfs -chmod 755 /tmp/test_hdfs/testshear.txt
-
#再次查看权限是否已经更改
hdfs dfs -ls /tmp/test_hdfs/testshear.txt
5.复制文件
是将HDFS系统上的文件A复制到HDFS系统上指定目录的B位置下
#将 HDFS系统下的testshear.txt 拷贝到HDFS系统下的/tmp 下
hdfs dfs -cp /tmp/test_hdfs/testshear.txt /tmp
(1)只用于同节点内的文件复制。
(2)拷贝相同的文件到同一个目录中会报错。
(3)-f 参数会直接忽视错误,不管文件是否存在,强行将文件拷贝过去。
6.移动(剪切)文件
将HDFS系统上的文件A 移动到HDFS系统上的目录B下
#将HDFS系统下的testshear.txt文件移动到HDFS系统下的/user目录下
hdfs dfs -mv /tmp/testshear.txt /user
(1)文件名相同会报错,并且没有-f 参数。
(2)若源目录和目标目录相同,相当于重命名操作(Linux 的mv 命令同样有剪切和重命名两个功能)。
7.删除文件或者目录
#删除文件
hdfs dfs -rm /tmp/merge_test/file01.txt
#删除文件夹
hdfs dfs -rm -R /tmp/merge_test
rm -r:只能用于删除文件,不能用于删除文件夹。只能删除指定的一个文件,不能删除同时多个文件
rm -R:既能用于删除文件,也能用于删除除文件夹。
5.文件上传和下载操作
1.将本地文件上传到HDFS系统上,本地文件保留
(1)文件存在时,如果再上传相同的文件,会报错。
(2)如果在 put 后加上-f,则会直接覆盖同名文件。
(3)如果上传路径中的目录已存在,却直接执行了命令,会创建出一个和路径名相同的文件:
hdfs dfs -put testfile.zip /tmp/test_hdfs
-
将本地的testfile.zip文件上传到HDFS文件系统上的/tmp/test_hdfs目录下
-
hdfs dfs -ls /tmp/test_hdfs
查看HDFS文件系统上的/tmp/test_hdfs目录下的文件
2.将HDFS系统上的文件下载到本地
#将HDFS系统上的/tmp/test_hdfs/testfile.zip 文件下载到本地的/home目录
hdfs dfs -get /tmp/test_hdfs/testfile.zip /home
3.将本地文件上传到HDFS系统,本地文件不保留
hdfs dfs -moveFromLocal testshear.txt /tmp/test_hdfs
-
将本地的testshear.txt文件上传到HDFS系统上的/tmp/test_hdfs目录下,而且本地的testshear.txt不存在了
与put 功能类似,不同之处在于moveFromLocal 会删除本地文件,而 put则不会。
4.合并下载一个文件夹中的多个文件
假设我们的/usr目录下有A.txt,B.txt这两个文件,我们想将它们联合下载下来
hdfs dfs -getmerge /usr Download.txt
-
将usr目录下的A.txt与B.txt追加在一个文件中Download.txt中,然后将Download.txt下载到本地
6.进阶操作
1.统计系统的可用空间
hdfs dfs -df -h /
-h:以 K,M,G 为单位,提高信息的可读性
2.统计文件或者文件夹的大小
#统计/tmp/test_hdfs文件夹下的各个文件大小
hdfs dfs -du -s -h /tmp/test_hdfs
-h:以 K,M,G 为单位,提高信息的可读性;
加-s:查看文件夹大小;
不加-s:查看文件夹内每个文件大小。
3.统计指定目录下的文件个数
#统计/tmp/test_hdfs目录下的文件个数
hdfs dfs -count -h /tmp/test_hdfs
第一列 1 表示指定目录下文件夹的数量,第二列 2表示指定目录下文件的个数。
190.7 M 表示指定目录下所有文件占用的磁盘容量(不包括 HDFS 副本)。
4.杀死hadoop某个进程
#查看进程号
jps
#杀死指定进程
hadoop job –kill [job-id]
5.设置HDFS副本数量
最后一个参数 无论是文件夹还是文件,本文件夹中所有文件的副本数都会被重新设置
#将/tmp/test_hdfs文件夹副本数量设置为4
hdfs dfs -setrep 4 /tmp/test_hdfs
6.指定目录查看数据块是否损坏
## 从根目录检查每个文件的数据块是否损坏、丢失
hdfs fsck /
7.查看被检查文件的状态信息
## 注意-files 参数要写在文件信息后
hdfs fsck /test/word.txt -files
8.显示文件的块信息
## 注意要和-files 参数一起使用
> hdfs fsck /test/word.txt -files -blocks
9.显示块信息的位置
## 注意要和-files -blocks 参数一起使用
> hdfs fsck /test/word.txt -files -blocks -racks
7.查看hadoop支持的压缩方式
hadoop checknative
如果返回’true’,说明 Hadoop 支持此种压缩
8.虚拟内存修改
集群里面的所有主机都需要执行下面的所有操作
如果集群内存比较小,在运行一些占用比较大内存进程的时候,会产生内存溢出,所以需要设置一下虚拟内存,防止内存溢出现象,当然如果内存很足,则不用考虑
1.查看集群虚拟内存大小
free
使用 free 命令查看内存信息,Swap 就是 Linux 的虚拟内存,0 表示没有虚拟内存
2.创建虚拟内存缓存文件
我们在root目录下,创建一个swap缓存文件((每块 1M,总共 8192 块,共计:8192M),比较慢
#注意路径,是在/root目录下
dd if=/dev/zero of=/root/swapfile bs=1M count=8192
-
#创建好以后,查看文件大小,只需要看swapfile文件即可
ll /root -h
3.构建+激活 swap
第一步:构建 swap 格式刡 swapfile
mkswap /root/swapfile
第二步:激活 swap
swapon /root/swapfile
第三步:查看激活信息
free
4.永久生效
第一步:保存配置
vim /etc/fstab
第二步:修改
将 /swap none swap sw 0 0 这行(如果有的话)注释掉,新增一行
/root/swapfile swap swap defaults 0 0
-
注意路径
5.调整虚拟内存
集群里面的所有主机都需要修改
第一步:关闭swap
swapoff /root/swapfile
-
注意路径
第二步:删除 swapfile 文件
rm -rf /root/swapfile
第三步:重建虚拟内存
版权归原作者 码农写手 所有, 如有侵权,请联系我们删除。