沪佳装修贵吗,成都网站建设优化企业排名,深圳建设网站开发,wordpress自动采集什么是Hadoop#xff1f; 搞什么东西之前#xff0c;第一步是要知道What#xff08;是什么#xff09;#xff0c;然后是Why#xff08;为什么#xff09;#xff0c;最后才是How#xff08;怎么做#xff09;。但很多开发的朋友在做了多年项目以后#xff0c;都习惯…什么是Hadoop 搞什么东西之前第一步是要知道What是什么然后是Why为什么最后才是How怎么做。但很多开发的朋友在做了多年项目以后都习惯是先How然后What最后才是Why这样只会让自己变得浮躁同时往往会将技术误用于不适合的场景。 Hadoop框架中最核心的设计就是MapReduce和HDFS。MapReduce的思想是由Google的一篇论文所提及而被广为流传的简单的一句话解释MapReduce就是“任务的分解与结果的汇总”。HDFS是Hadoop分布式文件系统Hadoop Distributed File System的缩写为分布式计算存储提供了底层支持。 MapReduce从它名字上来看就大致可以看出个缘由两个动词Map和Reduce“Map展开”就是将一个任务分解成为多个任务“Reduce”就是将分解后多任务处理的结果汇总起来得出最后的分析结果。这不是什么新思想其实在前面提到的多线程多任务的设计就可以找到这种思想的影子。不论是现实社会还是在程序设计中一项工作往往可以被拆分成为多个任务任务之间的关系可以分为两种一种是不相关的任务可以并行执行另一种是任务之间有相互的依赖先后顺序不能够颠倒这类任务是无法并行处理的。回到大学时期教授上课时让大家去分析关键路径无非就是找最省时的任务分解执行方式。在分布式系统中机器集群就可以看作硬件资源池将并行的任务拆分然后交由每一个空闲机器资源去处理能够极大地提高计算效率同时这种资源无关性对于计算集群的扩展无疑提供了最好的设计保证。其实我一直认为Hadoop的卡通图标不应该是一个小象应该是蚂蚁分布式计算就好比蚂蚁吃大象廉价的机器群可以匹敌任何高性能的计算机纵向扩展的曲线始终敌不过横向扩展的斜线。任务分解处理以后那就需要将处理以后的结果再汇总起来这就是Reduce要做的工作。 Hadoop解决两个问题海量数据存储、海量数据分析 提供了一个可靠的共享存储和分析系统HDFS(Hadoop Distributed File System)实现存储MapReduce实现分析处理。这两块是Hadoop的核心。 Hadoop具有最大化利用内存、最大化利用磁盘、最大化利用CPU的特点。 Hbasenosql数据库最大化利用内存。 HDFS架构设计原则最大化利用磁盘: Block文件块一个文件分块默认64M。 NameNode保存文件系统的目录信息读取信息。数据节点很多时容易成为系统的瓶颈避免这个问题实现NameNode一般都保存到内存中同事持久化一部分信息在磁盘上以备数据丢失。 DataNode用于存储Block。 HDFS的HA策略2.x开始hadoop支持namenode的active-standy模式宕机时standy切换成active模式为整个应用提供服务。 MapReduce 最大化利用CPU分析处理大规模的数据集 通过图片可以简单了解将同一操作放在相当于多台处理器上并行执行每个处理器执行1部分执行后在将结果汇总在一起这样减少了很多的时间。