HDFS常用命令及优缺点

1,hdfs的shell命令操作

  • HDFS命令有两种风格:

    • hadoop fs开头的

    • hdfs dfs开头的

    • 两种命令均可使用,效果相同

1. hdfs常用命令

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

hdfs dfs -help ls
hadoop fs -help ls #两个命令等价
  1. 查看hdfs文件系统中指定目录的文件列表。对比linux命令ls

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

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

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

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

#用法:hdfs dfs -put /本地路径 /hdfs路径
hdfs dfs -put /linux本地磁盘文件 /hdfs路径文件
hdfs dfs -copyFromLocal /linux本地磁盘文件 /hdfs路径文件  #跟put作用一样
hdfs dfs -moveFromLocal /linux本地磁盘文件 /hdfs路径文件  #跟put作用一样,只不过,源文件被拷贝成功后,会被删除
  1. 在hdfs文件系统中下载文件

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

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

hdfs dfs -rm /edits.txt
​
将文件彻底删除(被删除文件不放到hdfs的垃圾桶里)
how?
hdfs dfs -rm -skipTrash /xcall
  1. 在hdfs文件系统中修改文件名称(也可以用来移动文件到目录)

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

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

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

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

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

  • 输入hadoop fs 或hdfs dfs,回车,查看所有的HDFS命令

  • 许多命令与linux命令有很大的相似性,学会举一反三

  • 有用的==help==,如查看ls命令的使用说明:hadoop fs -help ls

  • 绝大多数的大数据框架的命令,也有类似的help信息

2. hdfs的shell命令补充

1. hdfs与getconf结合使用

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

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

hdfs getconf -confKey dfs.namenode.fs-limits.min-block-size

用相同命令可获取其他的属性值

  1. 查找hdfs的NameNode的RPC地址

hdfs getconf -nnRpcAddresses

2. hdfs与dfsadmin结合使用

  1. 查看hdfs dfsadmin的帮助信息

hdfs dfsadmin
  1. 同样要学会借助help查看具体命令的帮助信息

hdfs dfsadmin -help safemode
  1. 查看当前的模式

hdfs dfsadmin -safemode get
  1. 进入/退出安全模式

hdfs dfsadmin -safemode enter # 进入安全模式
hdfs dfsadmin -safemode leave #退出安全模式

3. hdfs与fsck结合使用

fsck指令显示HDFS块信息

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

4. 其他命令

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

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

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

hadoop jar /kkb/install/hadoop-3.1.4/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.4.jar pi 5 5
yarn jar /kkb/install/hadoop-3.1.4/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.4.jar pi 5 5

2. hdfs的优缺点

1. hdfs的优点

(1) 高容错性

1) 数据自动保存多个副本。它通过增加副本的形式,提高容错性。

2) 某一个副本丢失以后,它可以自动恢复,这是由 HDFS 内部机制自动实现

(2) 适合批处理

1) 把数据位置暴露给计算框架,通过移动计算而不是移动数据,提高效率

(3) 适合大数据处理

1) 数据规模:能够处理数据规模达到 GB、TB、甚至PB级别的数据。

2) 文件规模:能够处理百万规模以上的文件数量,数量相当之大。

3) 节点规模:能够处理10K节点的规模。

(4) 流式数据访问

1) 一次写入,多次读取

2)不能随机修改,只能追加。

3) 它能保证数据的一致性。

(5) 可构建在廉价机器上

1) 它通过多副本机制,提高可靠性。

2) 它提供了容错和恢复机制。比如某一个副本丢失,可以通过其它副本来恢复。

2. hdfs的缺点

(1) 不适合低延时数据访问;

1) 比如毫秒级的来存储、读取数据,这是不行的,它做不到。

2) 它适合高吞吐率的场景,就是在某一时间内写入大量的数据。

(2) 无法高效的对大量小文件进行存储

1) 存储大量小文件的话,它会占用 NameNode大量的内存来存储文件、目录和块信息。这样是不可取的,因为NameNode的内存总是有限的。

2) 小文件存储的寻道时间会超过读取时间,它违反了HDFS的设计目标。

(3) 并发写入、文件随机修改

1) 一个文件只能有一个写,不允许多个线程同时写(==租约机制==)。

2) 仅支持数据 append(追加),不支持文件的随机修改。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值