hadoop入门--hadoop

什么是Hadoop?

  • 它是一个分布式的文件系统+计算框架,是一个能够对大量数据进行分布式处理的软件框架.
  • 它面向大数据处理,擅长离线数据分析.
  • 它是一个快速进化的生态系统,已经有数十个具有强大生命力的子项目,包括Pig,Hive和Hbase等.
  • 它不是数据库,Hbase才数据库.
  • 它是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。
  • 它是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。
  • 它还是可伸缩的,能够处理 PB级数据。
  • 此外,它依赖于社区服务器,因此它的成本比较低,任何人都可以使用。

Hadoop的思想之源–Google

  • 降低成本
    不使用超级计算机,不使用存储。
    提供冗余的集群服务,大量使用普通的PC服务器(去掉机箱,外设,硬盘)
    集装箱数据中心,能效比高.

  • 数据和计算难题解决
    大量网页如何存储?

        大量网页放在内存中,效率最快,并提供负载均衡和容灾.
        GFS:Google没有数据库,是用自己开发的文件系统.将不常用的网页放在该文件系统中.
    

    搜索算法

        使用倒排索引,快速检索网页.采用快速搜索,不用全文索引,对文章进行分词,中文的分词可用字典来做到.
    

    Page-Rank计算问题

        网页的价值计算问题,给每个网页价值进行评分.而得分高的网页就可以优先被查询出来,这就是数据挖掘.
        思想:根据链接关系,很多链接指向的页面,价值就算高.而网站本身的价值是很不一样的,价值高的网站指向的网页,价值也会高.
        主要做法:构建和计算Google矩阵.而若网页太多,Google矩阵非常庞大,所以提出Map-Reduce,来解决.分散聚合,也就是分治算法,将庞大的Google矩阵分散,然后各个计算,再合并,从而得出结果.
    

Hadoop的源起–Lucene

    Lucene是DoungCutting开创的开源软件,用java书写,实现与Google类似的全文搜索功能,它提供了全文检索引擎的架构,包括完整的查询引擎和索引引擎.
    Lucene的目的是为了软件开发人员提供一个简单易用的工具包,以方便在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎.
    但是,对于大数据量的场景,Lucene面对与Google同样的困难,Doung Cutting学习和模仿Google解决这些问题的办法.于是做出了一个微缩版,Nutch.
    2003-2004年,Google公开了部分GFS和MapReduce思想的细节,以此为基础,Doung Cutting等人用了2年的业余时间实现了DFS和MapReduce机制,使Nutch性能飙升.
    2005年,Hadoop作为Lucene的子项目Nutch的一部分正式引入Apache基金会.
    2006年3月,Hadoop独立,Map-Reduce和Nutch Distributed File System(NDFS,Nutch分布式文件系统)分别被纳入称为Hadoop的项目中。

Hadoop达到的高度

    是目前实现与计算的事实标准开源软件。
    包含数十个具有强大生命力的子项目。(Hbase,Pig,Hive,Chukwa,MapReduce,HDFS,Zookeeper,Core和Avro)
    已经能在数千节点上运行,处理数据量和排序时间不断打破世界记录。

Hadoop的架构

架构图

这里写图片描述

  • 图中分为两个Rack机架,其中右边机架的上部是Master节点,其他为Slave节点。而Master节点中,包含Namenode,SecondaryNamenode,JobTracker。Slave节点中,包含TaskTracker和Datanode.
  • Master做为主控节点,不一定是唯一的.Namenode,SecondaryNamenode,和JobTracker都可以单独部署在一台机子上,这就是3个点.也就有3个主控节点.而常见的是,Namenode和JobTracker在一台机子上,而SecondaryNamenode则在另一台单独的机子上.

Namenode

    名称节点,用于管理文件系统的命名空间。
    HDFS的守护程序
    协调客户端对文件的访问
    记录文件是如何分割成数据块的,以及这些数据块被存储到哪些节点上;记录每个文件数据块在各个datanode上的位置和副本信息;
   记录命名空间内的改动或空间本身属性的改动;使用事务日志记录HDFS元数据的变化.使用映像文件存储文件系统的命名空间,包括文件映射,文件属性等.
     对内存和I/O进行集中管理
     实际上是个单点,发生故障将使集群崩溃。

Secondary Namenode

     辅助名称节点
     监控HDFS状态的辅助后台程序
     每个集群都有一个
     与NameNode进行通讯,定期保存HDFS元数据快照
     当NameNode故障可以作为备用NameNode使用,但是无法自动切换,只能手动切换。Hadoop已经在解决这个问题。
     事实上的单点。

JobTacker

     作业跟踪器
     用于处理作业(用户提交代码)的后台程序
     决定有哪些文件参与处理,然后切割task并分配节点
     监控task,重启失败的task(于不同的节点)
     每个集群只有唯一一个JobTracker,位于Master节点

DataNode

     数据节点
     每台从服务器都运行一个
     负责所在物理节点的存储管理,负责把HDFS数据块读写到本地文件系统
     文件由数据块组成,典型的块大小为64MB,数据块尽量散布到各个节点;
    一次写入,多次读取(不修改)

TaskTracker

     任务跟踪器
     位于Slave节点上,与dataNode结合,代码和数据一起的原则
    管理各自节点上的task,由jobTracker分配,与jobTracker交互
    每个节点只有一个TaskTracker,但一个TaskTracker可以启动多个jvm,用于并行执行map或reduce任务.

以上,是Hadoop的一些简单介绍.包括hadoop是什么,起源思想和起源历史,以及他的架构,以及部分为什么提出hadoop.但是还未详细介绍,并且未介绍什么地方适用hadoop,应用的场景有哪些.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值