hadoop

重要组成

Hdfs是分布式文件存储系统,是用来存储文件的

  1. NameNode:管理元数据信息,给子节点分配任务(FSImage是主节点启动时对整个文件系统的快照(元数据镜像文件),Edits是修改记录(操作日志文件))
  2. DataNode:负责数据存储,实时上报心跳给主节点
  3. SecondaryNameNode:
    1.首先,它定时到NameNode去获取edit logs,并更新到fsimage上。一旦它有了新的fsimage文件,它将其拷贝回 NameNode中。
    2.NameNode在下次重启时会使用这个新的fsimage文件,从而减少重启的时间。

Yarn是一个资源管理系统

  1. ResourceManager 监控 NodeManager,负责集群的资源调度
  2. nodemanager 管理节点资源,处理ResourceManager 命令(启动mrappmaster,maptask ,reducetask)

端口

dfs.namenode.http-address:50070
dfs.datanode.http-address:50075
SecondaryNameNode辅助名称节点端口号:50090
dfs.datanode.address:50010
fs.defaultFS:8020 或者9000
yarn.resourcemanager.webapp.address:8088
历史服务器web访问端口:19888

fsck 工具

用来确认hadoop的健康情况的

sudo -u hdfs hdfs fsck /

但是fsck工具只会列出有问题的文件和block,但是它并不会对它们进行修复

Hdfs

HDFS的优缺点

优点:

  • 机器便宜
  • 分布式存储大文件
  • 高扩展性:可以随意加机器
  • 高效性:Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
  • 高可靠性:Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。

缺点:

  • 高延迟,haddop牺牲了数据的延迟,对高数据吞吐量做了优化
  • 大量的小文件会导致naenode元数据信息占用内存很大,影响集群运行效率
  • hdfs的文件只能一次写入,不支持写入和修改
  • 没有事务

hdfs常用命令

start-all.sh
hadoop-daemon.sh  start    
yarn-daemon.sh start

hadoop fs -ls /
hdfs dfs -ls /
hdfs dfs -put
hdfs dfs -get
hdfs dfs -cat
hdfs dfs -text
hdfs dfs -tail
hdfs dfs -cp
hdfs dfs -mv
hdfs dfs -copyFromLocal
hdfs dfs -copyToLocal
hdfs dfs -rmdir
hdfs dfs -rmr
hdfs dfs -touchz
hdfs dfs -getmerge

Hdfs小文件问题

namenode将元数据存储在内存中,每个文件,目录,数据块的存储信息大约占了150个字节,大量的小文件会占用很多的内存空间,使集群运行变慢

小文件解决方案,目前来讲没有找到有效的解决方案,这个问题也调研过一段时间,发现大数据圈目前没有有效的途径解决这个问题

  1. 在数据采集的时候,就将小文件或小批数据合成大文件再上传HDFS。
  2. 在业务处理之前,在HDFS上使用MapReduce程序对小文件进行合并。
  3. 在MapReduce处理时,可采用CombineTextInputFormat提高效率
block

默认一个block是128M,但是hdfs存储有溢出比,实际测试过可以存储135M的文件

小于一个块的文件,并不会占用一整个块的空间

HDFS读写性能测试

在hadoop的share文件夹下自带了性能测试jar包

hadoop-mapreduce-client-jobclient-2.7.3.2.5.3.0-37-tests.jarTestDFSIO
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

orange大数据技术探索者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值