没有合适的资源?快使用搜索试试~ 我知道了~
ReduceTask工作机制 (1)Copy阶段:ReduceTask从各个MapTask上远程拷贝一片数据,并针对某一片数据,如果其大小超过一定阈值,则写到磁盘上,否则直接放到内存中。 (2)Merge阶段:在远程拷贝数据的同时,ReduceTask启动了两个后台线程对内存和磁盘上的文件进行合并,以防止内存使用过多或磁盘上文件过多。 (3)Sort阶段:按照MapReduce语义,用户编写reduce()函数输入数据是按key进行聚集的一组数据。为了将key相同的数据聚在一起,Hadoop采用了基于排序的策略。由于各个MapTask已经实现对自己的处理结果进行了局部排序,因此,ReduceTask只需对所有数据进行一次归并排序即可。(4)Reduce阶段:reduce()函数将计算结果写到HDFS上。 12、描述mapReduce有几种排序及排序发生的阶段 1)排序的分类: (1)部分排序: MapReduce根据输入记录的键对数据集排序。保证输出的每个文件内部排序。 (2)全排序: 如何用Hadoop产生一个全局排序的文件?最简单的方法是使用一个分区。但该方法在处理大型文件时效率极
资源推荐
资源详情
资源评论
最新 Hadoop 的面试题总结
1、集群的最主要瓶颈
磁盘 IO,网络带宽
2、Hadoop 运行模式
单机版、伪分布式模式、完全分布式模式
3、Hadoop 生态圈的组件并做简要描述
1)Zookeeper:是一个开源的分布式应用程序协调服务,基于 zookeeper
可以实现同步服务,配置维护,命名服务。
2)Flume:一个高可用的,高可靠的,分布式的海量日志采集、聚合和
传输的系统。
3)Hbase:是一个分布式的、面向列的开源数据库, 利用 Hadoop HDFS
作为其存储系统。
4)Hive:基于 Hadoop 的一个数据仓库工具,可以将结构化的数据档映
射为一张数据库表,并提供简单的 sql 查询功能,可以将 sql 语句转换
为 MapReduce 任务进行运行。 5)Sqoop:将一个关系型数据库中的
数据导进到 Hadoop 的 HDFS 中,也可以将 HDFS 的数据导进到关系型
数据库中。
4、解释“hadoop”和“hadoop 生态系统”两个概念
Hadoop 是指 Hadoop 框架本身;hadoop 生态系统,不仅包含 hadoop,
还包括保证 hadoop 框架正常高效运行其他框架,比如 zookeeper、Flume、
Hbase、Hive、Sqoop 等辅助框架。
5、请列出正常工作的 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 也有选择谁作为 Active NN 的权利,
因为最多只有两个节点,目前选择策略还比较简单(先到先得,轮
换)。 7)JournalNode:高可用情况下存放 namenode 的 editlog 文件。
6、谈谈 Hadoop 序列化和反序列化及自定义 bean 对象实现序列化?
1)序列化和反序列化
(1)序列化就是把内存中的对象,转换成字节序列(或其他数据传输
协议)以便于存储(持久化)和网络传输。
(2)反序列化就是将收到字节序列(或其他数据传输协议)或者是硬
盘的持久化数据,转换成内存中的对象。
(3)Java 的序列化是一个重量级序列化框架(Serializable),一个对
象被序列化后,会附带很多额外的信息(各种校验信息,header,继承
体系等),不便于在网络中高效传输。所以,hadoop 自己开发了一套
序列化机制(Writable),精简、高效。
2)自定义 bean 对象要想序列化传输步骤及注意事项:
(1)必须实现 Writable 接口
(2)反序列化时,需要反射调用空参构造函数,所以必须有空参构造
(3)重写序列化方法
(4)重写反序列化方法
(5)注意反序列化的顺序和序列化的顺序完全一致
(6)要想把结果显示在文件中,需要重写 toString(),且用"\t"分开,方
便后续用 (7)如果需要将自定义的 bean 放在 key 中传输,则还需要
实现 comparable 接口,因为 mapreduce 框中的 shuffle 过程一定会对 key
进行排序
7、FileInputFormat 切片机制
job 提交流程源码详解
waitForCompletion()
submit();
// 1、建立连接
connect();
// 1)创建提交 job 的代理
new Cluster(getConfiguration());
// (1)判断是本地 yarn 还是远程
initialize(jobTrackAddr, conf);
// 2、提交 job
submitter.submitJobInternal(Job.this, cluster)
// 1)创建给集群提交数据的 Stag 路径
Path jobStagingArea = JobSubmissionFiles.getStagingDir(cluster, conf);
// 2)获取 jobid ,并创建 job 路径
JobID jobId = submitClient.getNewJobID();
// 3)拷贝 jar 包到集群
copyAndConfigureFiles(job, submitJobDir);
rUploader.uploadFiles(job, jobSubmitDir);
// 4)计算切片,生成切片规划文件
writeSplits(job, submitJobDir);
maps = writeNewSplits(job, jobSubmitDir);
input.getSplits(job);
// 5)向 Stag 路径写 xml 配置文件
writeConf(conf, submitJobFile);
conf.writeXml(out);
// 6)提交 job,返回提交状态
剩余25页未读,继续阅读
资源评论
什么是快乐代码
- 粉丝: 43
- 资源: 66
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 论文(最终)_20240430235101.pdf
- 基于python编写的Keras深度学习框架开发,利用卷积神经网络CNN,快速识别图片并进行分类
- 最全空间计量实证方法(空间杜宾模型和检验以及结果解释文档).txt
- 5uonly.apk
- 蓝桥杯Python组的历年真题
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
- 林周瑜-论文.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功