hadoop shell命令
一、shell命令行的解释说明
命令行界面(CLI):使用户通过键盘输入指令,计算机接受到指令后,予以执行一种人际交互方式。
Hadoop提供了文件系统的shell命令行客户端:hadoop fs [ generic options ]
文件系统协议:
1、 HDFS Shell CLI支持操作多种文件系统,包括本地文件系统(file:///)、分布式文件系统(hdfs://nn:8020)等。
2、集体操作的是什么文件系统取决于命令文件路径URL中的前缀协议。
3、如果没有指定前缀,则将会读取环境变量中的fs.defaultFS属性,以该属性值作为默认文件系统。
设置默认使用的文件系统是在core-aite.xml中的:
操作本地文件系统:hadoop fs -ls file:///
操作HDFS分布式文件系统:hadoop fs-ls hdfs://master:8020/
直接根目录,没有指定协议,将加载fs.defaultFS值:hadoop fs -ls /
二、shell命令行的常用操作
1、创建文件夹:hadoop fs -mkdir [-p] <path> …
path 为待创建的目录。
[-p] 如果父目录不存在会自动创建父目录。
2、查看指定目录下内容:hadoop fs -ls [-h] [-R] [<path> …]
path 指定目录路径。
-h 人性化显示文件size。
-R 递归查看指定目录及其子目录。
3、上传文件到HDFS指定目录下:hadoop fs -put [-f] [-p] <localsrc> … <dst>
-f 覆盖目标文件(已存在下)。
-p 保留访问和修改时间,所有劝和权限。
localsrc 本地文件系统(客户端所在机器)。
dst 目标文件系统(HDFS)。
4、查看HDFS文件内容:hadoop fs -cat <src> …
读取指定文件全部内容,显示在标准输出控制台。
注意:对于大文件内容读取慎重!
5、下载HDFS文件:hadoop fs -get [-f] [-p] <src> … <localdst>
下载文件到本地文件系统指定目录,localdst必须是目录。
-f 覆盖目标文件(已存在下)。
-p 保留访问和修改时间,所有权和权限。
./ 它代表的是当前目录
6、拷贝HDFS文件:hadoop fs -cp [-f] <src> … <dst>
-f 覆盖目标文件(已存在下)。
7、追加数据到HDFS文件中:hadoop fs -appendToFile <localsrc> … <dst>
将所有给定本地文件的内容追加到给定dst文件。
dst如果文件不存在,将创建该文件。
如果<localsrc> 为 – ,则输入为从标准输入中读取。
应用场景:小文件合并
例子:
先上传一个文件到 / 下,后面再追加
/1.txt 是在根目录下的
8、HDFS数据移动操作:hadoop fs -mv <src> … <dst>
移动文件到指定文件夹下。
可以使用该命令移动数据,重命名文件的名称。