{eval=Array;=+count(Array);}
近几年,大数据的概念逐渐深入人心,大数据的趋势越来越火爆。但是,大数据到底是个啥?怎么样才能玩好大数据呢?
大数据的基本含义就是海量数据,麦肯锡全球研究所给出的定义是:一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征。
数字经济的要素之一就是大数据资源,现在大家聊得最多的大数据是基于已经存在的大数据的应用开发。
如今,大数据技术已应用在各行各业。小麦举个例子,讲述一下最贴近我们生活的民生服务是如何运用大数据。
最近电视新闻提及到的“一网统管”精准救助场景,传统的救助方式往往通过困难家庭申请、审核、审批等多项程序,遇到需要跨部门、跨层级、跨街区协调解决的个案,还需要召开各级协调会的形式协商解决。
现在通过“精准救助”的方式,民政部门在平时的摸排中了解情况,将相关信息录入到“一网统管”数据中心,再根据数据模型识别出需要协助的家庭,随后形成走访工单派发给社工对其进行帮扶,从而提升救助的效率,做到雪中送炭。
在数字化政府改造之前,每个部门只掌握各自分管的数据,形成“信息孤岛”;有了大数据分析平台后,所有的数据信息,便打通了“任督二脉”。
政府可以充分利用大数据技术打造“一网统管”精准救助场景,极大提升了社会救助的科学性和精准性,让城市变得更加温暖。
就以悟空问答为例说说大数据的故事。以下说的数字都不是真实的,都是我的假设。
比如每天都有1亿的用户在悟空问答上回答问题或者阅读问答。
假设平均有1000万的用户每天回答一个问题。一个问题平均有1000的字, 平均一个汉字占2个字节byte,三张图片, 平均一帐图片300KB。那么一天的数据量就是:
文字总量:10,000,000 * 1,000 * 2 B = 20 GB
图片总量: 10,000,000 * 3 * 300KB = 9 TB
为了收集用户行为,所有的进出悟空问答页面的用户。点击,查询,停留,点赞,转发,收藏都会产生一条记录存储下来。这个量级更大。
所以粗略估计一天20TB的数据量. 一般的PC电脑配置大概1TB,一天就需要20台PC的存储。
如果一个月的,一年的数据可以算一下有多少。传统的数据库系统在量上就很难做到。
另外这些数据都是文档类型的数据。需要各种不同的存储系统支持,比如NoSQL数据库。
需要分布式数据存储,比如Hadoop的HDFS。
上述1000万个答案,会有1亿的人阅读。提供服务的系统成百上千。这些数据需要在网上各个系统间来回传播。需要消息系统比如Kafka。
同时在线的用户量在高峰时可能达到几千万。如此高的访问量需要数前台服务器同时提供一致的服务。为了给用户提供秒级的服务体现,需要加缓存系统比如redis。
所有的内容包括图片都会还用来机器学习的分析,从而得到每个用户的喜好,给用户推荐合适的内容和广告。还有如此大量的数据,必须实时的分析,审核,审核通过才能发布,人工审核肯定做不到,必须利用机器来智能分析,需要模式识别,机器学习,深度学习。实时计算需要Spark,Flink等流式计算技术。
几千台服务器,协同工作。网络和硬件会经常出问题。这么多的资源能够得到有效利用需要利用云计算技术,K8S等容器管理工具。还需要分布式系统的可靠性和容灾技术。
本人,@小马过河Vizit,专注于分布式系统原理和实践分享。希望利用动画生动而又准确的演示抽象的原理。欢迎关注。
关于我的名字。小马过河Vizit,意为凡事像小马过河一样,需要自己亲自尝试,探索才能获得乐趣和新知。Vizit是指Visualize it的缩写。一图胜千言,希望可以利用动画来可视化一些抽象的原理。
这是我通常与想要了解大数据的人进行对话:
问:什么是大数据?
答:大数据是描述庞大数据的术语。
问:现在,大数据有多大?
答:如此庞大,以至于无法用常规工具处理?
问:通常的工具是什么意思?
答:普通文件系统,数据库等工具。
所有这些大数据工具都有一个共同的特性:分布式计算。
因此,大数据是一个通常只能通过分布式的工具才能解决的问题。我知道这些天,每个人都在尝试将他们的BI(商业情报)工具描绘成大数据工具,但不要被喧闹声所欺骗。
问:哪些典型的大数据问题?
答:请考虑以下几点:
1,如何建立存储和保存500 TB电影/视频/文字的存储?
2,一台机器实际读取500 TB会花费多少时间?
3,如何建立可以存储数百万列和数十亿行数据而不会像乌龟一样慢的数据存储?
4,如何提供每秒数百万的读写?
5,如何解决真正复杂的问题?还记得时间的复杂性吗?想象一下,电子邮件哦公司,必须每秒钟来自不同用户30GB 电子邮件自动分类为5个类别(比如是否垃圾邮件),
或判断数百万个网站的内容,您必须准备网站名称的层次树,以使两个同级彼此非常相似。这种问题称为分类。
它们比通常的数据排序更为复杂。
随着数据的进一步增长,这些问题变得非常不可能解决。
解决此类问题需要巨大的计算能力-就RAM,CPU,磁盘读取速度而言。
问:大数据有什么用?
答:如果规模巨大,几乎每个业务计算问题都可以转换为大数据问题。
大数据是对海量数据进行存储、计算、统计、分析处理的一系列处理手段,处理的数据量通常是TB级,甚至是PB或EB级的数据,这是传统数据处理手段所无法完成的,其涉及的技术有分布式计算、高并发处理、高可用处理、集群、实时性计算等,汇集了当前IT领域热门流行的IT技术。
1、大数据的概念:大数据(big data),IT行业术语,是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低的四大特征。
大数据的5V特点(IBM提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。
2、大数据有哪些技术:
基础:
a、linux的操作和shell编程
b、zookeeper分布式系统的协调服务
c、redis内存数据库
d、java的并发包编程:反射、socket编程、NIO、netty、RPC、jvm
离线:
a、hdfs分布式文件系统
b、mapreduce 分布式运算框架
c、hive数据仓库工具
d、hbase nosql数据库
e、离线辅助工具 flume、sqoop、azkaban
实时流式计算
a、storm
b、kafka
内存计算
spark(spark-core、spark-sql、spark-streaming、spark-mllib)
实时计算
flink
编程语言
java、scala、python(根据自己掌握的情况选择)
最近新接触的技术(都是数据库)
druid、doris、kudu
大数据 big data 国标定义:
支持一个或多个应用领域,按概念结构组织的数据集合,其概念结构描述这些数据的特征及其对
应实体间的联系。具有数量巨大、种类多样、流动速度快、特征多变等特征,并且难以用传统数据体
系结构和数据处理技术进行有效组织、存储、计算、分析和管理的数据集。
[来源:GB/T 35274-2017,定义3.1]
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业务实践中创造性的提出论文作为基础,业务的成长和需求,迫使技术不断更新换代。所以业务是技术不断发展的关键。
大数据技术可以定义为一种软件应用程序,旨在分析,处理和提取来自极其复杂的大型数据信息,而传统数据处理软件则无法处理。
我们需要大数据处理技术来分析大量实时数据,并提出预测和方案以减少未来的风险。
在类别中的大数据技术分为两大类型:
1.运营大数据技术
2.分析大数据技术
首先,运营大数据与我们生成的常规日常数据有关。这可能是在线交易,社交媒体或特定 组织的数据等。
运营大数据技术的一些示例如下:
·网上订票,其中包括您的火车票,飞机票,电影票等。
·在线购物是您的淘宝,京东交易等等。
·来自社交媒体网站(如微信,QQ等)的数据。
·任何跨国公司的员工详细信息。
其次,分析性大数据就像大数据技术的高级版本一样。它比运营大数据要复杂一些。简而言之,分析性大数据是实际绩效的组成部分,而关键的实时业务决策是通过分析运营大数据来制定的。
分析大数据技术的几个示例如下:
·股票行销
·进行太空任务,其中任何信息都是至关重要的。
·天气预报信息。
·可以监视特定患者健康状况的医学领域。
投资者眼里是金光闪闪的两个字:资产。
比如,Facebook上市时,评估机构评定的有效资产中大部分都是其社交网站上的数据。
很多初学者,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展?
如果把大数据比作一种产业,那么这种产业实现盈利的关键,在于提高对数据的“加工能力”,通过“加工”实现数据的“增值”。
Target 超市以20多种怀孕期间孕妇可能会购买的商品为基础,将所有用户的购买记录作为数据来源,通过构建模型分析购买者的行为相关性,能准确的推断出孕妇的具体临盆时间,这样Target的销售部门就可以有针对的在每个怀孕顾客的不同阶段寄送相应的产品优惠卷。
Target的例子是一个很典型的案例,这样印证了维克托·迈尔-舍恩伯格提过的一个很有指导意义的观点:通过找出一个关联物并监控它,就可以预测未来。
Target通过监测购买者购买商品的时间和品种来准确预测顾客的孕期,这就是对数据的二次利用的典型案例。如果,我们通过采集驾驶员手机的GPS数据,就可以分析出当前哪些道路正在堵车,并可以及时发布道路交通提醒;通过采集汽车的GPS位置数据,就可以分析城市的哪些区域停车较多,这也代表该区域有着较为活跃的人群,这些分析数据适合卖给广告投放商。不管大数据的核心价值是不是预测,但是基于大数据形成决策的模式已经为不少的企业带来了盈利和声誉。
简单说有三大核心技术:拿数据,算数据,卖数据。
一、数据采集与预处理
对于各种来源的数据,包括移动互联网数据、社交网络的数据等,这些结构化和非结构化的海量数据是零散的,也就是所谓的数据孤岛,此时的这些数据并没有什么意义,数据采集就是将这些数据写入数据仓库中,把零散的数据整合在一起,对这些数据综合起来进行分析。
二、数据存储
Hadoop作为一个开源的框架,专为离线和大规模数据分析而设计,HDFS作为其核心的存储引擎,已被广泛用于数据存储。
HBase,是一个分布式的、面向列的开源数据库,可以认为是hdfs的封装,本质是数据存储、NoSQL数据库。
Phoenix,相当于一个Java中间件,帮助开发工程师能够像使用JDBC访问关系型数据库一样访问NoSQL数据库HBase。
三、数据清洗
MapReduce作为Hadoop的查询引擎,用于大规模数据集的并行计算,”Map(映射)”和”Reduce(归约)”,是它的主要思想。它极大的方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统中。
随着业务数据量的增多,需要进行训练和清洗的数据会变得越来越复杂,这个时候就需要任务调度系统,比如oozie或者azkaban,对关键任务进行调度和监控。
四、数据查询分析
Hive的核心工作就是把SQL语句翻译成MR程序,可以将结构化的数据映射为一张数据库表,并提供 HQL(Hive SQL)查询功能。Hive本身不存储和计算数据,它完全依赖于HDFS和MapReduce。可以将Hive理解为一个客户端工具,将SQL操作转换为相应的MapReduce jobs,然后在hadoop上面运行。Hive支持标准的SQL语法,免去了用户编写MapReduce程序的过程,它的出现可以让那些精通SQL技能、但是不熟悉MapReduce 、编程能力较弱与不擅长Java语言的用户能够在HDFS大规模数据集上很方便地利用SQL 语言查询、汇总、分析数据。
五、数据可视化
对接一些BI平台,将分析得到的数据进行可视化,用于指导决策服务。主流的BI平台比如,国外的敏捷BI Tableau、Qlikview、PowrerBI等,国内的SmallBI和新兴的网易有数等。
在上面的每一个阶段,保障数据的安全是不可忽视的问题。
我有幸做了有五六七八年的大数据吧,谈谈自己的看法。简单来说,就是现在各个APP,网站产生的数据越来越多,越来越大,传统的数据库比如MySQL Oracle之类的,已经处理不过来了。所以就产生了大数据相关的技术来处理这些庞大的数据。
第一,首先要把这些大数据都可靠的存储起来,经过多年的发展,hdfs已经成了一个数据存储的标准。
第二,既然有了这么多的数据,我们可以开始基于这些数据做计算了,于是从最早的MapReduce到后来的hive,spark,都是做批处理的。
第三, 由于像hive这些基于MapReduce的引擎处理速度过慢,于是有了基于内存的olap查询引擎,比如impala,presto。
第四,由于批处理一般都是天级别或者小时级别的,为了更快的处理数据,于是有了spark streaming或者flink这样的流处理引擎。
第五,由于没有一个软件能覆盖住所有场景。所以针对不同的领域,有了一些特有的软件,来解决特定场景下的问题,比如基于时间序列的聚合分析查询数据库,inflexdb opentsdb等。采用预聚合数据以提高查询的druid或者kylin等,
第六,还有其他用于数据削峰和消费订阅的消息队列,比如kafka和其他各种mq
第七,还有一些其他的组件,比如用于资源管理的yarn,协调一致性的zookeeper等。
第八,由于hdfs 处理小文件问题不太好,还有为了解决大数据update和insert等问题,引入了数据湖的概念,比如hudi,iceberg等等。
第九,业务方面,我们基于大数据做一些计算,给公司的运营提供数据支撑。做一些推荐,给用户做个性化推荐。机器学习,报警监控等等。
附一张大数据技术图谱,从网上找的
10
回答0
回答0
回答10
回答0
回答10
回答0
回答0
回答0
回答0
回答