25-7-11
缓存加载中...
client<->namenode(active)<->namenode(standby)
其中namenode一个对应多个datanode,每个datanode中三个数据的block(128MB,大文件拆成等大的这种块),一般一个数据会复制成三个block放在不同节点来保证可用。
datanode会通过心跳机制(每3s)上报meta信息,如果没有传来心跳则触发容灾。
磁盘中持久化的内容:edits和fsimage.
写:
读:
client发送请求,namenode返回datanode列表(namenode进行过排序,网络拓扑找最近的),client连接datanode并拉取。
HDFS变成只读状态。
触发条件:block的上报率小于阈值。
离开安全模式:上报达到阈值(默认0.999)。
常见原因:
namenode重启
namenode磁盘空间不足
block上报低于阈值
datanode无法正常启动
在日志中严重异常
用户强制关机
排查
找到datanode不能启动原因,重启
清理namenode磁盘
劣势:
namenode内存受限。解决:联邦(federation机制)。
namenode单点故障。解决:HA
zookeepeer:启动多个进程(failovercontroller),协调服务监控namenode实现HA。
hadoop fs <args>
可操作任何文件系统
URL:单个hdfs可以用简写,多个用全写hdfs://nameservice/parent/child
,配置文件有基本信息
跨平台。
IP+端口+指定操作目录,PUT/GET/DELETE
core-site.xml
hadoop全局配置hdfs-site.xml
hdfs局部配置
<configuration>
<property>
这里是相关配置!
</property>
</configuration>
环境变量:hadoop-env.sh
。distcp
分布式拷贝(并发,转换为mapreduce任务)
hadoop1.x中,HDFS存储,mapreduce做计算和资源管理。
解决的问题:通用!
主从,资源管理和任务调度分离。
三种角色:ResourceManager主,NodeManager从,ApplicationMaster.
两种管理:
task比job粒度更细。
zookeeper帮助yarn的节点选举,实现HA。
三种
队列划分:根队列root
,其余子队列继承以.
连接。
杀死:yarn application -list
找到pid再-kill
,ctrlC不能终止。
批处理,分布式计算。
Map映射(得到中间部分的结果,处理成(k,v)
形式),-shuffle(慢,主要是节点间合并->M传输R->R节点缓存->分组排序)->Reduce合并化简。
shuffle阶段:
作业运行:参考yarn
统一计算框架:流批、交互、ml
有on yarn
运行模式。
ResilientDistributeDataset弹性分布式数据集。
分布在集群中只读对象集合,多个partition组成,转换操作构造,失效后自动重构(弹性),存储在内存或磁盘中。
计算时,RDD构成DAG图。
两种操作:
依赖:
map/filter/union
xxByKey
local/standalone/yarn(client交互调试/cluster生产环境)
模式
作业解析监控:
Driver中:生成逻辑查询计划,物理查询计划,任务调度。
Executor:任务执行。