、HBase命
(1)Hadoop基
(2)HDFS、YARN、HBase、MapReduce基
(3)HDFS命
(4)实
(5)常
(6)HDFS Java API、HBase Java API、MapReduce编
Hadoop基
查(只
Hadoop历
2004年
,Google发
《MapReduce:
2006年Google发
《BigTable:
2006年
,Yahoo!聘
请Cutting将Nutch搜
Hadoop⽣
障)
为Hadoop,Hadoop 以
个Hadoop系
的NoSQL数
HDFS:
MapReduce:
在HDFS上
HBase:
Zookeeper:Hadoop组
Oozie:
Pig:
Hive:
HDFS架
含Pig Latin,
的Workflow系
对MapReduce的
个MapReduce作
供SQL语
将SQL翻
为MapReduce语
Hadoop三
HDFS——分
YARN——统
含MapReduce、Spark、Flink多
架MRv2(Hadoop 2.x)之
MapReduce——分
于YARN之
HDFS/Hadoop Distributed File System
是Hadoop的
HDFS是
HDFS特
存PB级
,HDFS提
与Map-Reduce集
,HDFS允
HDFS局
客
观
题
础
,
如
:
⽣
态
环
境
、
历
史
等
本
架
构
和
原
理
令
令
验
操
作
⻅
故
障
排
包
含
集
群
安
装
、
运
⾏
故
障
,
不
包
含
⽹
络
配
置
故
障
和
虚
拟
机
本
⾝
故
程
础
史
表
论
⽂
超
⼤
集
群
的
简
单
数
据
处
理
》
表
论
⽂
结
构
化
数
据
的
分
布
式
存
储
系
统
》
索
引
擎
中
的
存
储
和
处
理
部
分
抽
象
成
⼀
种
可
靠
、
⾼
效
、
可
伸
缩
的
⽅
式
进
⾏
数
据
处
理
,
逐
渐
成
为
⾏
业
主
流
。
态
系
统
分
布
式
存
储
,
为
整
统
提
供
数
据
存
储
功
能
并
⾏
计
算
框
架
构
建
据
库
件
管
理
端
可
扩
展
统
,
协
调
多
业
执
⾏
包
抽
象
将
结
构
化
的
数
据
⽂
件
映
射
为
数
据
表
,
提
句
,
译
句
进
⾏
查
询
构
:
⼤
基
本
组
件
:
布
式
⽂
件
系
统
,
⽤
于
数
据
存
储
⼀
资
源
管
理
和
调
度
系
统
,
⽤
于
管
理
集
群
的
计
算
资
源
并
根
据
计
算
框
架
的
需
求
进
⾏
调
度
,
⽀
持
包
种
计
算
框
后
的
新
特
性
布
式
计
算
框
架
,
运
⾏
上
分
布
式
⽂
件
系
统
的
实
现
。
它
的
设
计
⽬
标
是
存
储
海
量
的
数
据
,
并
为
分
布
在
⽹
络
中
的
⼤
量
客
⼾
端
提
供
数
据
访
问
。
⾼
容
错
性
的
,
可
以
部
署
在
低
成
本
的
硬
件
之
上
供
⾼
吞
吐
量
地
对
应
⽤
程
序
数
据
访
问
。
性
能
够
保
的
数
据
量
,
将
数
据
散
布
在
⼤
量
的
计
算
机
(
节
点
)
上
,
⽀
持
更
⼤
的
⽂
件
使
⽤
数
据
备
份
的
⽅
法
解
决
⽂
件
存
储
的
可
靠
性
,
如
果
集
群
中
单
个
节
点
故
障
则
启
⽤
备
份
很
好
的
成
,
为
减
小
计
算
时
的
数
据
交
互
许
数
据
在
本
地
计
算
限
性
⽤Hive查
HDFS架
个Hadoop被
为NameNode(
(Node)
和DataNode(
个Block(
的DataNode中
认64MB,
DataNode中
Namenode
HDFS为
⽤NameNode存
在DataNode,
由NameNode实
块(Block)存
些DataNode中
的DataNode定
向NameNode发
到DataNode的
;NameNode会
的DataNode中
,NameNode将
块(Block)备
的DataNode中
Namenode的
在NameNode中
:meta data,
:fsimage,
:edits,HDFS⽂
NameNode元
取fsimage和edits⾄
1、
2、client向NameNode发
3、NameNode接
4、
5、
⽤Secondary NameNode,
到edits,
据meta data
向client返
志edits
到fsimage中
(CheckPoint过
HDFS数
1.⽤
2.上
求Hadoop客
到Hadoop客
省64mb,hadoop2.x缺
3.NameNode向Hadoop客
4.Hadoop客
将block写
回block的
的DataNode
省128mb),
求NameNode申
块(block)边
时(hadoop 1.x
HDFS数
1.⽤
2.Hadoop客
3.NameNode查
4.Hadoop客
Hadoop配
求Hadoop客
向NameNode发
询meta data并
的block位
向DataNode请
求block数
有block后
针
对
⾼
速
流
式
读
取
进
⾏
优
化
,
查
询
性
能
低
下
(
可
利
询
)
⼀
次
写
⼊
多
次
读
取
,
不
⽀
持
并
发
写
⼊
,
并
发
读
取
性
能
很
⾼
不
⽀
持
⽂
件
修
改
不
⽀
持
缓
存
,
每
次
读
取
⽂
件
须
从
硬
盘
上
重
新
读
取
,
当
然
对
于
⼤
⽂
件
顺
序
读
取
性
能
影
响
不
⼤
不
适
合
存
储
小
⽂
件
构
主
从
模
式
整
构
建
在
集
群
上
,
集
群
由
各
个
节
点
构
成
将
集
群
中
的
节
点
分
管
理
者
)
⼯
作
者
)
⽂
件
被
拆
分
为
多
块
)
放
到
不
同
,
每
个
块
默
同
⼀
个
块
会
备
份
到
多
个
存
储
主
从
架
构
,
⽂
件
分
块
存
储
并
现
管
理
使
储
元
数
据
信
息
,
保
存
⽂
件
名
以
及
⽂
件
的
储
在
哪
每
个
存
活
时
送
⼼
跳
信
息
,
如
果
未
收
⼼
跳
认
定
其
已
失
效
,
不
再
向
其
派
发
任
何
⽂
件
读
请
求
将
失
效
的
份
到
其
他
存
活
元
数
据
管
理
机
制
整
个
系
统
的
元
数
据
都
保
存
内
存
元
数
据
⽤
于
元
数
据
查
询
硬
盘
元
数
据
镜
像
⽂
件
持
久
化
存
储
元
数
据
数
据
操
作
⽇
志
件
增
删
会
造
成
元
数
据
更
改
,
将
更
改
记
录
可
运
算
出
元
数
据
数
据
管
理
过
程
系
统
启
动
时
,
读
内
存
,
形
成
内
存
元
数
起
数
据
增
删
查
请
求
收
到
请
求
后
,
在
内
存
元
数
据
中
执
⾏
增
删
查
操
作
,
并
回
操
作
结
果
如
果
是
增
删
操
作
,
则
同
时
记
录
数
据
操
作
⽇
使
在
适
当
的
时
机
将
操
作
⽇
志
合
并
程
)
据
写
⼊
机
制
⼾
客
⼾
端
请
⼾
端
,
并
执
⾏
⽂
件
上
传
传
的
⽂
件
写
⼊
⼾
端
的
临
时
⽬
录
中
,
每
当
写
⼊
的
数
据
量
越
过
界
缺
请
请
数
据
块
⼾
端
返
位
置
⼾
端
直
接
⼊
指
定
据
读
取
机
制
⼾
客
⼾
端
请
⼾
端
,
请
求
返
回
指
定
⽂
件
⼾
端
起
读
⽂
件
请
求
返
回
⽂
件
对
应
置
⼾
端
直
接
据
,
获
取
到
所
合
并
成
⽂
件
置
⽂
件
core-site.xml
Hadoop系
hdfs-site.xml
HDFS属
mapred-site.xml
yarn-site.xml
YARN基
workers
定
MapReduce计
有DataNode地
core-site.xml
址-->
fs.defaultFS
⼩-->
hdfs-site.xml
录-->
录-->
dfs.namenode.name.dir
block保
录-->
录-
量-->
dfs.http.address
HDFS的Web服
IP地
址:50070
⽰HDFS服
统
的
通
⽤
关
键
属
性
性
配
置
算
框
架
的
属
性
配
置
本
属
性
义
所
址
务
地
时
⽬
冲
⼤
元
据
⽬
开
设
储
⽬
据
⽬
开
设
储
⽬
的
副
务
地
址
,
显
务
状
态
和
⽇
值
dfs.webhdfs.enabled
开HDFS Web服
是
true
dfs.block.size
block⼤
hadoop2.X
dfs.datanode.du.reserved
指
dfs.namenode.edits.dir
单
为NameNode指
128Mb
(硬
edits
)上
间(
20,
于HDFS
20%的
间)
为%,
0
mapred-site.xml
⽰MR
mapreduce.framework.name
yarn
yarn-site.xml
yarn.resourcemanager.address
向RM汇
务-->
跳
192.168.0.211:8031
yarn.resourcemanager.webapp.address
量-->
1024
否
打
务
值
⼩
,
单
为
节
,
储
盘
不
⽤
件
储
的
间
量
,
单
值
设
⼀
的
闲
保
剩
储
独
件
的
⽬
录
,
⽬
录
⽤
开
⾏
服
务
地
过
该
地
址
报
、
领
任
理
地
内
HDFS JAVA API
HDFS Java API是HDFS命
YARN
Yarn架
1.YARN主
Master —— ResourceManager
Slave —— NodeManager
2.⼀
ResourceManager——接
为AM分
个AM
问HDFS
从HDFS读
到HDFS
定NM节
动AM(ApplicationMaster),
在scheduler中
3.⼆
ApplicationMaster——运
Container,
在Container中
YARN重
在NM上
向RM请
⾏Application,
收RM的
控Application的
在NM上
收Client请
度scheduler
Resource Manager
接
执
NodeManager
执
执
Container(容
YARN的
Application和ApplicationMaster均
务Job
度ApplicationMaster
器)
的Job以Application的
,CPU、
⽤
给Container,
由Container提
在Container中
在ResourceManager中
的Application
理YARN中
ApplicationManager
运
管
ApplicationMaster
管
每
接
通
个Application都
收Container的
为
个Application,
在NodeManager的Container中
个ApplicationMaster负
为Container请
向ResourceManager汇
报Application进
远 不
业(Job)
⽤
每
作
多
⾄YARN的
由client提
个Application( MapReduce)
⾄ResourceManager
个Application(Spark),
期Application(Apache Slider),
令
的
抽
象
,
⽀
持
远
程
访
应
⽤
程
序
能
够
以
和
读
写
本
地
数
据
系
统
相
同
的
⽅
式
取
数
据
,
或
者
将
数
据
写
⼊
构
从
架
构
的
构
成
:
集
群
中
各
个
节
点
的
管
理
者
集
群
中
单
个
节
点
的
代
理
级
调
度
收
作
业
,
在
指
点
上
启
执
⾏
调
度
算
法
配
资
源
,
管
理
各
级
调
度
⾏
,
求
资
源
,
接
资
源
分
配
,
启
动
执
并
监
执
⾏
状
态
要
组
件
求
⾏
⼀
级
调
⾏
作
业
任
⾏
⼆
级
调
资
源
表
⽰
模
型
内
存
、
⽹
络
等
资
源
分
配
供
给
其
中
的
任
务
需
要
计
算
资
源
,
均
运
⾏
⼾
提
交
⽅
式
得
以
执
⾏
⾏
所
有
理
⼀
运
⾏
⼀
责
管
理
进
度
汇
报
,
求
资
源
过
⼼
跳
度
和
资
源
状
态
什
么
主
从
之
间
通
过
⼼
跳
通
信
?
如
果
不
通
过
定
时
的
⼼
跳
,
那
么
我
永
知
道
是
因
为
没
有
状
况
导
致
不
通
信
还
是
因
为
故
障
导
致
没
有
通
信
。
作
⼾
提
交
⼀
次
计
算
任
务
,
交
个
作
业
对
应
⼀
业
的
每
个
⼯
作
流
对
应
⼀
效
率
更
⾼
⽤
⼾
共
享
⼀
个
⻓
系
统
响
应
更
快
个AppAttempt⽤
业a的
过AManager将
的startContainer⽅
动AMaster
业a启
业a的AMaster分
到NM1
在NM1中
业a启
动Container0(作
的0号
器)
YARN⼯
业a(Job)
器(scheduler)中
,RM通
1 Client向RM提
2 RM在
3 NM1向RM提
4 RM通
过RPC调
5 NM1在Container0中
6 AMaster向AManager发
7 RM将AMaster的
NM分
的Container(资
⽤NM1中
⼊scheduler资
以Container的
由scheduler分
配),
向RM发
的Container
起RPC调
的NM发
回AManager已
8 AMaster向RM发
9 RM返
10 AMaster向
11 Container启
Application中Container的
12 AMaster为Container向RM请
13 作
,AMaster向RM申
的Container
业Application,
向AMaster汇
,AMaster负
Yarn调
度AM
器)
器)
器)
的container实
的ResourceManager管
器)执
过Scheduler(调
FIFO Scheduler (先
Capacity Scheduler (容
Fair Scheduler (公
YARN中
RM作
RM通
Scheduler⽀
调
调
⾏Container的
Map-Reduce基
器 ---> Container的
---> 执
息 ---> ApplicationMaster
建 ---> Application
Map-Reduce框
public class WordCountApp extends Configured implements Tool
org.apache.hadoop.conf.Configured
org.apache.hadoop.util.Tool
了Job⼊
Run⽅
化Job
job执
⼊Map类
作
流
程
交
作
调
度
创
建
⼀
以
管
理
作
调
度
交
⼼
跳
作
配
法
,
为
作
业
容
为
作
起
请
求
注
册
并
初
始
化
⾃
⾝
,
计
算
⾃
⾝
所
需
资
源
,
并
起
资
源
请
求
资
源
请
求
放
源
队
列
中
,
配
资
源
,
获
得
资
源
后
向
指
定
的
配
相
应
源
形
式
分
等
下
⼀
次
⼼
跳
送
⼼
跳
分
配
好
对
应
⽤
,
启
动
已
分
配
动
后
,
⽤
于
执
⾏
⽤
⼾
的
作
并
报
进
度
责
整
个
⽣
命
周
期
管
理
求
资
源
业
执
⾏
完
毕
请
注
销
资
源
度
器
理
了
集
群
中
的
资
源
,
并
使
⽤
双
层
调
度
范
式
,
执
⾏
资
源
调
度
。
为
⼀
级
调
度
,
将
资
源
分
配
给
⼆
级
调
度
⾏
⼀
级
调
度
持
三
种
调
度
器
进
先
出
调
度
器
调
度
平
调
度
度
器
通
过
分
配
不
同
⼤
小
现
资
源
调
度
度
分
配
信
创
础
架
主
类
声
明
:
需
要
继
承
⾄
:
对
作
业
的
定
义
和
管
理
并
实
现
接
口
定
义
口
法
实
现
实
例
注
⼊
作
业
主
类
⾏
的
主
类
是
什
么
注
执
⾏map逻
类(Mapper的
类)
⼊Reduce
执
⾏reduce逻
类(Reducer的
类)
TextInputFormat类
识
TextOutputFormat类
识
Map实
map由Mapper的
的map⽅
写Mapper类
的map⽅
MR框
建map实
⽤StringTokenizer类
将value⽂
⽂(MR由
Reduce实
reduce由Reducer的
由value属
据)
的reduce⽅
写Reducer类
的reduce⽅
MR框
将val转
建reduce实
为Iterator序
该reduce的
到Context中
由key和val变
,MR框
MapReduce过
个map操
个InputSplit
取InputSplit和
到InputFormat后
对map过
⾏map过
⾄Reducer的
于map本
和reduce的
, Partition前
个Barrier(完
有Mapper执
的reduce中(reduce主
取),
个reducer
MapReduce内
InputData:HDFS中
InputSplit:
InputFormat:
Mapper:
Combiner:
reduce
Partition:
Reducer同
Shuffle:
Sort:
Reducer:
OutputFormat:
定map的
障),
将map的
给Reduce的
⾏reduce过
责Job的
⾄HDFS
maprefuce配
1、mapred-site.xml
#增
mapreduce.admin.user.env
HADOOP_MAPRED_HOME=$HADOOP_COMMON_HOME
yarn.app.mapreduce.am.env
HADOOP_MAPRED_HOME=$HADOOP_COMMON_HOME
辑
的
⼦
注
辑
的
⼦
注
⼊
输
⼊
类
并
获
取
输
⼊
⽂
件
的
路
径
别
执
⾏
命
令
中
的
输
⼊
路
径
字
串
并
写
⼊
注
⼊
输
出
类
并
获
取
输
出
⽬
录
的
路
径
别
执
⾏
命
令
中
的
输
出
路
径
字
串
并
写
⼊
开
始
执
⾏
作
业
并
等
待
执
⾏
完
毕
现
⼦
类
实
现
具
体
法
须
重
法
架
会
⾃
动
创
例
并
执
⾏
,
且
会
将
读
取
到
的
输
⼊
⽂
本
拆
分
后
性
传
⼊
。
使
本
拆
分
为
词
汇
,
遍
历
词
汇
,
并
将
词
汇
和
其
出
现
次
数
组
合
成
键
值
对
写
⼊
上
下
框
架
传
⼊
的
⼀
个
对
象
,
专
⻔
⽤
于
保
存
计
算
过
程
中
的
数
现
⼦
类
实
现
具
体
法
须
重
法
架
会
⾃
动
创
例
并
执
⾏
,
且
会
将
分
配
给
键
值
对
量
传
⼊
。
列
后
遍
历
之
,
将
其
数
量
相
加
后
输
出
架
会
⾃
动
将
输
出
值
写
⼊
到
输
出
⽬
录
中
程
部
运
⾏
过
程
:
输
⼊
的
数
据
数
据
分
⽚
,
每
作
⼀
负
责
读
执
⾏
键
值
对
拆
分
收
的
键
值
对
,
执
程
程
的
键
值
对
进
⾏
⼀
次
处
理
以
减
少
输
出
数
据
量
,
相
当
地
的
确
输
出
键
映
射
关
系
有
⼀
毕
后
才
能
进
⼊
步
保
证
所
⾏
输
出
键
传
输
到
指
定
动
拉
⼀
个
键
对
应
⼀
将
传
输
键
值
排
序
并
组
合
成
序
列
执
程
负
输
出
,
输
出
置
加
两
个
配
置
:
2、yarn-site.xml
#增
加container本
yarn.nodemanager.log-dirs
$HADOOP_HOME/logs/userlogs
yarn.nodemanager.log.retain-seconds
108000
yarn.nodemanager.resource.memory-mb
1800
#
⽌VM不
⾜Container被kill
#设
yarn.nodemanager.vmem-pmem-ratio
3
、AM错
卡Job、
卡0%等
为HA模
(1)mapred-site.xml
将mapreduce.framework.name改
------------------------------------
vix.mapreduce.framework.name
yarn
------------------------------------
(2)yarn-site.xml
将yarn.resourcemanager.address改
------------------------------------
vix.yarn.resourcemanager.address
址:18040
------------------------------------
将yarn.resourcemanager.scheduler.address改
------------------------------------
vix.yarn.resourcemanager.scheduler.address
址:18030
------------------------------------
HBase基
HBase特
础
点
地
⽇
志
查
看
配
置
项
⼩
序
会
报
置
虚
拟
内
存
与
内
存
的
倍
率
,
防
以
上
配
置
确
认
⽆
误
后
,
如
果
仍
有
报
内
存
错
误
误
、
问
题
找
不
到
原
因
,
可
以
尝
试
按
以
下
⽅
式
解
决
:
(
相
应
属
性
的
设
置
式
设
置
)
为
:
为
:
主
节
点
地
为
:
主
节
点
地