一、一键启停脚本
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.xml
内容(fs.defaultFS
项),确认NameNode
所在机器,关闭NameNode
- 读取
workers
内容,确认DataNode
所在机器,关闭全部NameNode
- 在执行此脚本的机器上,关闭
二、单进程启停
1.hadoop-daemon.sh
$HADOOP_HOME/sbin/hadoop-daemon.sh
:此脚本可以单独控制所在机器的进程的启停- 用法:
hadoop-daemon.sh (start|status|stop) (namenode|secondarynamenode|datanode)
2.hdfs
$HADOOP_HOME/bin/hdfs
:此程序也可以用以单独控制所在机器的进程的启停- 用法:
hdfs --daemon (start|status|stop) (namenode|secondarynamenode|datanode)
三、操作命令
1.创建文件夹
hadoop fs -mkdir [-p] <path> ...
hdfs dfs -mkdir [-p] <path> ...
- path 为待创建的目录
- -p选项的行为与Linux mkdir -p一致,它会沿着路径创建父目录。
hdfs dfs -mkdir -p /FeiLink/hadoop
或
hadoop fs -mkdir -p /EuropeanSheik/hadoop
2.查看指定目录下内容
hadoop fs -ls [-h] [-R] [<path> ...]
hdfs dfs -ls [-h] [-R] [<path> ...]
- path 指定目录路径
- -h 人性化显示文件size
- -R 递归查看指定目录及其子目录
hdfs dfs -ls /FeiLink
或
hdfs dfs -ls /EuropeanSheik
3.上传文件到HDFS指定目录下
hadoop fs -put [-f] [-p] <localsrc> ... <dst>
hdfs dfs -put [-f] [-p] <localsrc> ... <dst>
\- -f 覆盖目标文件(已存在下)
- -p 保留访问和修改时间,所有权和权限。
- localsrc 本地文件系统(客户端所在机器)
- dst 目标文件系统(HDFS)
hdfs dfs -put /etc/profile /FeiLink/hadoop
或
hadoop fs -put /etc/profile /EuropeanSheik/hadoop
4.查看HDFS文件内容
hadoop fs -cat <src> ...
hdfs dfs -cat <src> ...
读取大文件可以使用管道符配合more
hadoop fs -cat <src> | more
hdfs dfs -cat <src> | more
hdfs dfs -cat /FeiLink/hadoop/profile | more
5.下载HDFS文件
hadoop fs -get [-f] [-p] <src> ... <localdst>
hdfs dfs -get [-f] [-p] <src> ... <localdst>
- 下载文件到本地文件系统指定目录,localdst必须是目录
- -f 覆盖目标文件(已存在下)
- -p 保留访问和修改时间,所有权和权限。
hdfs dfs -get /FeiLink/hadoop/profile /home/hadoop
6.拷贝HDFS文件
hadoop fs -cp [-f] <src> ... <dst>
hdfs dfs -cp [-f] <src> ... <dst>
- -f 覆盖目标文件(已存在下)
hdfs dfs -cp /FeiLink/hadoop/profile /FeiLink/hadoop/profile_bac
7.追加数据到HDFS文件中
hadoop fs -appendToFile <localsrc> ... <dst>
hdfs dfs -appendToFile <localsrc> ... <dst>
- 将所有给定本地文件的内容追加到给定dst文件。
- dst如果文件不存在,将创建该文件。
- 如果
<localSrc>
为-,则输入为从标准输入中读取。
[hadoop@node1 ~]$ echo 1 >> 1.txt
[hadoop@node1 ~]$ echo 2 >> 2.txt
[hadoop@node1 ~]$ echo 3 >> 3.txt
[hadoop@node1 ~]$ hdfs dfs -put 1.txt /
[hadoop@node1 ~]$ hdfs dfs -cat /1.txt
1
[hadoop@node1 ~]$ hadoop fs -appendToFile 2.txt 3.txt /1.txt
[hadoop@node1 ~]$ hdfs dfs -cat /1.txt
1
2
3
[hadoop@node1 ~]$
8.HDFS移动数据
hadoop fs -mv <src> ... <dst>
hdfs dfs -mv <src> ... <dst>
- 移动文件到指定文件夹下
- 可以使用该命令移动数据,重命名文件的名称
hdfs dfs -mv /FeiLink/hadoop/profile_bac /FeiLink/hadoop/profile_bac_bac
9.HDFS数据删除
hadoop fs -rm -r [-skipTrash] URI [URI ...]
hdfs dfs -rm -r [-skipTrash] URI [URI ...]
- 删除指定路径的文件或文件夹
- -skipTrash 跳过回收站,直接删除
hdfs dfs -rm -r /FeiLink/hadoop/profile_bac