Hadoop简介及入门使用

作者: Alukar | 来源:发表于2018-07-09 15:43 被阅读10次

    前言

    随着各条产品线的大数据化,海量数据处理技术已经被广泛应用于用户行为分析、广告效果分析、产品设计分析、商业智能分析和报表统计等各个环节。与之相关的部分测试任务也需要覆盖大数据业务或者需要分析大数据以辅助测试结论或者测试流程,这就要求QA具备一定的大数据方面的分析处理素质。今天就为大家介绍一款较为常用的大数据框架——Hadoop。

    Hadoop是什么

    Hadoop是Apache下一个开源子项目,实现了一种分布式系统基础架构。它的设计思想来源于Google的Google File System和Map-Reduce这两篇学术文章。而Hadoop框架最核心的设计就是:HDFS和MapReduce,HDFS实现了分布式文件系统,让用户可以以流形式访问文件系统中,为海量的数据提供了存储,MapReduce为海量的数据提供了计算方法。HDFS提供以流式数据访问模式来存储超大文件。流式数据访问允许一次写入、多次读取、顺序读取。而且由于Hadoop的分布冗余存储数据方式(每个数据块的大小为64M,默认存贮3份,副本丢失或宕机会自动恢复)的设计,使得该框架具有很高的可靠性。

    HDFS

    Hadoop包含集群端和客户端。集群端负责处理管理数据的存贮和分发;客户端则提供了Shell/Java/C++等访问方式,供用户个性化处理数据。

    集群端包含三种节点,NameNode,SecondaryNameNode和DataNode,三种节点的关系见图1。

    NameNode也叫名称节点,是HDFS的守护程序,即master节点,存储在内存,管理数据映射,处理客户端的读写请求,对内存和I/O进行集中管理,管理HDFS的名称空间,会纪录所有的元数据分布存储的状态信息,比如文件是如何分割成数据块的,以及这些数据块被存储到哪些节点上。用户首先会访问Namenode,通过该总控节点获取文件分布的状态信息,找到文件分布到了哪些数据节点。不过这是个单点,发生故障将使集群崩溃。

    Secondary NameNode,辅助名称节点。监控HDFS状态的辅助后台程序,可以保存名称节点的副本,它与NameNode进行通讯,定期保存HDFS元数据快照。NameNode故障可以作为备用NameNode使用,目前还不能自动切换。

    DataNode,是slave节点,存储在磁盘,负责存储客户端发来的数据块block;执行数据块的读写操作并提供检索等服务。

    图1 Hadoop节点分布说明

    MapReduce

    MapReduce是Google提出的分布式计算框架,把一个复杂计算分解成一个或者多个Map-Reduce步骤,类似于下列shell命令完成的操作。

    cat word.txt | sort | uniq –c

    Map Reduce的剖析图如图2所示,过程大致可以分为如下步骤:

    Map任务:从给定的一行中提取出关注的数据,输出为

    Sort&Shuffle:对Map的输出按照key进行排序

    Reduce任务:在排好序的对中过滤、聚合等。

    图2 MapReduce 剖析图

    明白了Hadoop的构成,再搭建Hadoop环境就会容易很多,关于Hadoop环境的搭建就不在本篇详述了。

    Hadoop常用命令

    MapReduce使用示例

    场景示例:处理某广告部门的打点日志,给出广告主维度搜索业务的展点消数据。

    实现方案示例:

    mapper.sh

    reducer.sh

    run.sh

    结束语

    如果您想详细深入Hadoop,建议阅读《Hadoop权威指南》这本书。大数据框架还有很多,如Spark,Storm, Flink等,每种框架都有各自的优势和处理方法。最适合的解决方案主要取决于待处理数据的状态,对处理所需时间的需求,以及希望得到的结果。我们可以先掌握一种框架,再触类旁通~Hadoop简介及入门使用

    长按识别关注我们,每天都有精彩内容分享哦!~

    相关文章

      网友评论

        本文标题:Hadoop简介及入门使用

        本文链接:https://www.haomeiwen.com/subject/aahtpftx.html