hadoop基础
分布式文件管理系统HDFS存储数据方式,如图
1.block块
HDFS文件被分成多个块进行存储,每个数据块默认存储3份,1个机架上存储2份,1份出现故障可以查找另外一份,如果整个机架故障,可以查找另外一个机架
2.DataNode数据节点
用于存放多个数据块
心跳检测:DataNode定期向NameNode发送心跳信息
3.NameNode管理节点
用来管理文件与数据块的映射表和数据块与数据节点(DataNode)的映射表
用到的文件包括:
fsimage :存储某一时段NameNode内存元数据信息。
edits: 操作日志文件。
fstime: 保存最近一次checkpoint的时间
4.Secondary NameNode
合并NameNode的edit logs到fsimage文件中
HDFS读写流程
客户端发送文件读请求——>namenode返回元数据(从哪些datanode找到)——>客户端读取block,下载下来之后组装
客户端文件拆分成block——>通知namenode返回可用的 有足够磁盘空间的datanode——>客户端对block进行写入——>流水线复制——>更新元数据
HDFS的优缺点
-
适合超大文件
-
流式数据访问,一次写入、多次读取是高效的访问模式。。
- 丰富的容错机制
-
延迟的数据访问,对于低延迟的访问需求,hbase是更好的选择。
-
不适用大量的小文件,过多的小文件存储会大量消耗nameNode的存储量。
-
不适用过多的修改文件,HDFS写操作总是将数据添加在文件的末尾。他不支持具有多个写入者的操作,也不支持在文件的任意位置进行修改。
大数据处理方式MapReduce
map一个大任务分成多个小人物
reduce把map处理的结果合并
(可以多次做mapreduce)