一、Hadoop Shell命令
既然有官方文档,那当然先找到官方文档的参考:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/FileSystemShell.html
对于3种命令的区别:
以下内容参考自stackoverflow
Following are the three commands which appears same but have minute differences
- hadoop fs {args}
- hadoop dfs {args}
hdfs dfs {args}
hadoop fs <args>FS relates to a generic file system which can point to any file systems like local, HDFS etc. So this can be used when you are dealing with different file systems such as Local FS, HFTP FS, S3 FS, and others
hadoop dfs <args>dfs is very specific to HDFS. would work for operation relates to HDFS. This has been deprecated and we should use hdfs dfs instead.
hdfs dfs <args>same as 2nd i.e would work for all the operations related to HDFS and is the recommended command instead of hadoop dfs
below is the list categorized as HDFS commands.
**#hdfs commands** namenode|secondarynamenode|datanode|dfs|dfsadmin|fsck|balancer|fetchdt|oiv|dfsgroupsSo even if you use Hadoop dfs , it will look locate hdfs and delegate that command to hdfs dfs
启动hadoop客户端HDFS的命令是:
bin/hadoop fs <args>
1.上传文件
先造一个测试文件:
echo "i love china" > 1.txt
// 重定向追加到文件,详细请参考linux基础随笔
使用 -put,详细用法:
put Usage: hadoop fs -put [-f] [-p] [-l] [-d] [ - | <localsrc1> .. ]. <dst> Copy single src, or multiple srcs from local file system to the destination file system. Also reads input from stdin and writes to destination file system if the source is set to “-” Copying fails if the file already exists, unless the -f flag is given. Options: -p : Preserves access and modification times, ownership and the permissions. (assuming the permissions can be propagated across filesystems) -f : Overwrites the destination if it already exists. -l : Allow DataNode to lazily persist the file to disk, Forces a replication factor of 1. This flag will result in reduced durability. Use with care. -d : Skip creation of temporary file with the suffix ._COPYING_. Examples: hadoop fs -put localfile /user/hadoop/hadoopfile hadoop fs -put -f localfile1 localfile2 /user/hadoop/hadoopdir hadoop fs -put -d localfile hdfs://nn.example.com/hadoop/hadoopfile hadoop fs -put - hdfs://nn.example.com/hadoop/hadoopfile Reads the input from stdin. Exit Code: Returns 0 on success and -1 on error.