课堂学习笔记
第九天课程–hdfs工作机制:
课程大纲
- HDFS工作机制:
NameNode负责文件系统的元数据;DataNode负责管理具体文件数据块存储;SecondaryNameNode协助NameNode进行元数据备份。
HDFS内部机制对客户端保持透明;客户端请求访问HDFS都是通过向NameNode申请来进行。 - mapreduce思想:分而治之
map负责分,把复杂的任务分解为若干个简单的任务来并行处理。前提是,这些任务可以并行计算,彼此间没有依赖。
reduce负责合:对map阶段的结果进行汇总。
HDFS 工作机制–上传文件写数据流程
- 上图为HDFS结构图
- 如何寻找datanode
1、如果客户端所在的机器正好有空闲并且健康的dn,则第一块数据放在这个dn。否则,选择网络拓扑距离(交换机)最短的dn。
2、同机架不同机器找一个。
3、不同机架随机找一个。
4、如果副本不是3,第一个按照规则,其他的随机寻找dn。 - 下图为上传文件写数据流程
blk1的本身以及它的备份先传输完再进行blk2的传输。
HDFS 工作机制–下载文件读数据流程
1. 客户端并行下载数据,如图中的第三步。
HDFS 工作机制–nn dn核心概述
- 如果namenode挂了,hdfs也挂了。
- dn跟nn之间的汇报
1、集群刚启动的时候,dn要汇报一次
首先dn报告自己启动成功,汇报自己的现有块
2、当集群正常运行后
每隔3s通过心跳报告自己是否活着
每隔六小时汇报自己的现有块
HDFS java操作(了解)
开发环境构建–FileSystem类
注意身份&注意winUtilsexe
- java开发hdfs:客户端身份权限。
更加底层Stream的形式访问
HDFS 案例–了解shell采集数据到hdfs
第十天课程:入门mapreduce
深刻理解MapReduce思想–先分再合
- 分而治之
- Map 负责分,即把复杂的任务分解为若干个“简单的任务”来并行处理。 可以进行拆分的前提是这些小任务可以并行计算,彼此间几乎没有依赖关系。
Reduce 负责“合,即对 map 阶段的结果进行全局汇总。
如何实现mapreduce计算
mapreduce设计构思
- Map: 对一组数据元素进行某种重复式的处理;
Reduce: 对 Map 的中间结果进行某种进一步的结果整理。 - map: (k1; v1) → [(k2; v2)]
reduce: (k2; [v2]) → [(k3; v3)]
Map 和 Reduce 为程序员提供了一个清晰的操作接口抽象描述。通过以上两
个编程接口,大家可以看出 MapReduce 处理的数据类型是<key,value>键值对。
mapreduce–java语言单词统计
一个完整的 mapreduce 程序在分布式运行时有三类实例进程:
1、MRAppMaster:负责整个程序的过程调度及状态协调
2、MapTask:负责 map 阶段的整个数据处理流程
3、ReduceTask:负责 reduce 阶段的整个数据处理流程
- 需求:
待处理的数据目录 /wordcount/input 1.txt 2.txt
统计这个目录下所有文件中每个单词出现的总次数
课程总结
1、namenode是老大
2、HDFS读写数据流程重要