hadoop 概念
- 分布式:
整个业务拆解多个业务由不同机器实现 -
集群:
- 多个机器通过网络连接,每台机器做一样的工作
-
怎么跟小白讲呢:从前有个餐厅只有一个厨师,做买菜,洗菜,炒菜
- 客户多了,招多了一个厨师做一样的事,两个厨师就是集群
- 随着客户减少招多了几个厨师就分为了几局部,1 个做买菜,1 个做洗菜,1 个做炒菜,分布式
- 而炒菜 1 个不够,招多了 1 个,2 个炒菜徒弟就是分布式中的集群
-
负载平衡
- 正当分配任务,让所有机器在一个正当范畴内实现,若呈现某些机子实现迟缓要及时批改任务分配
-
hadoop
- 1.hdfs 海量数据存储
- 2.mapreduce 分布式计算框架,剖析解决
- 3.yarn 对立的资源调度平台,集群资源进行治理 (spark)
-
性质
- 扩容能力,集群可扩大到上万台
- 成本低,对服务器单台性能要求不高
- 高效率,节点数量多,能够独特承载并发操作
- 可靠性,在 hadoop 中数据都是存在备份的
- 元数据:形容数据的数据,如地位,名字,大小等
架构
1.x
-
,namenode 与 jobtracker 仅一个 弊病:1. 单节点故障问题;2.jobtracker 工作量太高;3.mapreduce 集群资源分配后只能运行 mapreduce 程序,无奈运行其余的计算工作
-
hdfs
- namenode hdfs 集群主节点 1. 存储元数据 (形容数据的数据),2. 治理从节点,3. 负责数据读写操作
- dataanode(出磁盘) hdfs 集群从节点:1. 负责数据理论存储,2. 和 namenode 放弃心跳连贯
- secondarynode 辅助节点:辅助 hadoop 中元数据信息的辅助治理,namenode 元数据是须要长久化,每次重启将上一次 editlog 的数据合并到 fsimage 中,而 secondarynamenode 就是用来帮助实现这项工作
-
mapreduce
- jobtracker: mapreduce 集群主节点 1. 接管计算工作,2. 分配任务给 tasktracker,工作最终由 tasktracker 实现,3. 分配资源
- tasktracker(出内存和 cpu): mapreduce 集群从节点 1. 接管主节点调配过去的工作,2. 依据资源要求,启动执行工作 3. 将执行工作的后果交给 jobtracker
- 补充:windows 中的删除其实是删除元数据,内容是没有删除的
-
2.x
-
hdfs 集群
- namenode
- secondnamenode
- datanode
-
yarn(对立的资源调度平台),反对除了 mr 以外的计算工作,只有这个计算工作须要资源,都能够部署在 yarn 平台上 (yarn 调度接口)
-
resourceManager
- 接管计算工作,启动一个 applicationmaster, 负责管理工作
- 负责资源分配调度
-
appMaster: 每个工作都对应一个 appmaster
- 负责工作的全生命周期
- 任务分配
- 向主机申请资源
- 负责连贯 nodemanager 启动工作
-
nodeManager
- 启动 appmaster
- 接管 appmaster 调配的工作
- 执行工作与 appmaster 放弃通信,并且与主机放弃通信
-
高可用版本 2.x,能够只对 hdfs 高可用,hdfs 与 yarn 是独立的,jdk1.7
-
hdfs
-
namenode 能够有两个,主备构造 namenode(active) namenode(standby), 与 zookeeper 的连贯称为 zkfc, 借助 zookeeper 进行主节点确定与宕机治理,没有 snn
- 当两个 namenode 存储的元数据信息不统一就呈现脑裂问题,因而诞生了 journalnode(多台形成集群),用于同步元数据,(为什么不必 zookeeeper 同步呢?)答:因为 zookeeper 有只反对体积很小的文件系统,不适用于大体积信息的同步,zookeeper 真正的作用是检测 active 主节点的状态,宕机则代替
-
-
yarn
- rescourceManager 可有多个,对外提供服务的仅一台 active,与 zookeeper 的连贯称为 zkfc
- journalnode 文件系统元数据信息管理,个别是奇数个
3.x jdk1.8 与 2.x 区别
-
hdfs
- namenode 能够有多个
- 3.0 以前每份数据存份,3.0 引入纠错编码 0.5 冗余校验数据存储形式 + 源文件
- 扭转最大的是 hdfs 通过最近 block 块计算,依据最近计算准则,本地 block 块,退出到内存,先计算,通过 IO,共享内存计算区域,最初疾速造成计算结果,比 Spark 快 10 倍
4.1 部署模式
- Standalone mode(独立模式)
- 伪分布式:在一个机器中,将 Hadoop 集群中各个节点运行在一个服务器测试
- Cluster mode(群集模式):会应用 N 台主机组成一个 Hadoop 集群。这种部署模式下,主节点和从节点会离开部署在不同的机器上