大数据及 Hadoop 简介

本文最后更新于:2 年前

大数据

常用名词

  • 数据挖掘:data mining。简单来说,就是从海量数据中挖掘出有用的信息。

  • 知识发现:从信息中获取有用的知识,筛选掉无用的信息。

  • 数据清洗:从原始数据中清洗掉无用的数据,保留有效数据。

  • 大数据:BigData ,大量数据,GB、TB。

    1Byte = 8bit

    1KB = 1024Byte

    1MB = 1024KB

    1GB = 1024MB

    1TB = 1024GB

    1PB = 1024TB

    1EB = 1024PB

    1ZB = 1024EB

大数据特点(5V)

  • 大量(volume)
  • 高速(velocity)
  • 多样(variety)
  • 价值密度低(value)
  • 真实性(veracity)

Hadoop

概述

Hadoop 是 Apache 基金会开源的分布式的平台,基于java语言开发,部署在廉价的计算机上面,可以存储和计算单台计算机存储和计算不了的大量数据的框架。

Hadoop 的核心:分布式文件系统(HDFS)、分布式计算框架(MapReduce)。HDFS 为海量的数据提供了存储,而 MApReduce 则为海量的数据提供了计算。

发展简史

Hadoop 起源于 Apache Nutch 项目,始于2002年,是 Apache Lucene(文本搜索库)的子项目之一 ,由受到谷歌论文启发的Doug Cutting等人实现。

  • 网页数据存储

    2003年,谷歌发表了《GFS》论文, 开源实现。

    2004年NDFS(HDFS前身) 。

  • 索引 — 计算

    2004年,谷歌发表了《MapReduce》论文。

    2005年,开源实现了 MapReduce。

    2006年,NDFS、MapReduce 独立出来,Lucenne 子项目,Hadoop 。

    2008年,Hadoop 成为了 Apache 下的顶级项目。

Hadoop 特性

对大量数据进行分布式处理的软件框架。

  • 高可靠性。冗余数据存储方式
  • 高效性
  • 高扩展性
  • 成本低
  • 高容错性
  • 支持多种编程

运行方式

三种不同模式:

  • 单机模式(standalone)

    不能使用 HDFS ,一般用于 MapReduce 进行测试、调试,用于开发阶段。

  • 伪分布式模式

    在一台主机模拟多台主机,此模式下,可以使用 HDFS ,一般用于开发测试 Hadoop 程序是否正确。

  • 完全分布式模式

    真正的生产环境。

hadoop 组件

Hadoop生态当中的诸多组件有HDFS、MapReduce、Yarn、HBase、Kafka、Hive、ZooKeeper。

  • HDFS是一个分布式文件系统。有着高容错性的特点,并且设计用来部署在低廉的硬件上,适合那些有着超大数据集的应用程序。
  • MapReduce是一种编程模型,用于大规模数据集(>1tb)的并行运算。
  • Yarn是一种Hadoop资源管理器,一个通用资源管理系统,可为上层应用提供统一的资源管理和调度。
  • HBase是一个开源的,基于列序模型的分布式数据库。
  • Kafka一个开源流处理平台,可以通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时消息。
  • Hive是基于Hadoop的一个工具,提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。
  • ZooKeeper是一个高效的,可扩展的协调系统,存储和协调关键共享状态。