大数据就是任何超过了一台计算机处理能力的庞大数据量。–JohnRauser。
大数据代表了更多的信息,更多理解信息的角度。
大数据,又称巨量资料,指的是所涉及的数据资料量规模巨大到无法通过人脑甚至主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯。
二、大数据的分类
- 结构化数据,简单来说就是数据库。也称作行数据,是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理。结构化数据标记,是一种能让网站以更好的姿态展示在搜索结果当中的方式,搜索引擎都支持标准的结构化数据标记。(员工的姓名,年龄等)
- 非结构话数据,是与结构化数据相对的,不适于由数据库二维表来表现,包括所有格式的办公文档、XML、HTML、各类报表、图片和咅频、视频信息等。支持非结构化数据的数据库采用多值字段、了字段和变长字段机制进行数据项的创建和管理,广泛应用于全文检索和各种多媒体信息处理领域。(员工的声音,头像等)
- 半结构化数据是一种适于数据库集成的数据模型,也就是说,适于描述包含在两个或多个数据库(这些数据库含有不同模式的相似数据)中的数据。(员工的简历等)
三、大数据的特点
1、规模性(Volume)大数据的数据量是惊人的,随着技术的发展,数据量开始爆发性增长,达到TB甚至PB级别。例如,淘宝网平常每天的商品交易数据约20TB(1TB=1024GB),全球最大设计平台Facebook的用户,每天产生的日志数据超过了300TB(日志数据是记录用户操作记录的,并非发帖内容)。大数据如此庞大的数据量,是无法通过人工处理的。需要智能的算法、强大的数据处理平台和新的数据处理技术来处理这些大数据。
2、多样性(Varity) 大数据广泛的数据来源,决定了大数据形式的多样性。大数据大体上可以分为三类,分别是结构化数据、非结构化的数据、半结构化数据。结构化数的特点是数据间因果关系强,比如息管理系统数据、医疗系统数据等;非结构化的数据的特点是数据间没有因果关系,比如音频、图片、视频等;半结构化数据的特点是数据间的因果关系弱。比如网页数据、邮件记录等。
3、高速性(Velocity) 大数据的交换和传播是通过互联网、云计算等方式实现的,远比传统媒介的信息交换和传播速度快捷。大数据与海量数据的重要区别,除了大数据的数据规模更大以外,大数据对处理数据的响应速度有更严格的要求。实时分析而非批量分析,数据输入、处理与丢弃立刻见效,几乎无延迟。数据的增长速度和处理速度是大数据高速性的重要体现。
4、价值性(Value) 价值性是大数据的核心特点。现实中大量的数据是无效或者低价值的,大数据最大的价值在于通过从大量不相关的各种类型的数据中,挖掘出对未来趋势与模式预测分析有价值的数据。比如,某宝电商平台每天产生的大量交易数据(大数据),通过一些算法可以分析出具有某些特征的人喜欢什么类型的商品,然后根据客户的特征,给其推荐TA喜欢的商品。
软件
1.Docker Compose是一个用来帮助定义和分享多容器应用的工具。有了Compose,就能创建一个YAML文件来定义服务,只需要一个命令,就能够启动所有东西,也能够把所有东西销毁掉。
2.Zeppelin是一个基于Web的notebook,提供交互数据分析和可视化。后台支持接入多种数据处理引擎,如Spark,Hive等。支持多种语言:Scala(Apache Spark)、Python(Apache Spark)、SparkSQL、 Hive、 Markdown、Shell等。
3.Hadoop是由java语言编写的,在分布式服务器集群上存储海量数据并运行分布式分析应用的开源框架,其核心部件是HDFS与MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
4.Hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,可以存储、查询和分析存储在Hadoop中的大规模数据的机制。
5.Hbase其实是Hadoop database的简称,是一种NoSQL数据库,主要适用于海量明细数据(十亿、百亿)的随机实时查询,如日志明细、交易清单、轨迹行为等。
tips: Hive适合用来对一段时间内的数据进行分析查询。适合用来进行大数据的实时查询。
6.Spark是一种基于内存的快速、通用、可扩展的大数据计算引擎。它集批处理、实时流处理、交互式查询、图计算与机器学习于一体。
tips: Spark是那么一个专门用来对那些分布式存储的大数据进行处理的工具,它要借助Hadoop HDFS的数据存储。Hadoop的MapReduce是分步对数据进行处理的,存取磁盘的过程会影响处理速度。Spark从磁盘中读取数据,把中间数据放到内存中,完成所有必须的分析处理,将结果写回集群,所以Spark更快。所以Hadoop + Spack结合起来用更好。
7.JupyterLab是一个集 Jupyter Notebook、文本编辑器、终端以及各种个性化组件(有VScode内味了)于一体的全能IDE。
8.prestoDB是一种开源的分布式 SQL 查询引擎,从头开始设计用于针对任何规模的数据进行快速分析查询。它既可支持非关系数据源,例如 Hadoop 分布式文件系统 (HDFS)、Amazon S3、Cassandra、MongoDB 和 HBase,又可支持关系数据源,例如 MySQL、PostgreSQL、Amazon Redshift、Microsoft SQL Server 和 Teradata。
9.TensorFlow是一个端到端开源机器学习平台。它拥有一个全面而灵活的生态系统,其中包含各种工具、库和社区资源,可助力研究人员推动先进机器学习技术的发展,并使开发者能够轻松地构建和部署由机器学习提供支持的应用。
四、主流的大数据架构Lambda
Lambda架构是其根据多年进行分布式大数据系统的经验总结提炼而成,目标是设计出一个能满足实时大数据系统关键特性的架构,包括有:高容错、低延时和可扩展等。Lambda架构整合离线计算和实时计算,融合不可变性(Immunability),读写分离和复杂性隔离等一系列架构原则,可集成Hadoop,Kafka,Storm,Spark,Hbase等各类大数据组件。
1、Batch View预运算查询函数,预先建立索引,支持随机读取,能很好的解决特别大级别的数据且还需要支持实时查询,要消耗非常庞大的资源的问题。
2、Batch Layer执行的是批量处理,例如Hadoop或者Spark支持的Map-Reduce方式。利用Batch Layer进行预运算的作用实际上就是将大数据变小,从而有效地利用资源,改善实时查询的性能。
3、Serving Layer是一个专用的分布式数据库。Batch Layer通过对master dataset执行查询获得了batch view,而Serving Layer就要负责对batch view进行操作,从而为最终的实时查询提供支撑。
4、Speed Layer对更新到Serving layer带来的高延迟的一种补充,它是一种增量的计算,而非重新运算。Speed layer与Batch layer非常相似,它们之间最大的区别是前者只处理最近的数据,后者则要处理所有的数据。
作者:李丹
分享此文一切功德,皆悉回向给文章原作者及众读者.
免责声明:蓝蓝设计尊重原作者,文章的版权归原作者。如涉及版权问题,请及时与我们取得联系,我们立即更正或删除。
蓝蓝设计( www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 、平面设计服务、UI设计公司、界面设计公司、UI设计服务公司、数据可视化设计公司、UI交互设计公司、高端网站设计公司、UI咨询、用户体验公司、软件界面设计公司