大数据(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

  

 

posted @ 2018-09-04 14:20  shifu204  阅读(281)  评论(0编辑  收藏  举报