⼤数据简介,技术体系分类整理
本⽂源码: ||
⼀、⼤数据简介
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结果进⾏汇总。
三、⼤数据技术栈
hbase应用案例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·地址
github/cicadasmile/big-data-parent
GitEE·地址
gitee/cicadasmile/big-data-parent
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论