热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ApacheHadoop(1)---概述

早在上古时代(那时候我大概正在读小学吧),大数据这个词还没那么火,业界对于海量数据的存储和处理相对来

早在上古时代(那时候我大概正在读小学吧),大数据这个词还没那么火,业界对于海量数据的存储和处理相对来说比较粗糙,还在追求容量更大的硬盘、性能更强的服务器。当然了,分布式处理是有的,那时候应该是叫 网格计算 吧,就是很多的节点,然后存储是集中存放,通过SAN(storage area network)挂载到每一个计算节点上,各个节点之间通过MPI(Message Passing Interface)进行通信。

MPI 可以解决大规模的数据处理任务,但是它有着很多缺点,开发者需要自己去考虑节点间通信、节点故障检测与处理等容错、任务划分等等很细节的东西,利用MPI来处理大规模数据,可能大部分时间不是在对数据本身进行分析和处理,而是在解决层出不穷的bug。对于SAN来说,尽管有raid机制可以提升存储的可靠性,但是它没有解决节点故障带来的数据丢失问题,以及很难应付更大规模的数据存储问题,网络吞吐也往往容易成为瓶颈。

对于大数据处理,我们首先要能够存储如此大规模的数据量,其次是如何对这海量的数据进行处理,再然后是尽可能快的处理。

2003年开始Google发出的三篇论文 Google File SystemMapReduceBigTable 给大数据领域带来了曙光,分别解决了大数据存储、大数据处理,以及高效的结构化大数据存取,这三篇论文算是奠定了现代大数据处理的基石,说它是现代大数据处理的鼻祖也不为过。

诞生

不过Google并不热衷于开源(毕竟人家的工程师吊打一切,根本看不上社区的力量),只是给出了具体的设计和思路,所以当时大家也只能望梅止渴了。(现在Google也算是积极拥抱开源吧,推出了 TensorflowKubernetes 等等powerful的项目,不过这是后话了)

尽管Google并没有开源代码,但是论文写的很详细,足够让外人按图索骥了。Nutch(一个搜索引擎,搜索引擎对于大数据处理的需求很强)的工程师 Doug Cutting 在看到这几篇论文之后开始按照论文里的设计思路来重构自己的系统,他们成功的将Hadoop部署到了数十台节点上并稳定的运行。

后来,负责人跳槽到了Yahoo!,领导一个独立的团队专门开发Hadoop系统,集群规模也开始扩大到数百个节点,并且剥离了与业务强相关的内容,逐渐成为一个通用系统。

在2008年,Hadoop成为了apache基金会的顶级开源项目,世人得以一睹Hadoop的强大,同时开源社区也逐渐成长。同年,Hadoop用时209秒完成了1T数据的 排序 任务,打破了当时的记录,并且随着不断调优,处理时间越来越短,数据量也越来越大。

蓬勃发展

相比较于MPI,Hadoop 具有可靠的大数据存储,通过冗余、容错等机制,即便是普通的服务器也能够很好的运行大数据处理任务。同时,Hadoop自带的task容错机制也使得用户能够专心数据分析任务,很少需要去关注容错。此外,MapReduce也大大简化了数据处理的复杂性,简化操作的同时也带来了可靠性。

学术界和业界都开始向Hadoop转移,贡献了很多的新功能、优化细节、bug修复,并以Hadoop为基础推出了更多的大数据处理平台,如列式存储HBase、数据仓库Hive等等,一些传统的单机算法也开始通过Hadoop走向分布式(那大概是大数据方向最好水论文的时代吧)。

Apache Hadoop(1)---概述

Hadoop 1 版本中资源分配与任务调度框架是跟mapredice等紧耦合的,随着Hadoop的成熟,在2.0版本时,这一套被独立出来,成为了一个通用的调度框架(YARN)供其他大数据平台使用,如Spark就支持使用YARN来做资源分配和任务调度。

老当益壮

从 2003 年到现在已经经过了16年的时光,在计算机这个飞速发展的领域,16年足以让一门技术从呱呱坠地到流行再到逐步淘汰的过程了。这么算的话,Hadoop现在也算是垂垂老矣,虽然Hadoop的热度减少,风头都被 SparkFlink 等等后来者抢去了,但是依旧没有淡出人们的视线。一方面,虽然现在有了更加快、更加好用的工具,但是他们底层大多仍然依赖HDFS(一部分原因是足够好用,另一个是企业的数据迁移不便);另一方面,Hadoop也还远没有到被淘汰的地位,仍然有很多的任务用Hadoop运行,也一直在随着需求变迁而进步。我们实验室年初的一篇A会论文的实验就是在Hadoop上跑的( BENU: Distributed Subgraph Enumeration with Backtracking-based Framework )。

如果要说说Hadoop的不足之处,恐怕又能写满整整一张A4纸了:它的编程模型太过简单难以实现复杂需求、HDFS对小文件的处理能力太差、map和reduce的频繁落盘操作带来了很大的性能损失、namenode虽然支持HA但是依旧是瓶颈、基于批处理的模式使得延迟非常高、对于迭代型任务支持不好等等等等。但是Hadoop依旧有着很高的可用性,基于HDFS构建的HBase列式存储能够提供毫秒级的响应而且拓展能力很强。

现在我们说Hadoop,不仅仅是在只MapReduce、YARN这些东西,更多的是在指这个生态,从Hadoop诞生以来,有太多的组件/系统在此之上被构建,它的设计理念仍然会被新的系统所参考、借鉴。

总结

作为一个划时代的系统,Hadoop将大数据处理带上了一个新的高度。不再需要追击极致的单机性能,它的容错机制使得普通服务器就能提供可靠的服务;不再需要考虑那么多的节点协调、容错,用户只需要通过简单的接口就能完成海量数据的存储和处理工作,就像是在单机上处理这些任务一样,不需要去考虑太多的硬件故障、网络故障等;针对日益膨胀的数据,只需要简单的增加节点就可以,系统性能可以接近水平拓展。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 我们


推荐阅读
  • 马蜂窝数据总监分享:从数仓到数据中台,大数据演进技术选型最优解
    大家好,今天分享的议题主要包括几大内容:带大家回顾一下大数据在国内的发展,从传统数仓到当前数据中台的演进过程;我个人认为数 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 基于,docker,快速,部署,多,需求,spark ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • 项目运行环境配置及可行性分析
    本文介绍了项目运行环境配置的要求,包括Jdk1.8、Tomcat7.0、Mysql、HBuilderX等工具的使用。同时对项目的技术可行性、操作可行性、经济可行性、时间可行性和法律可行性进行了分析。通过对数据库的设计和功能模块的设计,确保系统的完整性和安全性。在系统登录、系统功能模块、管理员功能模块等方面进行了详细的介绍和展示。最后提供了JAVA毕设帮助、指导、源码分享和调试部署的服务。 ... [详细]
  • 你知道Kafka和Redis的各自优缺点吗?一文带你优化选择,不走弯路 ... [详细]
  • SparkOnYarn在YARN上启动Spark应用有两种模式。在cluster模式下,Spark驱动器(driver)在YARNApp ... [详细]
  • HBase干货 | 如何优雅的通过Key与Value分离降低写放大难题?
    本文将为大家介绍为什么这样能够有效的降低写放大,然后聊聊几个keyvalue分离系统的结构,包括两篇影响比较广泛的学术论文,以及HBase在keyvalue ... [详细]
  • 开发笔记:大数据之布隆过滤器学习
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了大数据之布隆过滤器学习相关的知识,希望对你有一定的参考价值。 ... [详细]
  • hbase伪集群搭建
    hbase数据存储有三种跑法,跑在本地磁盘上、跑在伪分布式上、跑在完全分布式上--------额。。。官网的文档挺坑爹的,结合官网、百度、谷歌的各种 ... [详细]
  • 背景信息公司目前有40人,研发人员占比60-70% ... [详细]
  • Spark面试题汇总大全
    1RDD简介RDD是Spark最基本也是最根本的数据抽象,它具备像MapReduce等数据流模型的容错性,并且允许开发人员在大型集群上执行基于内存的计 ... [详细]
  • 在计算机领域,数据仓库(DW或DWH),是一个用于报告和数据分析的零碎,被认为是商业智能的一个外围组成部分。它将以后和历史数据存储在一个中央,为整个企 ... [详细]
author-avatar
唯爱WE创丶
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有