hadoop上传文件到hdfs_Hadoop常见面试题有哪些?

566219707625db09564b3c9df5373088.png

1.讲述HDFS上传文件和读文件的流程

答:HDFS 上传流程,举例说明一个256M的文件上传过程

由客户端Client向NameNode节点发出请求;

NameNode向Client返回可以存数据的DataNode列表,这里遵循机架感应原则(把副本分别放在不同的机架,甚至不同的数据中心);

客户端首先根据返回的信息先将文件分块(Hadoop2.X版本每一个block为 128M,而之前的版本为 64M);

通过NameNode返回的DataNode信息,将文件块以写入方式直接发送给DataNode,同时复制到其他两台机器(默认一份数据,有两个副本);

数据块传送完成以后,dataNode向Client通信,同时向NameNode报告;

依照上面(4)到(5)的原理将所有的数据块都上传,结束后向 NameNode 报告 表明已经传完所有的数据块。

2.HDFS在上传文件的时候,如果其中一个块突然损坏了怎么办?

答:其中一个块坏了,只要有其它块存在,会自动检测还原。

3.Hadoop怎么分片?

答:HDFS存储系统中,引入了文件系统的分块概念(block),块是存储的最小单位,HDFS定义其大小为64MB。与单磁盘文件系统相似,存储在 HDFS上的文件均存储为多个块,不同的是,如果某文件大小没有到达64MB,该文件也不会占据整个块空间。在分布式的HDFS集群上,Hadoop系统 保证一个块存储在一个datanode上。

HDFS的namenode只存储整个文件系统的元数据镜像,这个镜像由配置dfs.name.dir指定,datanode则存有文件的metainfo和具体的分块,存储路径由dfs.data.dir指定。

分析完毕分块,下面讨论一下分片:

hadoop的作业在提交过程中,需要把具体的输入进行分片。具体的分片细节由InputSplitFormat指定。分片的规则为 FileInputFormat.class中的getSplits()方法指定:

long splitSize = computeSplitSize(goalSize, minSize, blockSize);

computeSplitSize:

Math.max(minSize, Math.min(goalSize, blockSize));

其中goalSize为“InputFile大小”/“我们在配置文件中定义的mapred.map.tasks”值,minsize为mapred.min.split.size,blockSize为64,所以,这个算式为取分片大小不大于block,并且不小于在mapred.min.split.size配置中定义的最小Size。

当某个分块分成均等的若干分片时,会有最后一个分片大小小于定义的分片大小,则该分片独立成为一个分片。

4.Hadoop如何进行性能调优?

调优可以通过系统配置、程序编写和作业调度算法来进行。 hdfs的block.size可以调到128/256(网络很好的情况下,默认为64)

调优的大头:mapred.map.tasks、mapred.reduce.tasks设置mr任务数(默认都是1)

mapred.tasktracker.map.tasks.maximum每台机器上的最大map任务数

mapred.tasktracker.reduce.tasks.maximum每台机器上的最大reduce任务数

mapred.reduce.slowstart.completed.maps配置reduce任务在map任务完成到百分之几的时候开始进入

这个几个参数要看实际节点的情况进行配置,reduce任务是在33%的时候完成copy,要在这之前完成map任务,(map可以提前完成)

mapred.compress.map.output,mapred.output.compress配置压缩项,消耗cpu提升网络和磁盘io 合理利用combiner 。注意重用writable对象

以上就是关于Hadoop在企业常见的一些面试题,想要了解更多有关Hadoop面试题的资讯,欢迎关注!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值