(三)HDFS的常用命令
1、自定义脚本
1.1、一键启动集群脚本
# 注意我这是在/root/bin目录下创建的,因为这个目录在PATH环境变量内,你们也可以自己进行配置
# 查看PATH环境变量使用 echo $PATH
# 1、编辑脚本
vim myhadoop.sh
# 添加以下内容到脚本内
#!/bin/bash
if [ $# -lt 1 ]
then
echo "No Args Input..."
exit ;
fi
case $1 in
"start")
echo " =================== 启动 hadoop 集群 ==================="
echo " --------------- 启动 hdfs ---------------"
ssh hadoop101 "/opt/modules/hadoop-3.1.3/sbin/start-dfs.sh"
echo " --------------- 启动 yarn ---------------"
ssh hadoop102 "/opt/modules/hadoop-3.1.3/sbin/start-yarn.sh"
echo " --------------- 启动 historyserver ---------------"
ssh hadoop101 "/opt/modules/hadoop-3.1.3/bin/mapred --daemon start historyserver"
;;
"stop")
echo " =================== 关闭 hadoop 集群 ==================="
echo " --------------- 关闭 historyserver ---------------"
ssh hadoop101 "/opt/modules/hadoop-3.1.3/bin/mapred --daemon stop historyserver"
echo " --------------- 关闭 yarn ---------------"
ssh hadoop102 "/opt/modules/hadoop-3.1.3/sbin/stop-yarn.sh"
echo " --------------- 关闭 hdfs ---------------"
ssh hadoop101 "/opt/modules/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)
echo "Input Args Error..."
;;
esac
# 2、给脚本赋可执行权限
chmod +x myhadoop.sh
# 3、测试
myhadoop.sh start
myhadoop.sh stop
- 根据自己的安装目录以及 hostname 进行更改
1.2、查看集群启动情况脚本
# 1、编写脚本,同上面一样,在/root/bin目录下进行
vim jpsall.sh
# 添加以下内容
#!/bin/bash
for host in hadoop101 hadoop102 hadoop103
do
echo =============== $host ===============
ssh $host jps
done
# 2、赋值可执行权限
chmod +x jpsall.sh
# 3、测试
jpsall.sh
2、HDFS常用命令
-
mkdir: 创建目录
# 在hdfs上创建一个input文件夹 hadoop fs -mkdir /input
-
moveFormLocal: 从本地剪切到hdfs
# 将当前目录下的test.txt文件剪切到hdfs上的/input目录下,源文件没有了 hadoop fs -moveFromLocal ./test.txt /input
-
copyFromLocal:从本地拷贝到hdfs
# 将当前目录下的test.txt 文件复制到hdfs上的/input目录下,源文件还在 hadoop fs -copyFromLocal ./test.txt /input
-
put: 上传到hdfs
# 将当前目录下的test.txt 文件上传到hdfs上的/input目录下,源文件还在 hadoop fs -put ./test.txt /input
-
appendToFile: 追加一个文件到一个文件(已存在)末尾
# 将当前目录下的test1.txt文件的内容追加到hdfs上的/input目录下的test.txt文件末尾 hadoop fs -copyFromLocal ./test1.txt /input/test.txt
-
copyToLocal: 从hdfs复制文件到本地
# 将hdfs上/input目录下的test.txt下载到当前目录下,并且重命名为test2.txt hadoop fs -copyToLocal /input/test.txt ./test2.txt
-
get: 下载文件到本地
# 和copyToLocal一样 hadoop fs -get /input/test.txt ./test2.txt
-
ls: 查看目录信息
# 查看根目录信息 hadoop fs -ls /
-
cat: 查看文件信息,和linux一样
# 查看test.txt hadoop fs -cat /input/test.txt
-
cp: 拷贝文件
# 将test.txt 拷贝到/input2目录下 hadoop fs -cp /input/test.txt /input2/
-
mv: 移动文件,也可以改名
# 将test.txt移动到/input2下 hadoop fs -mv /input/test.txt /input2 # 将test.txt 重命名为test2.txt hadoop fs -mv /input/test.txt /input/test2.txt
-
rm: 删除文件或目录
# 删除test.txt hadoop fs -rm /input/test.txt # 递归删除 hadoop fs -rm -r /input
-
tail: 查看文件末尾信息和linux一样
# 查看test.txt hadoop fs -tail /input/test.txt
-
setrep: 设置副本数量
# 设置test.txt 副本数量为2 hadoop fs -setrep 2 /input/test.txt
-
du: 统计文件夹大小信息
# 统计/input大小信息,显示总的 hadoop fs -du -s -h /input # 详细显示 hadoop fs -du -h /input