会员卡
稳拿计划
APP下载
注册
登录
首页
在线实习
课程
考点刷题
专栏
改简历
校招信息
冲刺一线
基础就业
冲刺一线
Java开发
产品经理
前端开发
测试开发
UI/交互
运营
java语言
占笔面试15%
数据结构
占笔面试30%
算法
占笔面试20%
专业课
占笔面试15%
项目框架
占笔面试15%
数据库
占笔面试10%
设计模式
占笔面试10%
开放问题
占笔面试5%
开源框架
占笔面试5%
开源框架
redis
redis
nginx
nginx分析
反射代理&集群
消息队列(mq)
消息队列(mq)
spark
spark
Zookeeper
Zookeeper
haddop
haddop
netty
netty
分布式理论
paxos
haddop(共9题)
点击右边按钮,记录本次看题进度~~
精选
全部
01
Hadoop的调度器总结
1.默认的调度器FIFOHadoop中默认的调度器,它先按照作业的优先级高低,再按照到达时间的先后选择被执行的作业。2.计算能力调度器CapacityScheduler支持多个队列,每个队列可配置一定的资源量,每个队列采用FIFO调度策略,为了防止同一个用户的作业独占队列中的资源,该调度器会对同一用户提交的作业所占资源量进行限定。调度时,首先按以下策略选择一个合适队列:计算每个队列中正在运行的任务数与其应该分得的计算资源之间的比值,选择一个该比值最小的队列;然后按以下策略选择该队列中一个作业:按照作业优先级和提交时间顺序选择,同时考虑用户资源量限制和内存限制。3.公平调度器FairScheduler同计算能力调度器类似,支持多队列多用户,每个队列中的资源量可以配置,同一队列中的作业公平共享队列中所有资源。实际上,Hadoop的调度器远不止以上三种,最近,出现了很多针对新型应用的Hadoop调度器。
来自:haddop-haddop
02
HDFS组成架构
架构主要由四个部分组成,分别为HDFSClient、NameNode、DataNode和SecondaryNameNode。下面我们分别介绍这四个组成部分。1.Client:就是客户端。 (1)文件切分。文件上传HDFS的时候,Client将文件切分成一个一个的Block,然后进行存储; (2)与NameNode交互,获取文件的位置信息; (3)与DataNode交互,读取或者写入数据; (4)Client提供一些命令来管理HDFS,比如启动或者关闭HDFS; (5)Client可以通过一些命令来访问HDFS;2.NameNode:就是Master,它是一个主管、管理者。 (1)管理HDFS的名称空间; (2)管理数据块(Block)映射信息; (3)配置副本策略; (4)处理客户端读写请求。3.DataNode:就是Slave。NameNode下达命令,DataNode执行实际的操作。 (1)存储实际的数据块; (2)执行数据块的读/写操作。4)SecondaryNameNode:并非NameNode的热备。当NameNode挂掉的时候,它并不能马上替换NameNode并提供服务。 (1)辅助NameNode,分担其工作量; (2)定期合并Fsimage和Edits,并推送给NameNode; (3)在紧急情况下,可辅助恢复NameNode。
来自:haddop-haddop
03
HDFS的存储机制
HDFS存储机制,包括HDFS的写入数据过程和读取数据过程两部分HDFS写数据过程1.客户端通过DistributedFileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在。2.NameNode返回是否可以上传。3.客户端请求第一个block上传到哪几个datanode服务器上。4.NameNode返回3个datanode节点,分别为dn1、dn2、dn3。5.客户端通过FSDataOutputStream模块请求dn1上传数据,dn1收到请求会继续调用dn2,然后dn2调用dn3,将这个通信管道建立完成。6.dn1、dn2、dn3逐级应答客户端。7.客户端开始往dn1上传第一个block(先从磁盘读取数据放到一个本地内存缓存),以packet为单位,dn1收到一个packet就会传给dn2,dn2传给dn3;dn1每传一个packet会放入一个应答队列等待应答。8.当一个block传输完成之后,客户端再次请求NameNode上传第二个block的服务器。(重复执行3-7步)。HDFS读数据过程1.客户端通过DistributedFileSystem向NameNode请求下载文件,NameNode通过查询元数据,找到文件块所在的DataNode地址。2.挑选一台DataNode(就近原则,然后随机)服务器,请求读取数据。3.DataNode开始传输数据给客户端(从磁盘里面读取数据输入流,以packet为单位来做校验)。4.客户端以packet为单位接收,先在本地缓存,然后写入目标文件
来自:haddop-haddop
04
如何判定一个job的map和reduce的数量?
1.map数量 splitSize=max{minSize,min{maxSize,blockSize}} map数量由处理的数据分成的block数量决定default_num=total_size/split_size;2.reduce数量 reduce的数量job.setNumReduceTasks(x);x为reduce的数量。不设置的话默认为1。
来自:haddop-haddop
05
如何判定一个job的map和reduce的数量?
1.map数量splitSize=max{minSize,min{maxSize,blockSize}}map数量由处理的数据分成的block数量决定default_num=total_size/split_size2.reduce数量reduce的数量job.setNumReduceTasks(x);x为reduce的数量。不设置的话默认为1
来自:haddop-haddop
06
谈谈Hadoop序列化和反序列化及自定义bean对象实现序列化?
序列化和反序列化(1)序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储(持久化)和网络传输。(2)反序列化就是将收到字节序列(或其他数据传输协议)或者是硬盘的持久化数据,转换成内存中的对象。(3)Java的序列化是一个重量级序列化框架(Serializable),一个对象被序列化后,会附带很多额外的信息(各种校验信息,header,继承体系等),不便于在网络中高效传输。所以,hadoop自己开发了一套序列化机制(Writable),精简、高效。自定义bean对象要想序列化传输步骤及注意事项(1)必须实现Writable接口(2)反序列化时,需要反射调用空参构造函数,所以必须有空参构造(3)重写序列化方法(4)重写反序列化方法(5)注意反序列化的顺序和序列化的顺序完全一致(6)要想把结果显示在文件中,需要重写toString(),且用"\t"分开,方便后续用(7)如果需要将自定义的bean放在key中传输,则还需要实现comparable接口,因为mapreduce框中的shuffle过程一定会对key进行排序
来自:haddop-haddop
07
请列出正常工作的Hadoop集群中Hadoop都分别需要启动哪些进程,它们的作用分别是什么?
1.NameNode:它是hadoop中的主服务器,管理文件系统名称空间和对集群中存储的文件的访问,保存有metadate。2.SecondaryNameNode:它不是namenode的冗余守护进程,而是提供周期检查点和清理任务。帮助NN合并editslog,减少NN启动时间。3.DataNode:它负责管理连接到节点的存储(一个集群中可以有多个节点)。每个存储数据的节点运行一个datanode守护进程。4.ResourceManager(JobTracker):JobTracker负责调度DataNode上的工作。每个DataNode有一个TaskTracker,它们执行实际工作。5.NodeManager:(TaskTracker)执行任务。6.DFSZKFailoverController:高可用时它负责监控NN的状态,并及时的把状态信息写入ZK。它通过一个独立线程周期性的调用NN上的一个特定接口来获取NN的健康状态。FC也有选择谁作为ActiveNN的权利,因为最多只有两个节点,目前选择策略还比较简单(先到先得,轮换)。7.JournalNode:高可用情况下存放namenode的editlog文件。
来自:haddop-haddop
08
解释“hadoop”和“hadoop 生态系统”两个概念
Hadoop是指Hadoop框架本身;hadoop生态系统不仅包含hadoop,还包括保证hadoop框架正常高效运行其他框架,比如zookeeper、Flume、Hbase、Hive、Sqoop等辅助框架。
来自:haddop-haddop
09
讲讲Hadoop生态圈的组件并做简要描述
1.Zookeeper:是一个开源的分布式应用程序协调服务,基于zookeeper可以实现同步服务,配置维护,命名服务。2.Flume:一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。3.Hbase:是一个分布式的、面向列的开源数据库,利用HadoopHDFS作为其存储系统。4.Hive:基于Hadoop的一个数据仓库工具,可以将结构化的数据档映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。5.Sqoop:将一个关系型数据库中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
来自:haddop-haddop
记录刷题进度
手机刷题更方便