零基础性能测试实战直播班招生中,多种优惠进行中,优惠无套路,开课你决定       |       python自动化测试班-轻课模式,随到随学

咨询QQ:2083503238、1684129674、480934277(请勿重复咨询) 咨询微信:qiangfans

小白学习大数据测试之hadoop初探

2018-02-09 16:57:00
大管家
原创 1637 投稿得红包

Hadoop的历史


这里就不多说了,网上很多资料,总而言之对于hadoop谷歌和雅虎对于ta的贡献功不可没。更多介绍请自行查看这里:https://baike.baidu.com/item/Hadoop/3526507?fr=aladdin


Hadoop的应用场景


数据分析,如日志系统、推荐系统

离线计算

海量数据存储


Hadoop的核心


Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

这里特别需要注意的是hadoop是一个总称,主要由HDFS和MapReduce组成。其中MapReduce可以独立使用,用户只要继承MapReduceBase,提供分别实现Map和Reduce的两个类,并注册Job即可自动分布式运行


HDFS


ta是Hadoop分布式文件系统,是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,适合那些有着超大数据集的应用程序。可以加入QQ交流群522720170一起来学习。

那么HDFS有什么优势吗?显然非常多,大致有如下几点:

1、适合存储大数据的文件,T级别以上或者一大坨的数据

2、这些大数据文件被打散存储,存储在不同的计算器上,这样方便快速的读取

3、一次写入不能做变化了,如果变化也只能在末尾添加,也就是不支持动态改变文件内容

4、同一个文件块副本会分配到其它某几个主机上,如果其中一台主机失效,可以迅速找另一块副本取文件

5、不用多说了,一堆廉价的机器就可以撑起大数据集群

了解HDFS之后我们来看看他的存储结构,看图说话

1.png

上图的解释如下:

  • HDFS 内部的所有通信都基于标准的 TCP/IP 协议

  • NameNode(仅一个),保存整个文件系统的目录信息、文件信息及分块信息。以前如果NameNode挂了那就完蛋了,但是hadoop2.x之后可以有备用使用了。

  • DataNode可以分布在不同的机器上,用来存储在 HDFS 中的文件被分成块(block)

  • block块的大小(通常为 64MB)和复制的块数量在创建文件时由客户机决定。

  • NameNode 依赖来自每个 DataNode 的定期心跳消息。如果 DataNode 不能发送心跳消息,NameNode 将采取修复措施,重新复制在该节点上丢失的块


MapReduce


ta大家可以理解为编程模型,主要就是完成对数据的处理的。当HDFS完成存储之后,对海量数据的分析处理就要依靠MapReduce了。简单来理解就是先对数据进行map划分,在对数据进行reduce合并,如下图。

2.png

为了让大家更好的理解,这里举个栗子。假设小强测试品牌学员群有上亿的学员(这是我们的目标,嘿嘿,官网http://xqtesting.sxl.cn)我们想找出其中薪水最高的那个人。放到MapReduce里大概是这样的过程:将数据扔到block中,然后进行map找到最高的,然后再reduce汇总分析找出最大的。这个过程非常复杂要经历key-value的产生重组等过程,但是hadoop已经帮我们实现了,我们只需要编写相应的命令即可。


hadoop大数据处理的意义


Hadoop得以在大数据处理应用中广泛应用得益于其自身在数据提取、变形和加载(ETL)方面上的天然优势。

Hadoop的分布式架构,将大数据处理引擎尽可能的靠近存储,对例如像ETL这样的批处理操作相对合适,因为类似这样操作的批处理结果可以直接走向存储。

Hadoop的MapReduce功能实现了将单个任务打碎,并将碎片任务(Map)发送到多个节点上,之后再以单个数据集的形式加载(Reduce)到数据仓库里

技术交流QQ群 229390571 测试帮日记接口测试群

电影下载QQ群 533341883 XQ电影下载圈