HDFS常用命令有两个方式,hadoop ,hdfs 效果一样的。

常用命令

  1. 如何查看hdfs或hadoop子命令的帮助信息,如ls子命令

    1
    2
    3
    
    #两个命令等价
    hdfs dfs -help ls
    hadoop fs -help ls	
    
  2. 查看hdfs文件系统中已经存在的文件。对比linux命令ls

    1
    2
    
    hdfs dfs -ls /
    hadoop fs -ls /
    
  3. 在hdfs文件系统中创建文件

    1
    
    hdfs dfs -touchz /edits.txt
    
  4. 向HDFS文件中追加内容

    1
    2
    
    #将本地磁盘当前目录的edit1.xml内容追加到HDFS根目录 的edits.txt文件
    hadoop fs -appendToFile edit1.xml /edits.txt 
    
  5. 查看HDFS文件内容

    1
    
    hdfs dfs -cat /edits.txt
    
  6. 从本地路径上传文件至HDFS

    1
    2
    3
    4
    5
    6
    
    #用法:hdfs dfs -put /本地路径 /hdfs路径
    hdfs dfs -put hadoop-2.7.3.tar.gz /
    #根put作用一样
    hdfs dfs -copyFromLocal hadoop-2.7.3.tar.gz /  
    #根put作用一样,只不过,源文件被拷贝成功后,会被删除
    hdfs dfs -moveFromLocal hadoop-2.7.3.tar.gz /  
    
  7. 在hdfs文件系统中下载文件

    1
    2
    3
    
    hdfs dfs -get /hdfs路径 /本地路径
    #根get作用一样
    hdfs dfs -copyToLocal /hdfs路径 /本地路径  
    
  8. 在hdfs文件系统中创建目录

    1
    
    hdfs dfs -mkdir /shell
    
  9. 在hdfs文件系统中删除文件

    1
    2
    3
    4
    
    hdfs dfs -rm /edits.txt
    hdfs dfs -rm -r /shell
    # 删除使用hdfs用户
    sudo -u hdfs hadoop dfs -rm -r /user/hive/warehouse/dataset.db/zhaobiao
    
  10. 在hdfs文件系统中修改文件名称(也可以用来移动文件到目录)

    1
    2
    
    hdfs dfs -mv /xcall.sh /call.sh
    hdfs dfs -mv /call.sh /shell
    
  11. 在hdfs中拷贝文件到目录

    1
    
    hdfs dfs -cp /xrsync.sh /shell
    
  12. 递归删除目录

    1
    
    hdfs dfs -rmr /shell
    
  13. 列出本地文件的内容(默认是hdfs文件系统)

    1
    
    hdfs dfs -ls file:///home/bruce/
    
  14. 查找文件

    1
    2
    3
    4
    5
    6
    
    # linux find命令
    find . -name 'edit*'
        
    # HDFS find命令
    # 在HDFS根目录中,查找part-r-00000文件
    hadoop fs -find / -name part-r-00000  
    

hdfs getconf

  1. 获取NameNode的节点名称(可能有多个)

    1
    
    hdfs getconf -namenodes
    
  2. 获取hdfs最小块信息

    1
    
    hdfs getconf -confKey dfs.namenode.fs-limits.min-block-size
    
  3. 查找hdfs的NameNode的RPC地址

    1
    
    hdfs getconf -nnRpcAddresses
    

hdfs dfsadmin

  1. 同样要学会借助帮助信息

    1
    
    hdfs dfsadmin -help safemode
    
  2. 查看hdfs dfsadmin的帮助信息

    1
    
    hdfs dfsadmin
    
  3. 查看当前的模式

    1
    
    hdfs dfsadmin -safemode get
    
  4. 进入安全模式

    1
    
    hdfs dfsadmin -safemode enter
    

hdfs fsck

  1. fsck指令显示HDFS块信息

    1
    2
    
    # 查看文件02-041-0029.mp4的块信息
    hdfs fsck /02-041-0029.mp4 -files -blocks -locations 
    

性能测试

1
2
3
4
5
6
7
8
9
# 下面使用的是CDH的安装路径的文件,如果是其他安装方式,可以搜索文件名找到绝对的路径
# 写入的测试 100单位是M
sudo -u hdfs hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-client-jobclient-3.0.0-cdh6.2.0-tests.jar TestDFSIO -write -nrFiles 10 -fileSize 100

# 读的测试
sudo -u hdfs hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-client-jobclient-3.0.0-cdh6.2.0-tests.jar TestDFSIO -read -nrFiles 10 -fileSize 100

# 清楚测试数据
sudo -u hdfs hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-client-jobclient-3.0.0-cdh6.2.0-tests.jar TestDFSIO -clean

其他命令

  1. 检查压缩库本地安装情况

    1
    
    hadoop checknative
    
  2. 格式化名称节点(慎用,一般只在初次搭建集群,使用一次;格式化成功后,不要再使用)

    1
    
    hadoop namenode -format
    
  3. 执行自定义jar包

    1
    
    hadoop jar xxx-1.0-SNAPSHOT.jar com.xxx.hadoop.WordCount /world.txt /out