Hadoop解决的二个问题: 1.海量数据的存储,HDFS 2.海量数据的分析,MapReduce HDFS设计目标: --适应场景 1.Very Large File(单个文件很大,或者文件总大小非常大) 2.Streaming data access (write-once, read-many-times) 3.Commodity hardware(普通硬件上) --不适应场景: 1.Low-latency data access(低延迟的数据) 2.Lots of small files 3.Multiple writers, arbitrary file modifications HDFS架构: a.txt(900GB) 在hadoop中,一个文件被划分成大小固定的多个文件块(默认64M),分布的存储在集群中节点中; 同一个文件块在不同的节点中有多个副本(防止节点失效) 一个集中的地方保存文件的分块信息(保存在namenode(单点)上) Block:一个文件分块,默认64M Namenode:保存整个文件系统的目录信息,文件信息以及文件相应的分块信息。 -namenode支持数据节点多时, 它是整个系统瓶颈;避免此问题,hadoop将namenode数据 保存在内存当中,还有将namenode数据持久化到磁盘当中; Datanode:用于存储Blocks HDFS的HA策略:Namenode一旦宕机,整个文件系统将无法工作, 如果Namenode中的数据丢失,整个文件系统也就丢失了,。 2.X开始,HDFS支持NameNode的active-standy模式,运行的过程中, standy的数据时时刻刻与active的数据同步. MapReduce原理: 问题:求出数组中最大的数(3, 34, 54 ,24, 432,432,322, 64,1) 传统解决办法:for循环迭代数组,找出最大的。 ?:如果数组中有一百亿个一千亿个值,A.这样耗时很长,B.一台机器上能存储吗 MapReduce解决办法: :把此此大数组分布存储到多台机器上, A.首先做一个Map操作(计算出当前节点中最大的值)得以一个最大值; B.每一节点都得出其节点上的最大值, C.Reduce操作,把Map的结果再找出最大值 MapReduce就是把一个大问题分解成小问题,把每一个问题的结果计算出来再进行计算。 MapReduce是一种编程模型,用于大规模数据集的并行计算。
Hadop介绍
猜你喜欢
转载自houshangxiao.iteye.com/blog/1979720
今日推荐
周排行