乐趣区

关于大数据:大数据简介技术体系分类整理

简介: 大数据是指无奈在肯定工夫范畴内用惯例软件工具进行捕获、治理和解决的数据汇合,是须要新解决模式能力具备更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。大数据技术则次要用来解决海量数据的存储和剖析。

一、大数据简介

1、根底概念

大数据是指无奈在肯定工夫范畴内用惯例软件工具进行捕获、治理和解决的数据汇合,是须要新解决模式能力具备更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。大数据技术则次要用来解决海量数据的存储和剖析。

2、特点剖析

大数据的 5V 特点(IBM 提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。

3、倒退过程

Google 在 2004 年前后发表的三篇论文,别离是文件系统 GFS、计算框架 MapReduce、NoSQL 数据库系统 BigTable。海量数据文件,剖析计算,并存储,确立了大数据的基本原理和思路。

蠢才程序员 DougCutting,也是 Lucene、Nutch 我的项目发起人。依据 Google 论文原理初步实现相似 GFS 和 MapReduce 的性能,起初倒退成为赫赫有名的 Hadoop。

再起初,Hadoop 通过高速的倒退,曾经造成一个生态体系,基于 Hadoop 之上,有实时计算,离线计算,NoSQL 存储,数据分析,机器学习等一系列内容。

从这一系列事件倒退看技术法则:Google 业务实际中创造性的提出论文作为根底,业务的成长和需要,迫使技术一直更新换代。所以业务是技术一直倒退的要害。

二、Hadoop 框架

1、Hadoop 简介

留神这里基于 Hadoop2.X 版本形容。后续如果没有特地阐明,都是 2.7 版本。

Hadoop 是一个由 Apache 基金会所开发的分布式系统基础架构;

提供海量的数据存储能力,和剖析计算能力;

作为 Apache 的顶级我的项目,蕴含泛滥子项目是一个生态圈;

2、框架特点

可靠性:Hadoop 按位存储和存储多个数据正本,提供牢靠服务;

扩展性:Hadoop 利用计算机集群调配数据并实现计算工作,能够不便地扩大到数以千计的节点中;

高效性:基于 MapReduce 思维,为海量的数据提供高效的并行计算;

容错性:主动保留数据的多个正本,并且可能主动将失败的工作重新分配;

3、组成构造

HDFS 存储

  • NameNode

存储文件相干的元数据,例如:文件名,文件目录,创立工夫,权限正本数等。

  • DataNode

文件系统存储文件块数据,以及和数据块 ID 的映射关系。

Yarn 调度

负责资源管理和作业调度,将零碎资源分配给在 Hadoop 集群中运行的各种应用程序,并调度要在不同集群节点上执行的工作。

MapReduce 计算

MapReduce 将计算过程分为两个阶段:Map 阶段并行处理输出数据,Reduce 阶段对 Map 后果进行汇总。

三、大数据技术栈

1、Kafka 中间件

开源组织 :Apache 软件

利用场景:

Kafka 是一种高吞吐量的分布式公布订阅音讯零碎,通过磁盘数据结构提供音讯的长久化,这种构造对于即便数以 TB 的音讯存储也可能放弃长时间的稳定性能。高吞吐量:即便是十分一般的硬件 Kafka 也能够反对每秒数百万的音讯。反对通过 Kafka 服务器和消费机集群来分区音讯。反对 Hadoop 并行数据加载。

2、Flume 日志零碎

开源组织 :Cloudera 公司

利用场景:

Flume 是 Cloudera 提供的一个高可用的,高牢靠的,分布式的海量日志采集、聚合和传输的零碎,Flume 反对在日志零碎中定制各类数据发送方,用于收集数据;同时,Flume 提供对数据进行简略解决,并写到各种数据接受方(可定制)的能力。

3、Sqoop 同步工具

开源组织 :Apache 软件

利用场景:

Sqoop 是一款开源的工具,次要用于在 Hadoop、Hive 与传统的数据库例如:MySql 间进行数据的传递,能够将一个关系型数据库(例如:MySQL,Oracle 等)中的数据导进到 Hadoop 的 HDFS 中,也能够将 HDFS 的数据导进到关系型数据库中。

4、HBase 数据库

开源组织 :Apache 软件

利用场景:

HBase 是一个分布式的、面向列的开源数据库,HBase 在 Hadoop 之上提供了相似于 Bigtable 的能力。HBase 是 Apache 的 Hadoop 我的项目的子项目。HBase 不同于个别的关系数据库,它是一个适宜于非结构化数据存储的数据库,并且基于列的而不是基于行的存储模式。

5、Storm 实时计算

开源组织 :Apache 软件

利用场景:

Storm 用于实时计算,对数据流做间断查问,在计算时就将后果以流的模式输入给用户。Storm 绝对简略,能够与任何编程语言一起应用。

6、Spark 计算引擎

开源组织 :Apache 软件

利用场景:

Spark 是专为大规模数据处理而设计的疾速通用的计算引擎,领有 Hadoop 的 MapReduce 所具备的长处;但不同于 MapReduce 的是——Job 两头输入后果能够保留在内存中,从而不再须要读写 HDFS,因而 Spark 能更好地实用于数据挖掘与机器学习等须要迭代的 MapReduce 的算法。Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。

7、R 语言

开源组织 :微软公司

利用场景:

R 是用于统计分析、绘图的语言和操作环境。R 是属于 GNU 零碎的一个自在、收费、源代码凋谢的软件,它是一个用于统计计算和统计制图的优良工具。

8、Hive 数仓工具

开源组织 :脸书公司

利用场景:

hive 是基于 Hadoop 的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种能够存储、查问和剖析存储在 Hadoop 中的大规模数据的机制。hive 数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供 SQL 查问性能,能将 SQL 语句转变成 MapReduce 工作来执行。

9、Oozie 组件

开源组织 :Apache 软件

利用场景:

Oozie 是一个治理 Hdoop 作业(job)的工作流程调度管理系统。

10、Azkaban 组件

开源组织 :Linkedin 公司

利用场景:

批量工作流任务调度器。用于在一个工作流内以一个特定的程序运行一组工作和流程。Azkaban 定义了一种 KV 文件格式来建设工作之间的依赖关系,并提供一个易于应用的 web 用户界面保护和跟踪的工作流。

11、Mahout 组件

开源组织 :Apache 软件

利用场景:

Mahout 提供一些可扩大的机器学习畛域经典算法的实现,旨在帮忙开发人员更加方便快捷地创立智能应用程序。Mahout 蕴含许多实现,包含聚类、分类、举荐过滤、频繁子项开掘。

12、ZooKeeper 组件

开源组织 :Apache 软件

利用场景:

ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 Hbase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的性能包含:配置保护、域名服务、分布式同步、组服务等。

四、技术栈分类

存储体系 :Hadoop-HDFS、HBase、MongoDB、Cassandra

计算体系 :Hadoop-MapReduce、Spark、Storm、Flink

数据同步 :Sqoop、DataX

资源调度 :YARN、Oozie、Zookeeper

日志收集 :Flume、Logstash、Kibana

剖析引擎 :Hive、Impala、Presto、Phoenix、SparkSQL

集群监控 :Ambari、Ganglia、Zabbix

五、源代码地址

GitHub·地址
https://github.com/cicadasmile/big-data-parent
GitEE·地址
https://gitee.com/cicadasmile/big-data-parent
退出移动版