大数据(4) - HDFS常用的shell操作

注意:这次使用的是第二部分安装的集群,不是高可用集群

为了方便,开发,必须写集群脚本,试想集群的机器是100台以上,而不是3台的情况。。。。

集群启动脚本

vim /home/admin/tools/start-cluster.sh 

#!/bin/bash
echo "================ 开始启动所有节点服务 ==========="
echo "================ 正在启动Zookeeper ==========="
for i in admin@linux01 admin@linux02 admin@linux03
do
ssh $i '/home/admin/modules/zookeeper-3.4.10/bin/zkServer.sh start'
done
echo "================ 正在启动HDFS ==========="
ssh admin@linux01 '/home/admin/modules/hadoop-2.7.2/sbin/start-dfs.sh'
echo "================ 正在启动YARN ==========="
ssh admin@linux02 '/home/admin/modules/hadoop-2.7.2/sbin/start-yarn.sh'
echo "================ linux01节点正在启动JobHistoryServer ==========="
ssh admin@linux01 '/home/admin/modules/hadoop-2.7.2/sbin/mr-jobhistory-daemon.sh start historyserver'

  

集群关闭脚本

vim /home/admin/tools/stop-cluster.sh 

#!/bin/bash
echo "================ 开始停止所有节点服务 ==========="
echo "================ linux01节点正在停止JobHistoryServer ==========="
ssh admin@linux01 '/home/admin/modules/hadoop-2.7.2/sbin/mr-jobhistory-daemon.sh stop historyserver'
echo "================ 正在停止YARN ==========="
ssh admin@linux02 '/home/admin/modules/hadoop-2.7.2/sbin/stop-yarn.sh'
echo "================ 正在停止HDFS ==========="
ssh admin@linux01 '/home/admin/modules/hadoop-2.7.2/sbin/stop-dfs.sh'
echo "================ 正在停止Zookeeper ==========="
for i in admin@linux01 admin@linux02 admin@linux03
do
ssh $i '/home/admin/modules/zookeeper-3.4.10/bin/zkServer.sh stop'
done

  

集群详情脚本

vim /home/admin/tools/jpsutil.sh 

#!/bin/bash
for i in admin@linux01 admin@linux02 admin@linux03
do
echo "==================$i==================="
ssh $i 'jps'
done

  

一、启动hadoop集群

sh /home/admin/tools/start-cluster.sh

  

二、常用的shell操作

cd /home/admin/modules/hadoop-2.7.2/

  

# 格式化操作
$ bin/hdfs namenode -format # 展示文件和文件夹列表
$ bin/hdfs dfs -ls / # 创建文件夹
# 在用户目录下创建
$ bin/hdfs dfs -mkdir AAA/
# 在根目录下创建
$ bin/hdfs dfs -mkdir /AAA/
# 递归层级创建多个文件夹
$ bin/hdfs dfs -mkdir -p /BBB/CCC # 上传本地文件到HDFS,如果上传成功,则删除本地文件(就是剪切操作)
$ bin/hdfs dfs -moveFromLocal hello_world.txt / # 末尾追加数据到HDFS中已经存在的文件里面
$ bin/hdfs dfs -appendToFile hello_world2.txt /hello_world.txt # 查看文件内容
$ bin/hdfs dfs -cat /hello_world.txt # 查看文件末尾信息
$ bin/hdfs dfs -tail /hello_world.txt # 拷贝本地文件到HDFS,-copyFromLocal可以替换为-put
$ bin/hdfs dfs -copyFromLocal words.txt /AAA # 拷贝HDFS文件到HDFS另一个目录
$ bin/hdfs dfs -cp /AAA/words.txt /BBB # 或剪切
$ bin/hdfs dfs -mv /AAA/words.txt /BBB # 下载HDFS中的文件到本地文件系统
$ bin/hdfs -get /hello_world.txt ./ # 下载多个文件,并合并为一个文件到本地文件系统
$ bin/hdfs dfs -getmerge /*.txt ./demo.txt # 删除文件或文件夹
$ bin/hdfs dfs -rmr /AAA

  

上一篇:剑指Offer——Java实现栈和队列的互模拟操作


下一篇:jQuery 模拟操作