1.hadoop:分布式存储(hdfs)和分布式计算(mapreduce)的框架
2.核心组件:
hdfs:分布式存储
mapreduce:分布式计算(交给yarn)
yarn:资源调度器
3.hadoop的来源:主要来源于goole的两篇论文:GFS,Mapreduce
4.hadoop的架构:
主要包括hdfs和yarn的架构:主从架构
hdfs:
namenode:主节点,主要用于元数据的管理,接受客户端的文件请求,管理从节点
datanode:从节点,主要用于存储数据
secondarynamenode:辅助名称节点,辅助namenode管理元数据,定期合并元数据
yarn:
resourcemanger:主节点,主要用于接受用户提交的job请求,分配资源
nodemanger:从节点,用于执行job任务
5.hadoop的安装方式
1)单机模式:直接解压,一般不使用,没有hdfs功能
2)伪分布模式:往往开发测试使用
3)完全分布式:往往生产中使用。(相较于伪分布式,多了从节点和副本)
主要的配置文件:
core-site.xml, hdfs-site.xml, mapred-site.xml, yarn-site.xml
6.初体验
1)提交数据到hdfs
hadoop fs -put xxx /
2)提交作业到yarn
hadoop jar xxx.jar
7.HDFS
1)分布式文件存储系统:来自于GFS的论文思想
2)主从结构
3)block块:上传的文件按照块划分存储,block的默认大小为128m
4)replication副本:数据冗余存储,默认按照3个副本储存。一个某个节点错误,则使用其他副本
5)namespace名字空间:在hdfs上数据储存的路径,是虚拟的
6)心跳机制:datanode定时向namenode发送心跳,表明自己还活着
7)一次写入,多次读取:hdfs不支持修改,但是支持追加,所以一般只是读取,完成数据的分析
8)元数据:描述数据的数据,如文件大小,名称等。
FSimages:镜像文件,是全部的元数据的聚合
Edits:临时文件,每隔一个小时,生成的元数据
secondarynamenode:将FSimages和Edits的元数据进行合并
9)hdfs的读写流程:串行写入,并行读出
10)hdfs的shell API
hadoop fs -xxx
hadoop fs -put xxx /xxx 上传文件到哪里
hadoop fs -get hdfs:/xxx d:/xxx下载文件到d盘
hadoop fs -mkdir -p xxx 构建目录
hadoop fs -lsr /
...
11)hdfs的 java api
FileSystem fs=FileSystem.get(conf);获取文件对象
8.mapreduce
1)分布式计算组件
2)核心思想:分而治之
3)主要分为两个阶段:
map阶段:将数据进行转换处理,默认情况下一个block就是一个map任务
reduce阶段:将数据进行整合
4)mapreduce的api
主要完成Mapper和Reducer的实现
map:k1,v1 -->k2,v2
reduce:k2,v2 --> k3,v3
9.yarn
资源调度管理器:主要调用的资源,CPU, 内存
架构;resourcemanger+nodemanager
三种调度器:
1)FIFO:队列调度器,先进先出,任务排队
2)容量调度器(apache默认的版本):把整体划分为多个队列
3)公平调度器(hadoop默认的调度器):资源的公平划分