A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 大蓝鲸小蟀锅 于 2018-3-24 16:57 编辑

大数据的了解

什么是Hadoop
首先,Hadoop是一个开发和运行处理大规模数据的软件平台,是一个用Java语言实现开源软件框架,实现在大量计算机组成的集群中对海量数据进行分布式计算。

Hadoop的组成
由以下三大核心,四大模块,两大协议组成
三大核心
HDFS 、MapReduce 、YARN
四大模块
hadoop Common:为其他hadoop模块提供基础设施
hadoop DFS:一个可靠,高吞吐量的分布式文件系统
hadoop MapReduce:一个分布式的离线并行计算框架
hadoop YARN:一个新的MapReduce框架,任务调度与资源管理
两大协议
rbc(远程过程调用协议,调用其他的jvm)
nio

核心设计
HDFS和MapReduce.
HDFS提供了海量数据的存储,它是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,适合那些有着超大数据集(large data set)的应用程序。
MapReduce提供了对数据的计算,通俗说MapReduce是一套从海量源数据提取分析元素最后返回结果集的编程模型,将文件分布式存储到硬盘是第一步,而从海量数据中提取分析我们需要的内容就是MapReduce做的事了。

Hadoop的出现
在硬盘存储容量快速增加的同时,其访问速度(从硬盘读取数据的速度)却未能与时俱进,数据越来越大,导致读取时间较长。而Hadoop 就是为了解决面向互联网及其他来源的大数据的分析和并行处理计算模型。

应用场景
hadoop主要应用于数据量大的离线场景。特征为:
1、数据量大。一般真正线上用Hadoop的,集群规模都在上百台到几千台的机器。这种情况下,T级别的数据也是很小的。Coursera上一门课了有句话觉得很不错:Don’t use hadoop, your data isn’t that big。
2、离线。Mapreduce框架下,很难处理实时计算,作业都以日志分析这样的线下作业为主。另外,集群中一般都会有大量作业等待被调度,保证资源充分利用。
3、数据块大。由于HDFS设计的特点,Hadoop适合处理文件块大的文件。大量的小文件使用Hadoop来处理效率会很低。

举个例子,百度每天都会有用户对侧边栏广告进行点击。这些点击都会被记入日志。然后在离线场景下,将大量的日志使用Hadoop进行处理,分析用户习惯等信息。其实我们要知道大数据是针对增量中海量的结构化,非结构化,半结构数据,在这种情况下,如何快速反复计算挖掘出高效益的市场数据??带着这 个问题渗透到业务中去分析,就知道hadoop需要应用到什么业务场景了!!!如果关系型数据库都能应付的工作还需要hadoop吗?

Hadoop的优缺点
优点:
(一)高可靠性:Hadoop按位存储和处理数据的能力值得人们信赖;
(二)高扩展性:Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
(三)高效性:Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
(四)高容错性:Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
缺点:
(一)不适合低延迟数据访问。
(二)无法高效存储大量小文件。

Hadoop的历史

Hadoop是Doug Cutting– Apache Lucene创始人– 开发的使用广泛的文本搜索库。

Hadoop这个名字不是一个缩写,它是一个虚构的名字。该项目的创建者,Doug Cutting如此解释Hadoop的得名:”这个名字是我孩子给一头吃饱了的棕黄色大象命名的。我的命名标准就是简短,容易发音和拼写,没有太多的意义,并且不会被用于别处。小孩子是这方面的高手。Googol就是由小孩命名的。”

雏形开始于2002年的Apache的Nutch,Nutch是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。

随后在2003年Google发表了一篇技术学术论文谷歌文件系统(GFS)。GFS也就是google File System,google公司为了存储海量搜索数据而设计的专用文件系统。

2004年Nutch创始人Doug Cutting基于Google的GFS论文实现了分布式文件存储系统名为NDFS。

2004年Google又发表了一篇技术学术论文MapReduce。MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行分析运算。

2005年Doug Cutting又基于MapReduce,在Nutch搜索引擎实现了该功能。

2006年,Yahoo雇用了Doug Cutting,Doug Cutting将NDFS和MapReduce升级命名为Hadoop,Yahoo开建了一个独立的团队给Goug Cutting专门研究发展Hadoop。

概括来讲,就是从Lucene到nutch ,从nutch到Hadoop。

Hadoop的版本
2.2
2.5
2.7
2.7.2

什么是HA

HA(High Available)就是高可用性,我们学习分布式集群框架,经常的会考虑这个问题,那么Hadoop也是不可避免的,而Hadoop的HA具体是什么引起的呢?知道这个我们就可以提出具体的方案来解决它,或者提高HA了。

我们学习Hadoop都知道HDFS的管理是通过namenode来实现的,数据存储在Datanode上,而在Hadoop中namenode是存在sopf(single point of failure),而Datanode失败,Hadoop会自动的重启一个复制失败的备份数据,所以datanode不存在HA,那么Hadoop的HA主要是namenode的HA。而HA具体是怎么定义的呢?

HA主要是由可靠性和可维护性来定义的,说到这你可能懵了,下面我给出一个表达式,你就明白了,可靠性即系统正常提供服务的平均运行时间(MTTF);可维护性即系统失败后到恢复正常运行的时间(MTTR);HA=MTTF/MTTF+MTTR。

那么Hadoop中namenode的HA具体是说什么呢?我是这样理解的,Namenode的可靠性是由具体的硬件,软件来保障的,我们只能通过减少集群硬件故障率来提高可靠性。根据雅虎数据显示namenode硬件故障在3年内发生了3次,这个是很少的。那么Namenode的可维护性是影响HA的决定性因素。而Namenode的可维护性又取决于hdfs的元数据的可靠性和完整性,所以Hadoop的HA取决于元数据的完整性和可靠性。保证了元数据的完整性,减少了Namenode的可维护的时间,就是提高了HA。

1.png (16.78 KB, 下载次数: 13)

1.png

1 个回复

正序浏览
我来占层楼啊  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马