大数据教程之Apache-Hadoop简介_apache hadoop为适应不同应用,不断改进,截至目前一个出现了以下三个版本-程序员宅基地

技术标签: java  好程序员  大数据培训  编程语言  hadoop  分布式  大数据  

好程序员大数据培训分享Apache-Hadoop简介,一、Hadoop出现的原因:现在的我们,生活在数据大爆炸的年代。国际数据公司已经预测在2020年,全球的数据总量将达到44ZB,经过单位换算后,至少在440亿TB以上,也就是说,全球每人一块1TB的硬盘都存储不下。

一些数据集的大小更远远超过了1TB,也就是说,数据的存储是一个要解决的问题。同时,硬盘技术也面临一个技术瓶颈,就是硬盘的传输速度(读数据的速度)的提升远远低于硬盘容量的提升。我们看下面这个表格:

表格

硬盘瓶颈比较

可以看到,容量提升了将近1000倍,而传输速度才提升了20倍,读完一个硬盘的所需要的时间相对来说,更长更久了(已经违反了数据价值的即时性)。读数据都花了这么长时间,更不用说写数据了。

对于如何提高读取数据的效率,我们已经想到解决的方法了,那就是将一个数据集存储到多个硬盘里,然后并行读取。比如1T的数据,我们平均100份存储到100个1TB硬盘上,同时读取,那么读取完整个数据集的时间用不上两分钟。至于硬盘剩下的99%的容量,我们可以用来存储其他的数据集,这样就不会产生浪费。解决读取效率问题的同时,我们也解决了大数据的存储问题。

但是,我们同时对多个硬盘进行读/写操作时,又有了新的问题需要解决:

1、硬件故障问题。一旦使用多个硬件,相对来说,个别硬件产生故障的几率就高,为了避免数据丢失,最常见的做法就是复制(replication):文件系统保存数据的多个复本,一旦发生故障,就可以使用另外的复本。

2、读取数据的正确性问题。大数据时代的一个分析任务,就需要结合大部分数据来共同完成分析,因此从一个硬盘上读取的数据要与从其他99个硬盘上读取的数据结合起来使用。那么,在读取过程中,如何保证数据的正确性,就是一个很大的挑战。

有人会想,既然使用了多个硬盘,为什么不用配有多个硬盘的关系型数据库来进行数据的存储和分析呢?其实,这个主要取决于硬盘发展的一个技术限制,那就是需要寻址操作。我们从关系型数据库中读取数据包含着大量的寻址操作,那么寻址所产生的时间开销必然会大大的增加,再加上读取数据的时间,就更加漫长了。还有一个原因,关系型数据库不适合存储半结构化和非结构化的数据,而这个时代,半结构化和非结构化的数据占90%,而结构化数据只占10%。

针对于上述几个问题,Hadoop为我们提供了一个可靠的且可扩展的存储和分析平台,此外,由于Hadoop运行在商用硬件上且是开源的,因此Hadoop的使用成本是比较低了,在用户的承受范围内。

二、Hadoop的简介
Hadoop是Apache基金会旗下的一个开源的分布式计算平台,是基于Java语言开发的,有很好的跨平台特性,并且可以部署在廉价的计算机集群中。用户无需了解分布式底层细节,就可以开发分布式程序,充分利用集群的威力进行高速运算和存储。

最初,Hadoop的核心技术是HDFS和MapReduce。

HDFS是Hadoop分布式文件系统(Hadoop Distributed File System)的简称,它具有较高的读写速度,很好的容错性和可伸缩性,为海量的数据提供了分布式存储,其冗余数据存储的方式很好的保证了数据的安全性。

MapReduce是一种用于并行处理大数据集的软件框架(编程模型)。用户可在无需了解底层细节的情况下,编写MapReduce程序进行分析和处理分布式文件系统上的数据,MapReduce保证了分析和处理数据的高效性。

因其在分布式环境下提供了高效的,海量的数据的优秀处理能力,Hadoop被公认为大数据行业中的标准开源软件。几乎所有主流的厂商如谷歌,雅虎,微软,淘宝等等这样的大公司都是围绕Hadoop进行提供开发工具,开源软件,商业化工具或技术服务的。

在Hadoop2.0以后,又引入了另一个核心技术:YARN(Yet Another Resource Negotiator)。它是一个任务调度和集群资源管理系统,主要有两类长期运行的守护线程来提供自己的核心服务:一类是用于管理集群上资源使用的资源管理器(Resouce Manager),另一类是运行在集群中各个节点上且能够启动和监控容器(container)的节点管理器(Node Manager)。

发展到现在的Hadoop3.x可以概括成以下五个模块:

Hadoop Common:由原来的Hadoop core更名而来。以前的版本中core包含HDFS、MapReduce及其其他公共部分。后来HDFS和MapReuce被分离出来作为独立的子项目,剩下的公共部分更名为Common。主要包括系统配置工具Configuration、远程过程调用RPC、序列化机制和Hadoop抽象文件系统FileSystem等。它们为在通用硬件上搭建云计算环境提供基本的服务,并为运行在该平台上的软件开发提供了所需的API。
Hadoop HDFS:Hadoop的核心技术之一,分布式文件系统
Hadoop YARN:Hadoop2.0以后新增的一个核心技术,资源管理系统
Hadoop MapReduce:Hadoop的核心技术之一,编程模型,用于大规模数据集的并行计算。
Hadoop Ozone:HDFS的一个扩展方向,对象存储技术。
关于Hadoop这个名字的由来,该项目的创建者Doug Cutting是这样解释的:“这个名字是我孩子给一个棕黄色的大象玩具命名的。我的命名标准就是简短,容易发音和拼写,没有太多的意义,并且不会被用于别处。小孩子恰恰是这方面的高手。”

Hadoop的发音是 [hædu:p]。

三、Apache Hadoop发展史
Hadoop由知名项目Apache Lucene的创始人道格·卡丁(doug Cutting)创建。

它起源于Apache Nutch 项目(一个网页爬取工具和搜索引擎系统,后来遇到大数据量的网页存储问题)。
2003年,谷歌发表的一篇论文(描述的是“谷歌分布式文件系统”,简称GFS)给了Apache Nutch项目的开发者灵感。
2004年,Nutch的开发者开始着手 NDFS(Nutch的分布式文件系统)。
2004年 ,谷歌又发表了一篇介绍MapReduce系统的论文。
2005年,Nutch项目实现了一个MapReduce系统
2006年,开发人员将NDFS和MapReduce移出Nutch项目形成一个子项目,命名Hadoop
2008年,Hadoop已称为Apache的顶级项目。
2008年4月,Hadoop打破世界记录,成为最快排序1TB数据的系统,排序时间为209秒
2009年,Hadoop把1TB数据的排序时间缩短到62秒。
从此名声大噪,现在很多公司都在使用,如雅虎,last.fm,FaceBook,《纽约时报》等等
目前Hadoop的版本发展,hadoop1.x > hadoop2.x > hadoop3.x
四、Hadoop的特点
Hadoop因为是基于Java语言开发的,因此最理想的运行平台就是Linux系统了。它也支持多种编程语言,如C++,PHP等等。

也可以总结出以下优点:

高可靠型。Hadoop按位存储和处理数据的能力值得人们信赖。
高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快,可以处理PB级数据。
高可扩展性。Hadoop的设计目标是可以高效的稳定的运行在廉价的计算机集群上,可以扩展到数以千计的计算机节点。
高容错性。采用冗余数据存储方式,自动保存数据的多个复本,并且能够自动将失败的任务进行重新分配
成本低。Hadoop采用廉价的计算机集群,成本比较低,普通用户也可以使用自己的电脑来搭建Hadoop环境

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_35970166/article/details/106420974

智能推荐

记录一个glibc 导致的段错误以及gdb 移植-程序员宅基地

文章浏览阅读464次。上一篇我有相关关于一个段错误的记录,现在记录当时的段错误具体是在哪里的。 // 从 GNU 的官网下载当前在使用的 glibc 的源代码以及最新的 glibc 源代码 // 地址如下: http://ftp.gnu.org/gnu/libc/ // 下载的是 glibc-2.12.2.tar 以及最新的 glibc-2.25.tar 两个版本 // 这..._gdb 运行时在glibc中出现段错误

eggs和egg是什么意思_7种西餐中鸡蛋的常见做法和叫法-程序员宅基地

文章浏览阅读2.6k次。西式早餐中鸡蛋可是个主角,各种花式做鸡蛋,今天就来详细扒一扒西餐中鸡蛋的做法和叫法。1.Soft/Hard Boilded Eggs (白煮蛋)烹饪难度:★ 删除 Link 注释制作方法:鸡蛋冷水下锅,慢火升温,沸腾后微火煮5分钟,停火后再浸泡5分钟。这样煮出来的鸡蛋蛋清嫩,蛋黄微微凝固又不会流动,蛋白变性程度最佳,也最容易消化,也就是大名鼎鼎传说中的溏心蛋。 删除 Link 注释而煮沸时间9-..._西餐中煎蛋叫法

java运行jar包报错:Error: A JNI error has occurred, please check your installation and try again_zip -d jarname.jar 'meta-inf/.sf' 'meta-inf/.rsa' -程序员宅基地

文章浏览阅读7.1k次,点赞9次,收藏11次。今天打包执行的jar包一直报错:查了很多博客,有的说是因为java -version 和 javac -version版本不一致的原因,但是我的版本是一致的,有的说要打开jar包文件中的META-INF目录,将*.SF,*.DSA,*.RSA文件删除,我的jar包的META-INF目录可以看到:包含.RSA文件和.SF文件,我将其全部删除后,报错Connect refused,最后有的博客说只用删除.SF文件即可,因为依赖jar包中的META-INF中有多余的.SF文件与当前jar包冲突_zip -d jarname.jar 'meta-inf/.sf' 'meta-inf/.rsa' 'meta-inf/*sf

如何爬取csdn-程序员宅基地

文章浏览阅读500次。爬取CSDN的信息,你可以使用爬虫。爬虫是一种自动化的程序,它可以通过解析网站的HTML或XML文件来抓取信息。要爬取CSDN的信息,你可以使用Python中的爬虫框架,如Scrapy或Beautiful Soup。首先,你需要安装这些框架,可以使用pip命令来安装。其次,你需要找到你想要爬取的CSDN页面的URL。然后,你可以使用代码来发送HTTP请求,并获取网页的HTML或XML..._怎么爬取csdn

如何更改micropython默认的boot.py的内容_micropython boot文件内容-程序员宅基地

文章浏览阅读363次,点赞8次,收藏10次。ports\esp32\modules目录下有个inisetup.py。_micropython boot文件内容

Vue和React高级特性之传送_react teleport-程序员宅基地

文章浏览阅读171次。举例来说,我们想要在桌面端将一个组件当做浮层来渲染,但在移动端则当作行内组件。我们可以通过对 动态地传入一个 disabled prop 来处理这两种不同情况。一个可重用的模态框组件可能同时存在多个实例。对于此类场景,多个 组件可以将其内容挂载在同一个目标元素上,而顺序就是简单的顺次追加,后挂载的将排在目标元素下更后面的位置上。提供了一个更简单的方式来解决此类问题,让我们不需要再顾虑 DOM 结构的问题。是一个内置组件,它可以将一个组件内部的一部分模板“传送”到该组件的 DOM 结构外层的位置去。_react teleport

随便推点

腾讯云Lighthouse轻量应用服务器与CVM标准云服务器对比:2024年优惠活动一览-程序员宅基地

文章浏览阅读606次,点赞10次,收藏15次。(CVM)是用户经常比较和选择的两款产品。本文将从多个维度对它们进行差异解析,并给出选择建议。总之,在选择时,请根据您的业务需求、预算和扩展性要求来权衡利弊,选择最适合您的云服务器产品。随着云计算技术的日益成熟,腾讯云作为国内领先的云服务提供商,推出了多款针对不同用户需求的。(Tencent Cloud Lighthouse)与标准。还是标准云服务器,主要取决于您的实际需求。

Springboot中解析JSON字符串(jackson库ObjectMapper解析JSON字符串)_fastjson objectmapper.readvalue 跟json.para区别-程序员宅基地

文章浏览阅读1.6k次,点赞27次,收藏4次。springboot中通过jackson库中的objectmapper对象实现,对象和JSON相互转化,List集合JSON相互转化,Map和JSON相互转化_fastjson objectmapper.readvalue 跟json.para区别

vue中使用AntV G6编写树形结构图并实现节点增删改_可增删改的树形结构图,-程序员宅基地

文章浏览阅读8.5k次,点赞7次,收藏38次。效果图:先在vue项目中安装antv G6 npm install --save @antv/g6安装完之后引入,我是将整个结构图的某些相关配置进行了封装,写在了公共js文件里面,若是你们不想封装可以直接在你们相关的vue文件里面引入import G6 from '@antv/g6';然后封装名称为renderMap的函数,名字可以自定义export function renderMap(data,graph){ const COLLAPSE_ICON = func..._可增删改的树形结构图,

【webpack5】webpack-dev-server 不能正常启动_webpack-dev-server运行后没反应-程序员宅基地

文章浏览阅读2.7k次,点赞7次,收藏6次。【webpack5】webpack-dev-server 不能正常启动一、问题webpack-dev-server --open --config script/webpack.dev.js webpack4环境下可以正常启动,但是升级webpack5后依赖都要升级,再跑这个指令就会报错:internal/modules/cjs/loader.js:584 throw err; ^Error: Cannot find module 'webpack-cli/bin/confi_webpack-dev-server运行后没反应

正则表达式的贪婪和懒惰模式-程序员宅基地

文章浏览阅读97次。var regExp = /8.*8/;var str = "8google8 8google8 8google8";上面例子,是贪婪模式,其实是用了重复(区间)匹配的正则表达式都为贪婪模式前瞻模式是指某个匹配后面必须跟着某个字符串,例子如下var regExp = /goo(?=gle)/;var strOne = google;var st..._vba正则贪婪模式

如何优雅地制作精排 ePub —— 个人电子书制作规范及基本样式表-程序员宅基地

文章浏览阅读1.5k次。随着大数据时代的到来,多种移动阅读终端方兴未艾 ——Amazon Kindle不再小众、各互联网巨头纷纷推出旗下的电子书阅读软件。有了阅读的软件/硬件支持,必不可少的就是阅读什么的问题了。ePub格式一直占据着广大电子书市场,多看、百度阅读等电子书市场所使用的格式都是它,人们也渐渐不满足于单纯的TXT文本阅读和质量低劣的扫描版PDF格式了。下面是我自己对 ePub 电子书制作的理念和规范。  ..._epub排版怎么改

推荐文章

热门文章

相关标签