Hadoop介绍

来源:互联网 发布:鸟哥的linux私房菜 jd 编辑:程序博客网 时间:2024/05/10 04:22
 本篇文章参考部分Hadoop官方介绍加之个人对大数据Hadoop的一个理解,共同进步。大笑大笑提到Hadoop,我们会想到big data,而所谓的大数据就是指海量的数据,大数据特点有四个层面:
第一: 数据体量巨大。从TB级别,跃升到PB级别;
第二: 数据类型繁多。网络日志、视频、图片、地理位置信息等等。
第三:处理速度快,1秒定律,可从各种类型的数据中快速获得高价值的信息,这一点也是和传统的数据挖掘技术有着本质的不同。
第四: 只要合理利用数据并对其进行正确、准确的分析,将会带来很高的价值回报。


所以总结起来就是大数据的4个“V”——Volume(数据体量大)、Variety(数据类型繁多)、Velocity(处理速度快)、Value(价值密度低)。

大数据必须采用分布式架构,无法用单台的计算机进行处理,它的特色在于对海量数据进行分布式数据挖掘,但它必须依托云计算的分布式处理、分布式数据库和云存储、虚拟化技术。所以从技术上看,大数据与云计算的关系密不可分

当前用于分析大数据的工具,Hadoop已经是目前大数据平台中应用率最高的技术

那么什么是Hadoop:

Hadoop是一个用Java语言实现的针对大量数据进行分布式处理的软件框架
   
⒈高可靠性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配

⒉高扩展性。能可靠的存储和处理千兆字节(PB)数据。

⒊高效性。并行处理加快处理速度。

4.成本低:可以通过普通机器组成的服务器群来分发以及处理数据。这些服务器群总计可达数千个节点。

Hadoop核心:
         HDFS( Hadoop Distributed File System)分布式文件系统
         MapReduce 完成分布式计算
         Yarn 资源管理调度系统

HDFS:
 HDFS 的架构是基于一组特定的节点构建的,包括 一个NameNode,它在 HDFS 内部提供元数据服务;           DataNode,它为 HDFS 提供存储块。由于仅存在一个 NameNode,存储在 HDFS 中的文件被分成块,          然后将这些块复制到多个计算机中(DataNode),块的大小(通常为 64MB)和复制的块数量在创建文            件时由客户机决定。NameNode 可以控制所有文件操作。HDFS 内部的所有通信都基于标准的 TCP/IP 协          议。
主从结构(Master_Slave结构)

      -主节点:NameNode(仅一个)
     -从节点:DataNode(多个) 
 
NameNode负责:

     -接收用户操作请求
    -维护文件系统的目录结构
    - 管理块和文件之间关系

DataNode负责:

    -储存文件
    -文件被分成block储存在磁盘上(每块64M)
    - 为保证数据安全,文件会有多个副本


MapReduce :
Map是把Input分解成中间的Key/Value对,Reduce把Key/Value合成最终Output。这两个函数由程序员提供给系统,下层设施把Map和Reduce操作分布在集群上运行,并把结果存储在GFS上。




mapreduce执行过程

在客户端、JobTracker、TaskTracker的层次来分析MapReduce的工作原理:
在客户端启动一个作业。向JobTracker请求一个Job ID。.将运行作业所需要的资源文件复制到HDFS上,包括MapReduce程序打包的JAR文件、配置文件和客户端计算所得的输入划分信息。这些文件都存放在JobTracker专门为该作业创建的文件夹中。文件夹名为该作业的Job ID。
JobTracker接收到作业后,将其放在一个作业队列里,等待作业调度器对其进行调度,当作业调度器根据自己的调度算法调度到该作业时,会根据输入划分信息为每个划分创建一个map任务,并将map任务分配给TaskTracker执行。
对于map和reduce任务,TaskTracker根据主机核的数量和内存的大小有固定数量的map槽和reduce槽。
TaskTracker每隔一段时间会给JobTracker发送一个心跳,告诉JobTracker它依然在运行,同时心跳中还携带着很多的信息,比如当前map任务完成的进度等信息。当JobTracker收到作业的最后一个任务完成信息时,便把该作业设置成“成功”。当JobClient查询状态时,它将得知任务已完成,便显示一条消息给用户。


Hadoop子项目
      Hive:建立在Hadoop基础之上的数据仓库,它提供了简单的类似SQL语法的HiveSQL语言进行数据查询。
      Hbase:是一个分布式的,面向列的开源数据库
      Sqoop:在HADOOP与传统的数据库间进行数据的传递。
      Zookeeper: Zookeeper是高可用的和可靠的分布式协同(Coordination)系统,提供分布式锁之类的基本服务,用于构建分布式应用。
      Pig:Pig建立于Hadoop Core之上为并行计算环境提供了一套数据工作流语言和执行框架

Hadoop的架构


0 0
原创粉丝点击