大数据技术#1 大数据技术生态体系

什么是大数据

?

关于大数据麦肯锡全球研究所给出的定义是:一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征。

?

所谓的大数据生态系统简单可以理解成集成了大数据的存储和计算以及分析等常见技能于一身的技术框架,可以简单理解为:存储+计算+任务调度。比如目前主流的 Hadoop 生态系统和 Spark 生态系统。Hadoop 自身提供了 HDFS 用来数据存储,提供了 MapReduce 用来数据处理(离线计算)。而 Spark 提供了各种实时计算,机器学习的计算框架。但是 Spark 没有提供了数据存储的框架,所以还是依赖于第三方的存储框架,比如 Hadoop 的 HDFS,亚马逊的 S3 存储系统。

?

在这里我还是要推荐下我自己建的大数据学习交流裙:667367234,?裙?里都是学大数据开发的,如果你正在学习大数据?,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有大数据开发相关的),包括我自己整理的一份2018最新的大数据进阶资料和高级开发教程,欢迎进阶中和进想深入大数据的小伙伴
?

01

?

寒武纪大爆发:大数据的技术生态圈

?

?

大数据若干项目提供了一个在廉价服务器集群上分发数据处理任务的开源平台。以下将当前主流的大数据技术进行总体性介绍,后续会对特定技术框架进行详细描述。

?

1.? Hadoop Common: Common是Hadoop体系最底层的一个模块,为Hadoop个子项目提供各种工具,如系统配置工具Configuration、远程调用RPC、序列化机制和日志操作等,是Hadoop其他模块的基础。

?

  1. HDFS:?Hadoop分布式文件系统,是Hadoop的基石。HDFS是一个具有与高度容错性的文件系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。

?

  1. MapReduce:(a)MapReduce将复杂的、运行于大规模集群上的并行计算过程高度地抽象到了两个函数:Map和Reduce;(b)编程容易,不需要掌握分布式并行编程细节,也可以很容易把自己的程序运行在分布式系统上,完成海量数据的计算;(c)MapReduce采用“分而治之”策略,一个存储在分布式文件系统中的大规模数据集,会被切分成许多独立的分片(split),这些分片可以被多个Map任务并行处理;(d)MapReduce设计的一个理念就是“计算向数据靠拢”,而不是“数据向计算靠拢”,因为,移动数据需要大量的网络传输开销;(e)MapReduce框架采用了Master/Slave架构,包括一个Master和若干个Slave。Master上运行JobTracker,Slave上运行TaskTracker;Hadoop框架是用Java实现的,但是,MapReduce应用程序则不一定要用Java来写。

?

  1. Sqoop:sqoop 是一款开源的工具,主要用于在 Hadoop(Hive)与传统的数据库 (mysql) 间进行数据的传递,可以将一个关系型数据库(例如:MySQL,Oracle 等)中的数据导进到 Hadoop 的 HDFS 中,也可以将 HDFS 的数据导进到关系型数据库中。然而这些工具并不支持实时的数据抽取。

?

  1. Canal:canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL。借助阿里巴巴开源的?Canal?项目,我们能够非常便捷地将 MySQL 中的数据抽取到任意目标存储中。Canal 会将自己伪装成 MySQL 从节点(Slave),并从主节点(Master)获取 Binlog(MySQL Binlog 是一种实时的数据流,用于主从节点之间的数据复制,可以利用它来进行数据抽取),解析和贮存后供下游消费端使用。Canal 包含两个组成部分:服务端和客户端。服务端负责连接至不同的 MySQL 实例,并为每个实例维护一个事件消息队列;客户端则可以订阅这些队列中的数据变更事件,处理并存储到数据仓库中。

?

  1. Flume:Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume 支持在日志系统中定制各类数据发送方,用于收集数据;Flume 提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。

?

  1. Logstash:Logstash是一个开源数据搜集引擎,支持实时数据管道功能。Logstash可以动态整合分散的数据源,根据你的选择对数据标准化,并统一输入到指定的且可以是不同目的地。Logstash也是一个数据分析软件,主要目的是分析log日志,常用于ELK套件。ELK套件可以当作一个MVC模型,Logstash是controller层,Elasticsearch是一个model层,kibana是view层。首先将数据传给Logstash,它将数据进行过滤和格式化(转成JSON格式),然后传给Elasticsearch进行存储、建搜索的索引,kibana提供前端的页面再进行搜索和图表可视化,它是调用Elasticsearch的接口返回的数据进行可视化。其中,Logstash和Elasticsearch是用Java实现的,kibana使用node.js框架实现。

?

  1. rsyslog:rsyslog是Linux日志服务,该服务负责监听Linux下的日志信息,并把日志信息追加到对应的日志文件中,一般在/var/log目录下。它还可以把日志信息通过网络协议发送到另一台Linux服务器上,或者将日志存储在MySQL或Oracle等数据库中。

在这里我还是要推荐下我自己建的大数据学习交流裙:667367234,?裙?里都是学大数据开发的,如果你正在学习大数据?,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有大数据开发相关的),包括我自己整理的一份2018最新的大数据进阶资料和高级开发教程,欢迎进阶中和进想深入大数据的小伙伴
?

  1. Kafka:Kafka 是一种高吞吐量的分布式发布订阅消息系统,有如下特性:(a)通过 O(1) 的磁盘数据结构提供消息的持久化,这种结构对于即使数以 TB 的消息存储也能够保持长时间的稳定性能。(b)高吞吐量:即使是非常普通的硬件Kafka也可以支持每秒数百万的消息。(c)支持通过 Kafka 服务器和消费机集群来分区消息。(d)支持 Hadoop 并行数据加载。

?

  1. Storm:Storm 为分布式实时计算提供了一组通用原语,可被用于“流处理”之中,实时处理消息并更新数据库。这是管理队列及工作者集群的另一种方式。Storm 也可被用于“连续计算”(continuous computation),对数据流做连续查询,在计算时就将结果以流的形式输出给用户。

?

  1. Spark:Spark 是当前最流行的开源大数据内存计算框架。可以基于 Hadoop 上存储的大数据进行计算。Spark 提供了各种实时计算,机器学习的计算框架。但是 Spark 没有提供了数据存储的框架,所以还是依赖于第三方的存储框架,比如 Hadoop 的 HDFS,比如亚马逊的 S3 存储系统。

?

  1. Flink:Flink也提供 API来像Spark一样进行批处理,但两者处理的基础是完全不同的。Flink把批处理当作流处理中的一种特殊情况。在Flink中,所有的数据都看作流,是一种很好的抽象,因为这更接近于现实世界。

?

  1. Oozie:Oozie 是一个管理Hdoop作业(job)的工作流程调度管理系统。Oozie 协调作业就是通过时间(频率)和有效数据触发当前的 Oozie 工作流程。

?

  1. Hbase:HBase 是一个分布式的、面向列的开源数据库。HBase 不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库

?

  1. Hive:hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的 sql 查询功能,可以将 sql 语句转换为 MapReduce任务进行运行。其优点是学习成本低,可以通过类 SQL 语句快速实现简单的 MapReduce 统计,不必开发专门的 MapReduce 应用,十分适合数据仓库的统计分析。也正是由于这种机制导致Hive最大的缺点是慢。Map/reduce调度本身只适合批量,长周期任务,类似查询这种要求短平快的业务,代价太高。

?

  1. Pig:Pig和Hive类似,也是对大型数据集进行分析和评估的工具,不过与Hive提供SQL接口不同的是,它提供了一种高层的、面向领域的抽象语言:Pig Latin,Pig也可以将Pig Latin脚本转化为MapReduce作业。与SQL相比,Pig Latin更加灵鹤,但是学习成本稍高。

?

  1. Impala:Impala是Cloudera公司主导开发的实时交互SQL大数据查询工具,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据。已有的Hive系统虽然也提供了SQL语义,但由于Hive底层执行使用的是MapReduce引擎,仍然是一个批处理过程,难以满足查询的交互性。相比之下,Impala的最大特点也是最大卖点就是它的快速:Impala没有再使用缓慢的Hive+MapReduce批处理,而是通过使用与商用并行关系数据库中类似的分布式查询引擎(由Query?Planner、Query?Coordinator和Query?Exec?Engine三部分组成),可以直接从HDFS或HBase中用SELECT、JOIN和统计函数查询数据,从而大大降低了延迟。

?

  1. R 语言:R 是用于统计分析、绘图的语言和操作环境。R 是属于 GNU 系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。

?

  1. Mahout:?Apache Mahout 是个可扩展的机器学习和数据挖掘库,当前 Mahout 支持主要的 4 个用例:

推荐挖掘:搜集用户动作并以此给用户推荐可能喜欢的事物。

聚集:收集文件并进行相关文件分组。

分类:从现有的分类文档中学习,寻找文档中的相似特征,并为无标签的文档进行正确的归类。

频繁项集挖掘:将一组项分组,并识别哪些个别项会经常一起出现。

?

  1. TensorFlow:TensorFlow? 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。

?

  1. ZooKeeper:Zookeeper 是 Google 的 Chubby 一个开源的实现。它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步服务等。ZooKeeper 的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

?

  1. Docker:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

?

  1. Kubernetes:简称K8s,是用8代替8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes提供了应用部署,规划,更新,维护的一种机制。

?

  1. YARN:YARN 是 Hadoop 集群的资源管理系统,是一个普适的、分布式的应用管理框架,用以替代传统的 Apache Hadoop MapReduce 框架。其监控页面可以展示集群的资源占用情况,任务的的执行引擎、进度和分配的节点等信息等。

?

关注微信公众号:程序员交流互动平台!获取资料学习!

原文地址:http://blog.51cto.com/14078334/2324652

时间: 2024-10-13 07:55:37

大数据技术#1 大数据技术生态体系的相关文章

ATC背后的技术支撑——Higgs Chain 的生态体系解读

摘要:区块链无疑是当下最时髦的词汇,然而要使区块链的技术真正为实体行业所用却存在一定的应用瓶颈. Higgs Block创新地研发了具有异构结构的Higgs Chain区块链系统:Higgs Chain以其独有的核心技术着力打造区块链的基础设施平台,欲突破目前区块链难以与实际业务逻辑对接的难题.Higgs 欲依托于Higgs Chain公链逐步建立一个区块链的生态体系:同时,Higgs也会扶持企业项目,其中ATC是Higgs最新扶持的项目.今天就请各位看官跟着作者一起了解一下Higgs的区块链生

宜信大数据实时授信平台技术、架构、模型解析(PPT)

宜信大数据实时授信平台包含姨搜.知识图谱.授信和反欺诈引擎等模块.平台结合了用户授权数据.第三方数据.互联网海量数据等不同数据源,最大限度地获取 用户信息.授信和反欺诈引擎结合了专家知识和机器学习算法,分析客户的信用状况和欺诈风险,实时估计授信额度.检测欺诈风险. 这个平台到底是做什么事情的?通过对各种各样不同的数据员的接入,包括自己的数据.通过对它的接入分析,梳理,挖掘,关联和理解. 做了一堆的事情,但是三样最重要的事情是说, 第一个分析客户的信用状况. 二我们会检查欺诈的风险,我们这个行业欺

基于Hadoop2.0、YARN技术的大数据高阶应用实战(Hadoop2.0\YARN\Ma

Hadoop的前景 随着云计算.大数据迅速发展,亟需用hadoop解决大数据量高并发访问的瓶颈.谷歌.淘宝.百度.京东等底层都应用hadoop.越来越多的企 业急需引入hadoop技术人才.由于掌握Hadoop技术的开发人员并不多,直接导致了这几年hadoop技术的薪水远高于JavaEE及 Android程序员. Hadoop入门薪资已经达到了8K以上,工作1年可达到1.2W以上,具有2-3年工作经验的hadoop人才年薪可以达到30万—50万. 一般需要大数据处理的公司基本上都是大公司,所以学

百度技术沙龙 - 大数据场景下主题检索应用

第48期百度技术沙龙上的<大数据场景下主题检索应用>讲座介绍了很多训练大规模主题模型的技术细节.讲座回来后,我粗略整理了下讲座上涉及的主题模型和训练大规模模型相关的资料和文献. 1. 主题模型的发展历史 a. 布尔模型 Boolean model b. 向量空间模型 VSM (Vector space model) c. 潜在语义索引 LSI (Latent semantics index) - 首先作为一种降维技术, 对doc-word矩阵进行SVD分解 d. 概率潜在语义分析pLSA e.

大数据挑战与NoSQL数据库技术pdf

下载地址:网盘下载 内容简介 编辑 <大数据挑战与nosql数据库技术>对大数据时代面临的挑战,以及nosql数据库的基本知识做了清晰的阐述,有助于读者整理思路,了解需求,并更有针对性.有选择地深入学习相关知识.[1] 目录 编辑 第1章概论1 1.1引子2 1.2大数据挑战3 1.3大数据的存储和管理5 1.3.1并行数据库5 1.3.2NoSQL数据管理系统6 1.3.3NewSQL数据管理系统8 1.3.4云数据管理11 1.4大数据的处理和分析11 1.5小结13 参考文献13 理论篇

大数据时代下是数据思维重要,还是相应技术重要?

技术做到一定程度,逐步发现自己的瓶颈.不由得开始思考这一方面的问题!到底大数据时代下,是相应的数据分析技术重要,还是相应数据思维重要? 先来说数据思维吧!什么是大数据思维,个人感觉应该是互联网思维的一种.是考虑到全面,而不是局部.是考虑到多维,而不是单一维度.不是靠拍脑门做决定,而是让数据说话,用数据做决策. 先说第一点,考虑全面,而不是局部.众所周知,移动互联网催生了大数据的产生.每一个人每一天通过手机能够的数据总和会是一个巨大的量.而通过这些非结构化的数据,我们首先面对的是如何处理这些数据,

技术不是大数据第一生产力,数据交易才能带来应用爆发

导言:我从事大数据工作10余年,很多时候和圈内朋友谈及大数据,大家首先都谈到的是数据挖掘和人工智能算法,或是hadoop的架构.我也曾深陷这样的误区,认为"只要会写算法.实现架构就是大数据的全部":但我这些年的应用实践中,越来越发现,大数据发展最大的瓶颈不是技术,而是高质量数据源的获取.提供和交易环节没有被打通. 技术不是关键高质量的数据源永远是第一位 大数据行业很多新人,甚至业内多年从业者都有这个误区:认为算法.模型很重要.而我认为,即使技术达到世界顶级水平,它依旧不是大数据价值引擎

《Spark大数据分析:核心概念、技术及实践》大数据技术一览

本节书摘来自华章出版社<Spark大数据分析:核心概念.技术及实践>一书中的第1章,第1节,作者穆罕默德·古勒(Mohammed Guller)更多章节内容可以访问云栖社区"华章计算机"公众号查看. 大数据技术一览 我们正处在大数据时代.数据不仅是任何组织的命脉,而且在指数级增长.今天所产生的数据比过去几年所产生的数据大好几个数量级.挑战在于如何从数据中获取商业价值.这就是大数据相关技术想要解决的问题.因此,大数据已成为过去几年最热门的技术趋势之一.一些非常活跃的开源项目都

周鸿祎:以大数据技术对抗大数据平台安全威胁

1月,中国大陆境内所有通用顶级域(.com/.net/.org等)解析出现问题,所有相关域名均被指向一个位于美国的IP地址(65.49.2.178),导致数千万网民在数小时内无法访问网站. 4月,OpenSSL"心脏出血(Heartbleed)"重大安全漏洞被曝光,这一漏洞让黑客能够读取服务器系统的运行内存.有业内人士利用该漏洞在某知名电商网站上测试时,成功获得多位用户的账号及密码,并成功登陆网站. 9月,"iCloud艳照门"事件爆发,数百张好莱坞女演员不雅照在网