从0开始学大数据(一)

预习 01 | 大数据技术发展史:大数据的前世今生

我们常说的大数据技术,其实起源于 Google 在 2004 年前后发表的三篇论文,也就是我们经常听到的“三驾马车”,分别是分布式文件系统 GFS、大数据分布式计算框架 MapReduce 和 NoSQL 数据库系统 BigTable

搜索引擎主要就做两件事情,一个是网页抓取,一个是索引构建,而在这个过程中,有大量的数据需要存储和计算。这“三驾马车”其实就是用来解决这个问题的,你从介绍中也能看出来,一个文件系统、一个计算框架、一个数据库系统。

那个时间段,大多数公司的关注点其实还是聚焦在单机上,在思考如何提升单机的性能,寻找更贵更好的服务器。而 Google 的思路是部署一个大规模的服务器集群,通过分布式的方式将海量数据存储在这个集群上,然后利用集群上的所有机器进行数据计算。 这样,Google 其实不需要买很多很贵的服务器,它只要把这些普通的机器组织到一起,就非常厉害了

大数据生态体系逐渐形成,其中包括:专门将关系数据库中的数据导入导出到 Hadoop 平台的 Sqoop;针对大规模日志进行分布式收集、聚合和传输的 Flume;MapReduce 工作流调度引擎 Oozie 等。在 Hadoop 早期,MapReduce 既是一个执行引擎,又是一个资源调度框架,服务器集群的资源调度管理由 MapReduce 自己完成。但是这样不利于资源复用,也使得 MapReduce 非常臃肿。于是一个新项目启动了,将 MapReduce 执行引擎和资源调度分离开来,这就是 Yarn。2012 年,Yarn 成为一个独立的项目开始运营,随后被各类大数据产品支持,成为大数据平台上最主流的资源调度系统。

一般说来,像 MapReduce、Spark 这类计算框架处理的业务场景都被称作批处理计算,因为它们通常针对以“天”为单位产生的数据进行一次计算,然后得到需要的结果,这中间计算需要花费的时间大概是几十分钟甚至更长的时间。因为计算的数据是非在线得到的实时数据,而是历史数据,所以这类计算也被称为大数据离线计算。

而在大数据领域,还有另外一类应用场景,它们需要对实时产生的大量数据进行即时计算,比如对于遍布城市的监控摄像头进行人脸识别和嫌犯追踪。这类计算称为大数据流计算,相应地,有 Storm、Flink、Spark Streaming 等流计算框架来满足此类大数据应用的场景。 流式计算要处理的数据是实时在线产生的数据,所以这类计算也被称为大数据实时计算。

在典型的大数据的业务场景下,数据业务最通用的做法是,采用批处理的技术处理历史全量数据,采用流式计算处理实时新增数据。而像 Flink 这样的计算引擎,可以同时支持流式计算和批处理计算。

除了大数据批处理和流处理,NoSQL 系统处理的主要也是大规模海量数据的存储与访问,所以也被归为大数据技术。 NoSQL 曾经在 2011 年左右非常火爆,涌现出 HBase、Cassandra 等许多优秀的产品,其中 HBase 是从 Hadoop 中分离出来的、基于 HDFS 的 NoSQL 系统。

这些基本上都可以归类为大数据引擎或者大数据框架。而大数据处理的主要应用场景包括数据分析、数据挖掘与机器学习。数据分析主要使用 Hive、Spark SQL 等 SQL 引擎完成;数据挖掘与机器学习则有专门的机器学习框架 TensorFlow、Mahout 以及 MLlib 等,内置了主要的机器学习和数据挖掘算法

大数据要存入分布式文件系统(HDFS),要有序调度 MapReduce 和 Spark 作业执行,并能把执行结果写入到各个应用系统的数据库中,还需要有一个大数据平台整合所有这些大数据组件和企业应用系统。

从0开始学大数据(一)_第1张图片

 

 

预习 02 | 大数据应用发展史:从搜索引擎到人工智能

大数据应用的搜索引擎时代

作为全球最大的搜索引擎公司,Google 也是我们公认的大数据鼻祖,它存储着全世界几乎所有可访问的网页,数目可能超过万亿规模,全部存储起来大约需要数万块磁盘。为了将这些文件存储起来,Google 开发了 GFS(Google 文件系统),将数千台服务器上的数万块磁盘统一管理起来,然后当作一个文件系统,统一存储所有这些网页文件。你可能会觉得,如果只是简单地将所有网页存储起来,好像也没什么太了不起的。没错,但是 Google 得到这些网页文件是要构建搜索引擎,需要对所有文件中的单词进行词频统计,然后根据 PageRank 算法计算网页排名。这中间,Google 需要对这数万块磁盘上的文件进行计算处理,这听上去就很了不起了吧。当然,也正是基于这些需求,Google 又开发了 MapReduce 大数据计算框架。

大数据应用的数据仓库时代

曾经我们在进行数据分析与统计时,仅仅局限于数据库,在数据库的计算环境中对数据库中的数据表进行统计分析。并且受数据量和计算能力的限制,我们只能对最重要的数据进行统计和分析。这里所谓最重要的数据,通常指的都是给老板看的数据和财务相关的数据。而 Hive 可以在 Hadoop 上进行 SQL 操作,实现数据统计与分析。也就是说,我们可以用更低廉的价格获得比以往多得多的数据存储与计算能力。我们可以把运行日志、应用采集数据、数据库数据放到一起进行计算分析,获得以前无法得到的数据结果,企业的数据仓库也随之呈指数级膨胀。

在数据仓库时代,只要有数据,几乎就一定要进行统计分析,如果数据规模比较大,我们就会想到要用 Hadoop 大数据技术,这也是 Hadoop 在这个时期发展特别快的一个原因。技术的发展同时又促进了技术应用,这也为接下来大数据应用走进数据挖掘时代埋下伏笔。

大数据应用的数据挖掘时代

大数据一旦进入更多的企业,我们就会对大数据提出更多期望,除了数据统计,我们还希望发掘出更多数据的价值,大数据随之进入数据挖掘时代。讲个真实的案例,很早以前商家就通过数据发现,买尿不湿的人通常也会买啤酒,于是精明的商家就把这两样商品放在一起,以促进销售。啤酒和尿不湿的关系,你可以有各种解读,但是如果不是通过数据挖掘,可能打破脑袋也想不出它们之间会有关系。在商业环境中,如何解读这种关系并不重要,重要的是它们之间只要存在关联,就可以进行关联分析,最终目的是让用户尽可能看到想购买的商品。除了商品和商品有关系,还可以利用人和人之间的关系推荐商品。如果两个人购买的商品有很多都是类似甚至相同的,不管这两个人天南海北相隔多远,他们一定有某种关系,比如可能有差不多的教育背景、经济收入、兴趣爱好。根据这种关系,可以进行关联推荐,让他们看到自己感兴趣的商品。

大数据应用的机器学习时代

们很早就发现,数据中蕴藏着规律,这个规律是所有数据都遵循的,过去发生的事情遵循这个规律,将来要发生的事情也遵循这个规律。一旦找到了这个规律,对于正在发生的事情,就可以按照这个规律进行预测。在过去,我们受数据采集、存储、计算能力的限制,只能通过抽样的方式获取小部分数据,无法得到完整的、全局的、细节的规律。而现在有了大数据,可以把全部的历史数据都收集起来,统计其规律,进而预测正在发生的事情。这就是机器学习。

将人类活动产生的数据,通过机器学习得到统计规律,进而可以模拟人的行为,使机器表现出人类特有的智能,这就是人工智能 AI。

 

大数据从搜索引擎到机器学习,发展思路其实是一脉相承的,就是想发现数据中的规律并为我们所用。所以很多人把数据称作金矿,大数据应用就是从这座蕴含知识宝藏的金矿中发掘中有商业价值的真金白银出来。数据中蕴藏着价值已经是众所周知的事情了,那么如何从这些庞大的数据中发掘出我们想要的知识价值,这正是大数据技术目前正在解决的事情,包括大数据存储与计算,也包括大数据分析、挖掘、机器学习等应用。

预习 03 | 大数据应用领域:数据驱动一切

大数据能做什么:典型的应用场景分析

大数据在医疗健康领域的应用

健康医疗领域是最近几年获得最多创业者和投资人青睐的大数据领域。为什么这么说呢?首先,医疗健康领域会产生大量的数据;其次,医疗健康领域有一个万亿级的市场规模;最关键的是,医疗健康领域里很多工作依赖人的经验,而这正是机器学习的强项。

1. 医学影像智能识别

图像识别是机器学习获得的重大突破之一,使用大量的图片数据进行深度机器学习训练,机器可以识别出特定的图像元素,比如猫或者人脸,当然也可以识别出病理特征。比如 X 光片里的异常病灶位置,是可以通过机器学习智能识别出来的。甚至可以说医学影像智能识别在某些方面已经比一般医生拥有更高的读图和识别能力,但是鉴于医疗的严肃性,现在还很少有临床方面的实践。虽然在临床实践方面应用有限,但是医疗影像 AI 还是在一些领域取得一定的进展。医学影像智能识别,一方面可以帮助医生进行辅助诊疗,另一方面对于皮肤病等有外部表现的病症,病人可以自己拍照然后使用 AI 智能识别做一个初步诊断。

2. 病历大数据智能诊疗

病历,特别是专家写的病历,本身就是一笔巨大的知识财富,利用大数据技术将这些知识进行处理、分析、统计、 挖掘,可以构成一个病历知识库,可以分享给更多人,即构成一个智能辅助诊疗系统。 下面这张图是我(李智慧)曾经参与设计过的一个医疗辅助诊疗系统的架构。

从0开始学大数据(一)_第2张图片

针对同类疾病和其他上下文信息(化验结果、病史、年龄性别、病人回访信息等)可以挖掘出针对同样的疾病情况,哪种治疗手段可以用更低的治疗成本、更少的病人痛苦,获得更好的治疗效果。从上面的架构图你能看到,将这些病历知识和循证医学知识、科研文献知识、用药知识共同构成一个辅助诊疗知识库, 通过知识匹配搜索引擎可以对外提供服务。患者或者医生录入病史、检查结果等信息,系统匹配初步诊断结果,搜索诊疗计划,产生多个辅助诊疗建议,供患者和医生进行参考。

大数据在教育领域的应用

教育倡导“因人施教”,但是在传统教育过程中要做到因人施教,需要老师本身能力很强才能把握好。但是大数据在线教育利用大数据技术进行分析统计,完全可以做到根据学生能力和学习节奏,及时调整学习大纲和学习进度,提供个性化和自适应的学习体验。除此之外,人工智能在教育的其他方面也取得很好的进展。

1. AI 外语老师

得益于语音识别和语音合成技术的成熟(语音识别与合成技术同样是利用大数据技术进行机器学习与训练),一些在线教育网站尝试用人工智能外语老师进行外语教学。这里面的原理其实并不复杂,聊天机器人技术已经普遍应用,只要将学习的知识点设计进聊天的过程中,就可以实现一个简单的 AI 外语老师了。

2. 智能解题

比较简单的智能解题系统其实是利用搜索引擎技术,在收集大量的试题以及答案的基础上,进行试题匹配,将匹配成功的答案返回。这个过程看起来就像智能做题一样,表面看给个题目就能解出答案,而实际上只是找到答案。进阶一点的智能解题系统,通过图像识别与自然语言处理(这两项技术依然使用大数据技术实现),进行相似性匹配。更改试题的部分数字、文字表述,但是不影响实质性解答思路,依然可以解答。高阶的智能解题系统,利用神经网络机器学习技术,将试题的自然语言描述转化成形式语言,然后分析知识点和解题策略,进行自动推导,从而完成实质性的解题。

大数据在社交媒体领域的应用

大数据有一个重要的、和我们大多数人密切相关,但是又不太引人注目的一个应用领域是舆情监控与分析。我们日常在各种互联网应用和社交媒体上发表各种言论,这些言论事实上反映了最准确的民情舆论。一个个体的言论基本没有意义,但是大量的、全国乃至全球的言论数据表现出的统计特性,就有了非常重要的意义。编写数据爬虫,实时爬取各个社交新媒体上的各种用户内容和媒体信息,然后通过自然语言处理,就可以进行情感分析、热点事件追踪等。舆情实时监控可用于商业领域,引导智能广告投放;可用于金融领域,辅助执行自动化股票、期权、数字货币交易;可用于社会管理,及时发现可能引发社会问题的舆论倾向。

在美国总统大选期间,候选人就曾雇佣大数据公司利用社交媒体的数据进行分析,发现选票可能摇摆的地区,有针对性前去进行竞选演讲。并利用大数据分析选民关注的话题,包装自己的竞选主张。Facebook 也因为授权大数据公司滥用自己用户的数据而遭到调查和谴责,市值蒸发了数百亿美元。

大数据在金融领域的应用

大数据在金融领域应用比较成熟的是大数据风控。在金融借贷中,如何识别出高风险用户,要求其提供更多抵押、支付更高利息、调整更低的额度,甚至拒绝贷款,从而降低金融机构的风险?事实上,金融行业已经沉淀了大量的历史数据,利用这些数据进行计算,可以得到用户特征和风险指数的曲线(即风控模型)。当新用户申请贷款的时候,将该用户特征带入曲线进行计算,就可以得到该用户的风险指数,进而自动给出该用户的贷款策略。

利用股票、外汇等历史交易记录,分析交易规律,结合当前的新闻热点、舆论倾向、财经数据构建交易模型,进行自动化交易,这就是金融领域的量化交易。这些数据量特别巨大,交易涉及金额也同样巨大,所以金融机构在大数据领域常常不惜血本,大手笔投入。

大数据在新零售领域的应用

区别于传统零售,新零售使用大数据进行全链路管理。从生产、物流、购物体验,使用大数据进行分析和预判,实现精准生产、零库存、全新的购物体验。亚马逊 Go 无人店使用大量的摄像头,实时捕捉用户行为,判断用户取出还是放回商品、取了何种商品等。这实际上是大数据流计算与机器学习的结合,最终实现的购物效果是,无需排队买单,进去就拿东西,拿好了就走,超级科幻有没有。虽然无人店现在看起来噱头的意味更多一点,但是利用大数据技术提升购物体验、节省商家人力成本一定是正确的方向。

大数据在交通领域的应用

交通也是一个对大数据实时采集与处理应用比较广的领域。现在几乎所有的城市路段、交通要点都有不止一个监控摄像头在实时监控,一线城市大约有百万计的摄像头在不停地采集数据。这些数据一方面可以用于公共安全,比如近年来一些警匪片里会有一些场景:犯罪嫌疑人驾车出逃,警方只要定位了车辆,不管它到哪里,系统都可以自动调出相应的摄像头,实时看到现场画面。应该说这项技术已经成熟,大数据流计算可以对百万计的流数据实时处理计算,电影里的场景计算其实并不复杂。此外,各种导航软件也在不停采集数据,通过分析用户当前位置和移动速度,判断道路拥堵状态,并实时修改推荐的导航路径。你如果经常开车或者打车,对这些技术一定深有体会。

还有就是无人驾驶技术,无人驾驶就是在人的驾驶过程中实时采集车辆周边数据和驾驶控制信息,然后通过机器学习,获得周边信息与驾驶方式的对应关系(自动驾驶模型)。然后将这个模型应用到无人驾驶汽车上,传感器获得车辆周边数据后,就可以通过自动驾驶模型计算出车辆控制信息(转向、刹车等)。计算自动驾驶模型需要大量的数据,所以我们看到,这些无人驾驶创业公司都在不断攀比自己的训练数据有几十万公里、几百万公里,因为训练数据的量意味着模型的完善程度。

 

利用大数据和机器学习,发掘数据中的规律,进而对当前的事情做出预测和判断,使机器表现出智能的特性,正变得越来越普及。大数据主要来自企业自身所产生,还有一些数据来自互联网,通过网络爬虫可以获取;再有就是公共数据,比如气象数据等。所有这些数据汇聚在一起,计算其内在的关系,可以发现很多肉眼和思维无法得到的知识。然后进一步计算其内在的模型,可以使系统获得智能的特性。当系统具备智能的特性,可以使机器对当前的事情做出预测和判断,正如我今天和你聊的,大数据技术应用正变得越来越普及。

 

 

 

 

你可能感兴趣的:(大数据)