一、HDFS集群启停命令
1、一键启停脚本
Hadoop HDFS组件内置了HDFS集群的一键启停脚本
(1)、$HADOOP_HOME/sbin/start-dfs.sh,一键启动HDFS集群
执行原理:
在执行此脚本的机器上,启动SecondaryNameNode
读取core-site.xml(fs.defaultFS项),确认NameNode所在机器,启动NameNode
读取workers内容,确认DataNode所在机器,启动全部DataNode
(2)、$HADOOP_HOME/sbin/stop-dfs.sh,一键关闭HDFS集群
执行原理:
在执行此脚本的机器上,关闭SecondaryNameNode
读取core-site.cml内容,确认NameNode所在机器,关闭NameNode
读取workers内容,确认DataNode所在机器,关闭全部NameNode
二、使用命令操作HDFS文件系统
1、关于HDFS文件系统的操作命令,Hadoop提供了2套命令体系
hadoop命令(老版本用法),用法: hadoop fs [generic options]
hdfs命令(新版本用法),用法: hdfs dfs [generic options]
2、创建文件夹
hadoop fs -mkdir [-p] <path>
hdfs dfs -mkdir [-p] <path>
path为待创建的目录
-p选项会沿着路径创建父目录
3、查看指定目录下的内容
hadoop fs -ls [-h] [-R] [<path>.....]
hdfs dfs -ls [-h] [-R] [<path>.....]
path指定目录路径
-h人性化显示文件size
-R 递归查看指定目录及其子目录
4、上传文件到HDFS指定目录下
hadoop fs -put [-f] [-p] <localsrc> ... <dst>
hdfs dfs -put [-f] [-p] <localsrc> ... <dst>
-f 覆盖目标文件(已存在下)
-p 保留访问和修改时间,所有权和权限
localsrc 本地文件系统(客户端所在机器)
dst 目标文件系统(HDFS)
5、查看hdfs文件内容
hadoop fs -cat <src> ...
hdfs dfs -cat <src> ...
例:
hdfs dfs -cat /itcast/profile
读取大文件可以使用管道符配合more
hadoop fs -cat <src> | more
hdfs dfs -cat <src> | more
6、下载HDFS文件
hadoop fs -get [-f] [-p] <src> ... <localdst>
hdfs dfs -get [-f] [-p] <src> ... <localdst>
下载文件到本地文件系统指定目录,localdst必须是目录
-f 覆盖目标文件(已存在下)
-p 保留访问和修改时间,所有权和权限
7、拷贝HDFS文件
hadoop fs -cp [-f] <src> ... <dst>
hdfs dfs -cp [-f] <src> ... <dst>
-f 覆盖目标文件(已存在下)
8、追加数据到HDFS文件中
hadoop fs -appendToFile <localsrc> ... <dst>
hdfs dfs -appendToFile <localsrc> ... <dst>
将所有给定本地文件的内容追加到给定dst文件。
dst如果文件不存在,将创建改文件
如果<localSrc>为-,则输入为从标准输入中读取
9、HDFS数据移动操作
hadoop fs -mv <src> ... <dst>
hdfs dfs -mv <src> ... <dst>
移动文件到指定文件夹下
可以使用该命令移动数据,重命名文件的名称
10、HDFS数据删除操作
hadoop fs -rm -r [-skipTrash] URI [URI...]
hdfs dfs -rm -r [-skipTrash] URI [URI....]
删除指定路径的文件或文件夹
-skipTrash 跳过回收站,直接删除
三、HDFS Shell命令权限不足问题解决
1、修改权限
在HDFS中,可以使用和Linux一样的授权语句,即:chown和chmod
修改所属用户和组
hadoop fs -chown [-R] root:root /xxx.txt
hdfs dfs -chwon [-R] root:root /xxx.txt
修改权限
hadoop fs -chmod [-R] 777 /xxx.txt
hdfs dfs -chmod [-R] 777 /xxx.txt