1.hdfs的架构介绍
datanode定时向namenode做心跳汇报:
namenode管理元数据:
a.txt /test/input/a.txt
元数据会记录a.txt的存储路径吗?不会记录存储路径,只会记录a.txt的存储节点node01,datanode做心跳的时候,将当前存储的列表返回给namenode
5.副本和块存储
dfs.replication 3
dfs.blocksize 128m 按字节
hdfs的权限验证:权限验证是比较薄弱的
只能防止好人做错事,不能防止坏人做坏事
6.fsimage和edits 2nn的作用
edits:记录当前用户的hdfs的操作记录
fsimage:镜像文件,所有的元数据最终都要保存到fsimage中
fsimage和edits最终要进行合并操作,由2nn进行元数据的合并。
7.hdfs的api
1.解决winutils报错的问题
1)将hadoop解压后的目录放到一个没有中文、没有空格的的路径下
2)配置一个hadoop的环境变量,并将bin目录加入到path中
3)将hadoop.dll放入到system32下
8 小文件的合并
1)将小文件在本地进行合并,然后在上传到服务器中
2)sequenceFile,在服务器上进行合并
3)har:归档
9.mapreduce的入门*(重要)
mapreduce:分布式计算框架
核心思想:分治 分而治之
mapreduce的计算工程中包括2部分:
map阶段:主要负责“分”,将一个任务分成若干的任务,分别去执行
reduce阶段:主要负责“合”,将map阶段执行完成的结果进行合并
mapreduce的天龙八部
map阶段:
1.第一步:设置inputFormat类,读取需要处理的文件 读取文件按照key,value的形式读取,key1 value1
TextInputFormat
key1 value1
行的偏移量 行的值
0 hello
7 hadoop
13 spark
2.第二步:设置map类,并且设置map类的输出类型 key2,value2,k2,v2是根据具体的业务进行设置
shuffle阶段:
3.第三步:分区 将数据进行分区 (分reduce)
4.第四步:排序(将数据按照一定规则升序或降序)
5.第五步:规约 combiner(局部数据的聚合)
6.第六步:分组(将数据按照key2进行分组)
reduce阶段:
7.第七步:设置reduce类,设置reduce的输出类型 key value, k3 v3
8.第八步:设置处理后的数据输出地址,outputFormat TextOutputFormat