Hdfs常用操作

简介

本文记录一下Hdfs的一些常用指令

上传文件到hdfs

如果我们想要上传文件到hdfs,可以执行如下指令:

hadoop dfs -put 本地文件的路径  hdfs的路径

例如:

hadoop dfs -put /home/spark/hadoop/datasource/interface-access.log-20160829 /datasource

这样是把本地的interface-access.log-20160829 文件放入hdfs的/datasource文件夹下

hdfs不能存在相同文件

查看hdfs文件

我们可以使用fsck命令去查看hdfs上的一个文件的大小以及他的block大小以及路径(MR1v默认的block为64m,MRv2默认的block大小为128M)

hdfs fsck /user/hive/warehouse/test.db/factorder -files -blocks -locations

如上指令将返回factorder文件的文件大小,以及他划分为的block个数,以及block的大小和路径
image
我们会看到我们每个block的replication的个数为1,这是因为我们在hdfs-site.xml中的配置个数为1.如果我们想要改变备份的数量,应该在hdfs-site.xml中进行配置.这样之后再上传hdfs的文件就会进行多份的备份.注意,replacation的个数不能超过hadoop集群的datanode节点数量,==因为副本在datanode上只能存在一份==

更改replication个数

如果我们想要更改已经上传的文件的replication个数我们可以执行以下的操作

hadoop fs -setrep 3 /user/hive/warehouse/test.db/factorder

这样我们就会将factorder文件的block备份为3份,存储在不同的datanode上.

查看集群使用情况

我们可以执行如下指令查看当前集群node节点的使用情况:

hdfs dfsadmin -report

这样可以显示如我们当前的集群的dfs的使用情况,如果我们当前集群的使用是不平衡的,我们可以使用hadoop的balancer
指令来平衡6

hdfs balancer -threshold XX
hdfs balancer -threshold 10%

threshold后加上一个百分比,这个百分比代表datanode之间的使用差异小于这个值,我们便认为hdfs是平衡的.

在默认的情况下,balancer的过程是非常缓慢的.
Hadoop的开发人员在开发Balancer程序的时候,遵循了以下几点原则:
1. 在执行数据重分布的过程中,必须保证数据不能出现丢失,不能改变数据的备份数,不能改变每一个rack中所具备的block数量。
2. 系统管理员可以通过一条命令启动数据重分布程序或者停止数据重分布程序。
3. Block在移动的过程中,不能暂用过多的资源,如网络带宽。
4. 数据重分布程序在执行的过程中,不能影响name node的正常工作。
我们可以通过

hdfs dfsadmin -setBalanacerBandwidth newbandwidth
hdfs dfsadmin -setBalanacerBandwidth (31457280)

来设置带宽,单位是字节,上面例子为设置datanode的带宽为30m.
关于优化balancer的方法可以参考博客:
- 漫谈Hadoop HDFS Balancer
- Hadoop Balancer运行速度优化

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值