hadoop
hdfs client
作用
- 文件上传的时候 做文件切片 block
- 和namenode交互 获取文件的元数据信息
- 和datanode交互 读取和写入文件信息
- 提供命令操作hdfs 比如启动和关闭hdfs
namenode
- 管理Block 的映射信息
- 管理hdfs的命名空间
- 配置副本策略
- 管理客户端的读写请求
hdfs能存储文件的数量和 namenode的内存有关,元数据信息存储在内存上,一个文件或者说block 大概需要150byte去存储 存十亿的文件数大概需要300g 的内存,所以hdfs不适合存储小文件
Editlog
任何对文件系统元数据产生的修改的操作都会记录到editlog中例如在HDFS中创建一个新文件
datanode
secondNamenode
- 定时的处理 fsimage 和 editlog合并 或者 editlog 大小到达一定程度 合并
- 和namenode不是主从备份关系。只是协助处理
hdfs 安全模式
安全模式是hadoop的一种保护机制,保证数据块的完整性。(副本率默认0.999 ,计算方式为当前可用的块除以副本数)
安全模式状态下,文件系统只接受读请求,不接受删除和修改等变更请求
MapReduce
主要包括JobClient JobTracker TaskTracker,HDFS 4个独立的部分,主要是用作分布式计算框架,MapReduce最小划分单位是split,一个Split包含多个block (不一定是整块)
JobClient
配置Configuration ,上传jar包程序存储在分布式文件系统上,将文件路径交给JobTracker
JobTracker
这是一个Master服务,负责将任务分配成一个个细小的task交给TaskTracker。监控TaskTracker的job情况如果有问题,则选择其他资源调度
TaskTracker
这是一个slaver服务,Task 主动与Job 通信,将自己的资源上报给task。同时TaskTracker 接收JobTrackerde 指令(比如启动和杀死任务),tasktracker通过“slot”(槽)来划分本机的计算资源。必须要获取到slot才能够启动任务,我们可以通过slot限制Task的并发度。