大数据处理架构Hadoop
hadoop的来源:
hadoop起源于Nutch,它是Apache软件基金会旗下的来源软件,为了解决海量的数据存储和处理。 Hadoop由 HDFS,MAPreduce和Yarn组成
hadooop的特性:
1.可靠性:多台机器构成集群,部分机器发生故障,剩余的机器可以继续对外提供服务
2. 高效率:成百上千的机器一起计算
3. 可扩展性:可以不断的往集群中增加机器
4. 成本低:通过廉价的机器组成服务器集群来分发和处理数据
Hadoop的两个版本:
Hadoop1.x架构中,MapReduce负责计算和数据调度,HDFS负责数据存储,但是在Hadoop2.x版本中,MapReduce只负责计算,HDFS仍负责数据存储,新增了一个Yarn,Yarn负责资源调度
HDFS架构概述
HDFS是Hadopp分布式文件管理系统中的一种
HDFS的组成
1.NameNode有主管能力:它管理HDFS的名称空间;配置副本策略;管理数据块(block)映射信息;处理客户端读写的请求
2.DateNode有执行的能力:存储实际的数据块(block);执行客户端的读写请求
3.client客户端:文件切分,切分数据块,然后上传数据块;与NameNode交互,得到文件的位置信息;与DateNode交互,读写数据;提供可以管理HDFS的命令,如,将NameNode格式化;提供访问HDFS的命令,如,对HDFS进行增删改查的操作
4.SecondaryNameNode:辅助NameNode,分到NameNode的工作量,定期合并Fsimage和Edits,并推送给NameNode;紧急情况下,可以帮助恢复NameNode
HDFS的优缺点:
优点:
1.高容错性:数据保持多个副本的形式,某一副本丢失后,就会马上恢复
2.适合处理大的数据
3.可以构建在廉价的机器上
缺点:
1.不适合低延时的数据访问
2.无法高效的对大量的小文件进行存储
3.仅支持数据append(追加),不支持对文件的修改
HDFS中最核心的概念是:数据块(block),为了分摊磁盘读写的开销,也就是在大量数据间分摊磁盘寻址的时间开销,将块的大小设置为128MB,所以影响数据块大小的因素有:
1:寻址时间
2.传输速率
3.传输时间和传输速率之比
MapReduce的架构概述
MapReduce是一个分布式并行编程,借助一个集群通过多台机器同时并行处理大规模数据集
MapReduce的策略:
1.MapReduce采用分而治之的方式
2.把非常庞大的数据集,切分成非常多的独立小分片
3.为每一个分片单独的启动一个map任务
4.最终通过多个map任务,并行地在多个机器去处理
HDFS写入数据流程
1.客户端通过Distributed Fisystem 模板向Namenode 请求上传。namenode检查目标文件是否存在
2.Namenode返回给客户端是否可以上传
3.客户端请求第一个block上传到哪几个Datenode服务器上
4.namenode返回三个节点,为nd1 nd2 nd3
5.客户端通过FSDateOutput Stream模板请求dn1上传数据,dn1收到收到后会继续调用dn2,然后dn3,将信号管道通信完成
6.dn1,dn2,dn3逐级应答客户端
7.客户端开始往dn1上传第一个block(从磁盘读取,放在第一个本地内存缓存)dn1收到一个packet就会传给dn2,之后dn3,每传给一个就会放在应答队列等待应答
8.当一个block传输完成后,客户端再次请求Namenode,上传第二个block到服务器
MapReduce的理念:
计算向数据靠拢,而不是数据向计算靠拢
在这里插入代码片