资源描述
第一章数据与大数据时代1.1从数据到大数据1.2大数据的概念1.3大数据思维1.5大数据处理流程数据科学与大数据技术导论of3811.6大数据应用1.4数据科学的内涵1.1 从数据到大数据第一章数据和大数据时代of3821数据及数据的作用知识金字塔DIKW数据:原始素材,客观事物性质或状态的描述,文字、图形、图像、视频等类型信息:排序,筛选,公式等加工处理后有逻辑的数据知识:提炼信息之间的联系、行动的能力,完成任务智慧:关心未来,具有预测的能力1.1 从数据到大数据第一章数据和大数据时代of3831数据及数据的作用数据的作用:志愿填报历年、各省、文理科、各专业分数线历年高校各专业分数线、线上、线下、位次、最高、最低、平均等;历年、各高校、各专业在各省的招生人数三年或五年高校招生趋势:位次变化、均值变化、最值变化、招生人数变化等。志愿填报规则从知识中,发现规律,做出决策,填报志愿:可能出现2种情况:如愿或失意,体现智慧1.1 从数据到大数据of384来自大量传感器的机器数据科学研究及行业多结构专业数据来自“大人群”泛互联网数据智能终端拍照、拍视频发微博、发微信其他互联网数据2.海量的数据的产生随着人类活动的进一步扩展,数据规模会急剧膨胀,包括金融、汽车、零售、餐饮、电信、能源、政务、医疗、体育、娱乐等在内的各行业累积的数据量越来越大,数据类型也越来越多、越来越复杂,已经超越了传统数据管理系统、处理模式的能力范围,于是“大数据”时代到来。第一章数据和大数据时代of38512008年9月,美国自然(Nature)杂志专刊Thenextgoogle,第一次正式提出“大数据”概念。22011年2月1日,科学(Science)杂志专刊Dealingwithdata,通过社会调查的方式,第一次综合分析了大数据对人们生活造成的影响,详细描述了人类面临的“数据困境”。32011年5月,麦肯锡研究院发布报告Bigdata:Thenextfrontierforinnovation,competition,andproductivity,第一次给大数据做出相对清晰的定义:“大数据是指其大小超出了常规数据库工具获取、储存、管理和分析能力的数据集。”“数据”变身“大数据”,“开启了一次重大的时代转型”。“大数据”这一概念的形成,有三个标志性事件3大数据的到来第一章数据和大数据时代1.1 从数据到大数据大数据数据源整合进行存储、清洗、挖掘、分析后得出结果直到优化企业管理提高效率云计算、硬件性价比的提高以及软件技术的进步智能设备、传感器的普及,推动物联网、人工智能的发展计算力 运行、计算速度越来越快存储 存储成本下降 存储容量增加 智能分析实现信息对等解放脑力,机器拥有人的智慧of386(1)大数据的技术支撑1.1 从数据到大数据第一章数据和大数据时代of387存储:存储成本的下降云计算出现之前云计算出现之后云计算出现前,数据存储成本是非常高的。例如,公司要建设网站,需要购置和部署服务器,安排技术人员维护服务器,保证数据存储的安全性和数据传输的畅通性,还会定期清理数据,腾出空间以便存储新的数据,机房整体的人力和管理成本都很高。云计算出现后,数据存储服务衍生出了新的商业模式,数据中心的出现降低了公司的计算和存储成本。例如,公司现在要建设网站,不需要去购买服务器,不需要去雇用技术人员维护服务器,可以通过租用硬件设备的方式解决问题。存储成本的下降,也改变了大家对数据的看法,更加愿意把1年、2年甚至更久远的历史数据保存下来,有了历史数据的沉淀,才可以通过对比,发现数据之间的关联和价值。正是由于存储成本的下降,才能为大数据搭建最好的基础设施。1.1 从数据到大数据第一章数据和大数据时代of388计算力:运算速度越来越快l集中式处理:AI芯片:CPU(Intel)、GPU(NVIDIA)、美国Cerebras的WSE(WaferScaleEngine,世界最大的芯片)l分布式系统基础架构Hadoop的出现,为大数据带来了新的曙光;lHDFS为海量的数据提供了存储;lMapReduce则为海量的数据提供了并行计算,从而大大提高了计算效率;lSpark、Storm、Impala等各种各样的技术进入人们的视野。海量数据从原始数据源到产生价值,期间会经过存储、清洗、挖掘、分析等多个环节,如果计算速度不够快,很多事情是无法实现的。所以,在大数据的发展过程中,计算速度是非常关键的因素第一章数据和大数据时代1.1 从数据到大数据of389智能:机器拥有理解数据的能力大数据带来的最大价值就是“智慧”,大数据让机器变得有智慧,同时人工智能进一步提升了处理和理解数据的能力。例如:谷歌AlphaGo大胜世界围棋冠军李世石阿里云小Ai成功预测出我是歌手的总决赛歌王12iPhone上智能化语音机器人Siri微信上与大家聊天的微软小冰34第一章数据和大数据时代1.1 从数据到大数据of3810美国著名管理学家爱德华戴明所言:“我们信靠上帝。除了上帝,任何人都必须用数据来说话。”(1)有数据可说在大数据时代,“万物皆数”,“量化一切”,“一切都将被数据化”。数据无处不在、无时不有、无人不用,数据就像阳光、空气、水分一样常见。(2)说数据可靠大数据中的“数据”真实可靠。一切事物都存在着时空一致性的同构关系。这意味着任何事物的属性和规律,只要通过适当编码,均可以通过统一的数字信号表达出来。(2)大数据的意义“用数据说话”、“让数据发声”,已成为人类认知世界的一种全新方法。1.1 从数据到大数据第一章数据和大数据时代第一章数据与大数据时代1.1从数据到大数据1.2大数据的概念1.3大数据思维数据科学与大数据技术导论of38111.5大数据处理流程1.6大数据应用1.4数据科学的内涵of38121.大数据的定义第一章数据和大数据时代1.2 大数据的概念麦肯锡(全球管理咨询公司):大小超出典型数据库软件工具收集、存储、管理和分析能力的数据集。百度百科:指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。of38132.大数据的结构第一章数据和大数据时代1.2 大数据的概念国家粮食总产量(亿吨)耕地面积(亿亩)占世界耕地比例(%)中国5.0118.158.06美国3.6329.5513.15印度2.1625.511.32巴西1.3312.95.76加拿大0.5110.24.52澳大利亚0.317.653.45(1)结构化数据)结构化数据结构化数据,也称作行数据,是以先有结构、后有数据先有结构、后有数据的方式生成的数据。特点:数据以行为单位,一行数据表示一个实体信息,每一行数据的属性相同,下表给出了主要农业国粮食产量与耕地情况,它们是结构化数据结构化数据。(2)非结构化数据)非结构化数据非结构化数据是指数数据据结结构构不不规规则则或或不不完完整整、没没有有预预先先定定义义的的数数据据模模型型,很难用关系数据库的二维逻辑表来表现的数据,比如办办公公文文档档、文文本本、图图片片、图图像像和和音音频频/视视频频信息等等都是非结构化数据。of38142.大数据的结构第一章数据和大数据时代1.2 大数据的概念(3)半结构化数据)半结构化数据半结构化数据是介于结构化数据和非结构化数据之间结构化数据和非结构化数据之间的数据。半结构化数据包含相关标记,用来分隔语义元素以及对记录和字段进行分层。因此,也被称为自描述结构自描述结构。半结构化数据中,同一类实体可以有不同属性,而且这些属性的顺序也可不同。XML格式数据JSON格式数据 18.7 75.2 58.8 1703.9 1387.2 1156.2 8104.3部分地区主要作物产量(万吨):北京:小麦:18.7,玉米:75.2,河北:稻谷:58.8,玉米:1703.9,小麦:1387.2,广西:稻谷:1156.2,甘蔗:8104.35 V特征种类多(Variety)速度快(Velocity)价值高(Value)体量大(Volume)大数据与传统数据相比,数据来源广、维度多、类型杂,各种机器仪表在自动产生数据的同时,人自身的生活行为也在不断创造数据;不仅有企业组织内部的业务数据,还有海量相关的外部数据。随着现代感测、互联网、计算机技术的发展,数据生成、储存、分析、处理的速度远远超出人们的想象力,这是大数据区别于传统数据或小数据的显著特征。大数据有巨大的潜在价值,但同其呈几何指数爆发式增长相比,某一对象或模块数据的价值密度较低,这无疑给我们开发海量数据增加了难度和成本。of3815从2013年至2020年,人类的数据规模将扩大50倍,每年产生的数据量从TB转向PB、从PB增长到ZB级别,且每18个月翻一番。真实性(Veracity)3.大数据的5V特征第一章数据和大数据时代1.2 大数据的概念数据的有效性、真实性以及数据提供者信誉值得研究第一章数据与大数据时代1.1从数据到大数据1.2大数据的特征1.3大数据思维数据科学与大数据技术导论of38161.5大数据处理流程1.6大数据应用1.4数据科学的内涵1.3 大数据思维of3817第一章数据和大数据时代 科学界一般认为,科学方法分为实验、理论和计算三大类,与三大科学方法相对的是三大科学思维。p实验科学-实证思维:以实验为基础,以物理学科为代表。p理论科学-理论思维:以推理和演绎为特征,以数学学科为代表。p计算科学-计算思维:以设计和构造为特征,以计算机学科为代表。(1)科学研究的三种方法及思维 计算机科学家计算机科学家吉姆吉姆格雷格雷认为,鉴于数据的爆炸性增长,数据密集范式理应并且已经从第三范式即计算范式中分离出来,成为一个独特的科学研究范式,即“第四范式第四范式”。数据密集型:数据科学数据思维(2)科学发现的第四范式1.数据思维的由来 社会科学研究将面临对传统方法的颠覆性挑战,新的研究范式将会建立,一个社会科学研究的全新时代到来。1.3 大数据思维of3818第一章数据和大数据时代2.大数据时代下的数据思维全样本而非抽样:数据不抽样,而是全部数据互联网、物联网的发展,数据数字化程度大大提高,类型丰富案例:乔布斯与癌症治疗1.3 大数据思维of3819第一章数据和大数据时代重视数据的复杂性,弱化精确性数据结构多样、海量,允许不精确;可用简单方法实现较好的智能。案例:谷歌翻译,数据混杂是关键2.大数据时代下的数据思维1.3 大数据思维of3820第一章数据和大数据时代关注数据的相关性,而非因果关系:是相关关系,不是因果关系。案例大数据背景下,让许多看似毫不相干的现象之间发生一定的关联,使人们能够更简捷、更清晰地认知事物和把握局势,真正的价值所在。(1)啤酒与尿布(2)谷歌与流感2.大数据时代下的数据思维第一章数据与大数据时代1.1从数据到大数据1.2大数据的特征1.3大数据思维数据科学与大数据技术导论of38211.5大数据处理流程1.6大数据应用1.4数据科学的内涵1.4 数据科学的内涵of3822第一章数据和大数据时代1.数据科学的内涵2010年,DrewConway首次明确探讨了数据科学的学科定位问题,是交叉型学科。数据科学家需要掌握三大方面的能力:数学与统计知识、领域实战经验和黑客精神,三个要素知识、实战和精神(黑客精神是“热衷挑战+主张分享+追求创新)1.4 数据科学的内涵of3823第一章数据和大数据时代2.数据科学新解2016年,Gartner在他的博客上用韦恩图重做了数据解决方案,并使其更漂亮和更加基于数据科学。图中“危险区”被替换为“数据工程师”(这种表达被许多科学家认同)第一章数据与大数据时代1.1从数据到大数据1.2大数据的特征1.3大数据思维1.5大数据处理流程数据科学与大数据技术导论of38241.6大数据应用1.4数据科学的内涵1.5 大数据处理流程of3825采 集利用多个数据库来接受传感、利用多个数据库来接受传感、社交、互联网等客户端数据社交、互联网等客户端数据导入/预处理数据清洗和预处理数据清洗和预处理存储/管理利用分布式文件系统和非关系型数据利用分布式文件系统和非关系型数据库管理复杂结构的大数据库管理复杂结构的大数据统计/分析对存储的海量数据进行普通的分析对存储的海量数据进行普通的分析和分类汇总等和分类汇总等数据挖掘与可视化基于各种算法进行计算,基于各种算法进行计算,实现高级数据分析,并实现高级数据分析,并将结果可视化将结果可视化第一章数据和大数据时代1.5 大数据处理流程of3826大数据采集1大数据的采集通常采用多个数据库来接收终端数据,包括智能硬件端、多种传感器端、网页端、移动APP应用端等,并且可以使用数据库进行简单的处理工作。常用的数据采集的方式主要包括以下几种:网页数据抓取01日志采集02APP、物联网传感设备等自动信息采集03第一章数据和大数据时代1.5 大数据处理流程of3827导入/预处理2虽然采集端本身有很多数据库,但是如果要对这些海量数据进行有效的分析,还是应该将这些数据导入到一个集中的大型分布式数据库或者分布式存储集群中。同时,在导入的基础上完成数据清洗和预处理工作。现实世界中数据大体上都是不完整、不一致的“脏”数据,无法直接进行数据挖掘,或挖掘结果差强人意,为了提高数据挖掘的质量,产生了数据预处理技术。数据清理数据集成数据变换数据归约主要是达到数据格式标准化、异常数据清除、数据错误纠正、重复数据的清除等目标。是将多个数据源中的数据结合起来并统一存储,建立数据仓库。过平滑聚集、数据概化、规范化等方式将数据转换成适用于数据挖掘的形式。寻找依赖于发现目标的数据的有用特征,缩减数据规模,最大限度地精简数据量。第一章数据和大数据时代1.5 大数据处理流程of3828存储与管理3针对大数据时代的复杂结构化数据,特别是半结构化数据和非结构化数据的海量存储和分布式存储需求,大数据存储主要采用分布式文件系统、NoSQL数据库以及云存储等技术。第一章数据和大数据时代分布式文件系统:利用集群的存储和运算,实现可靠、可扩展、低成本的存储计算需求。非关系型数据库NoSQL:具备优良的查询性能、灵活性和可用性云存储技术:被优化或部署到一个虚拟计算环境中的数据库,可按需付费、按需扩展等优势。1.5 大数据处理流程of3829 统计与分析4统计与分析主要是利用分布式数据库,或分布式计算集群来对存储于其内的海量数据进行普通的分析和分类汇总,以满足大多数常见的分析需求,在这些方面可以使用R语言。R语言是用于统计分析、绘图的语言和操作环境,属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。R语言在国际和国内的发展差异非常大,国际上R语言已然是专业数据分析领域的标准,但在国内依旧任重而道远,这固然有数据学科地位的原因,国内很多人版权概念薄弱,以及学术领域相对闭塞也是原因。R语言是一套完整的数据处理、计算和制图软件系统。R语言的思想是:它可以提供一些集成的统计工具,但更大量的是它提供各种数学计算、统计计算的函数,从而使使用者能灵活机动地进行数据分析,甚至创造出符合需要的新的统计计算方法。第一章数据和大数据时代1.5 大数据处理流程of3830大数据挖掘5数据挖掘是创建数据挖掘模型的一组试探法和计算方法,通过对提供的数据进行分析,查找特定类型的模式和趋势,最终形成创建模型。分类朴素贝叶斯算法一种重要的数据分析形式,根据重要数据类的特征向量值及其他约束条件,构造分类函数或分类模型,目的是根据数据集的特点把未知类别的样本映射到给定类别中。支持向量机SVM算法AdaBoost算法决策树算法聚类BIRCH算法目的在于将数据集内具有相似特征属性的数据聚集在一起,同一个数据群中的数据特征要尽可能相似,不同的数据群中的数据特征要有明显的区别。K-Means算法期望最大化算法(EM算法)K近邻算法关联规则Apriori算法搜索系统中的所有数据,找出所有能把一组事件或数据项与另一组事件或数据项联系起来的规则,以获得预先未知的和被隐藏的,不能通过数据库的逻辑操作或统计的方法得出的信息。FP-Growth算法预测模型序贯模式挖掘SPMGC算法一种统计或数据挖掘的方法,包括可以在结构化与非结构化数据中使用以确定未来结果的算法和技术,可为预测、优化、预报和模拟等许多业务系统所使用。回归模型第一章数据和大数据时代1.5 大数据处理流程of3831 大数据可视化6第一章数据和大数据时代帮助人们探索和理解可视化的数据,可视化之美。用各种方式展现不同的数据。(1)标签云:文本可视化1.5 大数据处理流程of3832 大数据可视化6第一章数据和大数据时代(2)热图:空间数据可视化用颜色标识密度航线分布1.5 大数据处理流程of3833 大数据可视化6第一章数据和大数据时代(3)图表:数据可视化1.5 大数据处理流程of3834 大数据可视化6(4)仪表盘:综合数据可视化第一章数据和大数据时代第一章数据与大数据时代1.1从数据到大数据1.2大数据的特征1.3大数据思维数据科学与大数据技术导论of38351.6大数据应用1.5大数据处理流程1.4数据科学的内涵1.6 大数据应用of3836 1.大数据行业应用第一章数据和大数据时代大数据应用农业教育行业社交金融行业交通行业旅游行业1.6 大数据应用of3837 2.大数据应用途径第一章数据和大数据时代收集数据:采集、购买、爬取等方式数据互通互联:确定数据标准,建立统一平台,消除信息孤岛数据化封装算法,迭代优化算法,完成机器学习,实现人工智能算法化数据产品:封装用户、数据和算法市场决策分析、精准营销推送、用户行为特征分析、提升用户体验产品化数据交换/交易平台:数据流动、交易、整合关联,才有价值算法经济/生态:算法交易,智能助理。生态化1试分析数据、信息、知识和智慧的特点和关联关系。2请举例说明结构化数据、半结构化数据、非结构化数据的区别。3什么是大数据的4V或5V特征?这一特征对大数据计算过程带来什么样的挑战?4如何认识大数据思维,请举例说明。5如何理解数据科学?6大数据关键技术有哪些?7结合一个具体例子,说明大数据处理的一般过程。8什么是数据挖掘,大数据分析挖掘方法有哪几类?9简述大数据的应用场景。习题第二章大数据获取和预处理2.1大数据获取和预处理概述2.2大数据获取方法2.3数据预处理技术数据科学与大数据技术导论of10939of109402.1 大数据获取和预处理概述第二章大数据获取和预处理2.1.1数据的来源2.1.2数据质量概述2.1.3数据预处理概述of109412.1.1 数据的来源第二章大数据获取和预处理1.系统日志数据l来自于来自于WEBWEB服务器日志、企业服务器日志、企业ERPERP系统、各种系统、各种POSPOS终端及网上支付等终端及网上支付等业务系统数据业务系统数据2.互联网数据l用户通过网络所留下的痕迹(如浏览网页、发送邮件等)用户通过网络所留下的痕迹(如浏览网页、发送邮件等)l互联网运营商在日常运营中生成和累积的用户网络行为数据互联网运营商在日常运营中生成和累积的用户网络行为数据3.物联网数据l如来自传感器、量表和其他设施的数据、定位系统数据等如来自传感器、量表和其他设施的数据、定位系统数据等4.各种信息系统数据l存储在关系型数据库或非关系型数据库中的数据存储在关系型数据库或非关系型数据库中的数据of109422.1.1 数据的来源第二章大数据获取和预处理互联网每天产生的全部内容可以刻满6.4亿张DVDGoogle每天需要处理24PB的数据网民每天在Facebook上要花费234亿分钟,被移动互联网使用者发送和接收的数据高达44PB全球每秒发送290万封电子邮件,一分钟读一篇的话,足够一个人昼夜不停地读5.5年每天会有2.88万个小时的视频上传到YouTube,足够一个人昼夜不停地观看3年Twitter上每天发布5000万条消息,假设10秒就浏览一条消息,足够一个人昼夜不停地浏览16年互联网数据of109432.1.2 数据质量概述第二章大数据获取和预处理数据质量的评估标准完整性准确性一致性及时性数据记录和信息是否完整,是否存在缺失的状况数据中记录的信息和数据是否准确,是否存在异常或错误存储在不同系统中的同一个数据,是否存在差异或相互矛盾保障数据能够及时产出,这样才能体现数据的价值of109442.1.3 数据预处理第二章大数据获取和预处理数据清洗对数据进行重新审查和校验的过程数据集成将来自多个数据源数据整合归纳在一起形成一个统一的数据集合数据规约降低数据规模,但仍大致保持原数据的完整性数据变换对数据进行转换或归并,从而构成一个适合数据处理的形式数据预处理的主要流程第二章大数据获取和预处理2.2大数据获取方法2.1大数据获取和预处理概述2.3数据预处理技术数据科学与大数据技术导论of10945of109462.2 大数据获取方法第二章大数据获取和预处理网络系统中,各式各样的服务产生的各种日志文件的采集1分布式日志采集自动在互联网中进行数据信息的采集与整理2网络爬虫APP应用获取传感器设备获取应用系统获取3其他获取方法of109472.2.1 分布式日志采集第二章大数据获取和预处理1.分布式采集流程(1)分布式日志采集与分析的主要流程日志采集组件将日志以消息的方式通过数据管道发送到日志分析组件,并最终生成存储文件。of109482.2.1 分布式日志采集第二章大数据获取和预处理这一流程可以想象为教师评判作业的过程of109492.2.1 分布式日志采集第二章大数据获取和预处理(2)分布式日志采集流程中的主要部分及功能采集组件离线采集和在线采集数据管道连接采集组件及日志分析组件的数据通道日志处理将非结构化的日志记录转化为结构化的易于存储和检索的日志信息存储与检索日志收集后进行存储并提供检索与分析功能of109502.2.1 分布式日志采集第二章大数据获取和预处理2.日志采集关键技术(1)日志采集模式一般的日志采集可以分为两种模式:推模式和拉模式由Agent主动的向目的端发送日志,目的端在接收到日志之后将数据存储起来推模式由Master主动发起日志获取动作,然后在各个Agent上将日志拉到Master节点拉模式of109512.2.1 分布式日志采集第二章大数据获取和预处理2.日志采集关键技术(2)消息队列传递模式采用异步通信降低应用耦合,保证消息的顺序性、可靠性。主要有两种消息传递模式:点对点传递模式、发布-订阅模式。of109522.2.1 分布式日志采集第二章大数据获取和预处理点对点消息传递模式(一对一)消息生产者将消息发送到一个队列中,此时,将有一个或多个消费者消费队列中的消息。但是一个消息只能被消费一次。当一个消费者消费了队列中的某个消息之后,该消息将从消息队列中删除。Consumes1Consumes2ConsumesmProducer1Producer2ProducernMSGMSGQueueof109532.2.1 分布式日志采集第二章大数据获取和预处理发布-订阅消息传递模式在发布-订阅模式中,消息生产者将消息发布到一个Topic中,消费者可以订阅一个或多个Topic,同一个消息也可以被多个消费者消费,消息被消费后不会立即删除。Subscriber1Subscriber2SubscribermPublisher1Publisher2PublishernMSGMSGMSGMSGMSGTopicof109542.2.1 分布式日志采集第二章大数据获取和预处理3.常见的日志采集平台(1)Chukwa一个开源的用于监控大型分布式系统的数据收集系统,构建在Hadoop的HDFS和MapReduce框架之上,可用于监控大规模Hadoop集群的整体运行情况并对它们的日志进行分析。包含了一个强大而灵活的工具集,可用于展示、监控和分析已收集的数据。of109552.2.1 分布式日志采集第二章大数据获取和预处理(1)ChukwaChukwa架构of109562.2.1 分布式日志采集第二章大数据获取和预处理(1)ChukwaChukwa架构直接采集数据的接口和工具负责给Adaptor提供各种服务AdaptorAgent采集到的数据,通过Collector存储到HDFS上AgentDemux负责对数据的分类、排序和去重Archive负责把同类型的数据文件合并CollectorHICC是Chukwa数据展示端的名称Demux和ArchiveHICCof109572.2.1 分布式日志采集第二章大数据获取和预处理(2)Flume是一个分布式、可靠、高可用的海量日志采集、聚合和传输的系统,其支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理的能力。Flume可看作是一个管道式的日志数据处理系统。Flume运行的核心是Agent。of109582.2.1 分布式日志采集第二章大数据获取和预处理(2)FlumeFlume核心结构SourceSinkChannelWebServerHDFSAgentof109592.2.1 分布式日志采集第二章大数据获取和预处理(2)FlumeFlume核心结构Source:数据的收集端,主要负责获取数据并进行格式化,进一步将数据封装到事件(Event)里,最后将事件推入Channel中。Avro SourceExce SourceHTTP SourceSourceEventEventEventSource工作流程图of109602.2.1 分布式日志采集第二章大数据获取和预处理(2)FlumeFlume核心结构Channel:连接Source和Sink的组件,它可以将事件暂存到内存中,也可以持久化到本地磁盘上,直到Sink处理完该事件。主要提供MemoryChannel、JDBCChanel、FileChannel等类型。Sink:存储组件,负责取出Channel中的数据,并保存在文件系统、数据库系统等存储系统中,或者提交到远程服务器。SinkEventEventEvent存储系统of109612.2.1 分布式日志采集第二章大数据获取和预处理(3)KafkaLinkedin公司开发的一个分布式、支持分区的、多副本的、基于ZooKeeper协调的分布式日志系统,可以用于Web/Nginx日志、访问日志、消息服务等等。Kafka主要应用场景是:日志收集系统和消息系统。of109622.2.1 分布式日志采集第二章大数据获取和预处理(3)KafkaKafka的系统架构of109632.2.1 分布式日志采集第二章大数据获取和预处理(3)Kafka在kafka中,消息是按Topic组织的。Topic是一个消息的集合。每个Topic可以有多个生产者向它发送消息,也可以有一个或多个消费者来消费该Topic中的消息。而每个Topic又会分为多个Partition,这样便于管理数据和进行负载均衡。Topic分区of109642.2.1 分布式日志采集第二章大数据获取和预处理(3)KafkaKafka中三个主要角色:Broker,Producer和Consumer。Kafka单个节点称为Broker,一个Kafka服务就是一个Broker,多个Broker可以组成一个Kafka集群。Producer是数据的发布者,负责将消息发布到Kafka的Topic中。Broker(代理)Consumer从Broker处读取数据。消费者订阅一个或多个主题,并通过从代理中提取数据来使用已发布的消息。Producer(生产者)Consumer(消费者)of109652.2.1 分布式日志采集第二章大数据获取和预处理(4)ScribeScribe是Facebook开源的日志收集系统,在Facebook内部已经得到大量应用。Scribe从各种数据源上收集数据,放到一个共享队列上,然后将消息推送到后端的中央存储系统上。Scribe最重要的特点是容错性好。Scribe通常与Hadoop结合使用,Scribe用于向HDFS中推送日志消息,而Hadoop通过MapReduce作业进行定期处理。of109662.2.1 分布式日志采集第二章大数据获取和预处理(4)ScribeScribe的架构Scribe数据日志ScribeAgentScribeAgentScribeAgentScribe数据库HDFS中央存储系统of109672.2.1 分布式日志采集第二章大数据获取和预处理(4)ScribeScribe的架构ScribeAgent实际上是一个ThriftClient,也是向Scribe发送数据的唯一方法。Scribe提供了各种各样的存储系统,如File,HDFS等,Scribe可将数据加载到这些存储系统中。ScribeAgent用于持久化数据Scribe存储系统of109682.2.2 网络爬虫第二章大数据获取和预处理1.网络爬虫概念网络爬虫也被称为网络蜘蛛、网络蚂蚁、网络机器人等。是一种按照一定的规则、自动请求万维网网站并提取网络数据的程序或脚本。of109692.2.2 网络爬虫第二章大数据获取和预处理1.网络爬虫分类网络爬虫可分为四种类型网络爬虫通用网络爬虫聚焦网络爬虫增量式网络爬虫深层网络爬虫of109702.2.2 网络爬虫第二章大数据获取和预处理1.网络爬虫分类(1)通用网络爬虫通用网络爬虫(又称全网爬虫):将爬取对象从一些种子URL扩充到整个网络,一般用于搜索引擎。常见通用网络爬虫有:百度爬虫Baiduspider,谷歌爬虫Googlebot,soso爬虫sosospider,360爬虫:360spider主要特点:爬取目标数量巨大爬取目标数量巨大对爬取性能和存储空间要求较高对爬取性能和存储空间要求较高对于爬取页面的顺序要求相对较低对于爬取页面的顺序要求相对较低爬行的结果中会包含大量用户不需要的网页爬行的结果中会包含大量用户不需要的网页of109712.2.2 网络爬虫第二章大数据获取和预处理1.网络爬虫分类(2)聚焦网络爬虫聚焦网络爬虫又称为主题网络爬虫:选择性地爬取那些与预先定义好的主题相关页面。主要特点:可过滤掉海量网页中与主题不相关的或者相关度较低的网页,极大地节省了硬件和网络资源保存的页面也由于数量少而更新快of109722.2.2 网络爬虫第二章大数据获取和预处理1.网络爬虫分类(3)增量式网络爬虫对已下载网页采取增量式更新和只爬取新产生的或者已经发生变化网页的爬虫,能够在一定程度上保证所爬取的页面是尽可能新的页面。主要特点:只会在需要的时候爬取新产生或发生更新的页面,并不重新下载没有发生变化的页面,可有效减少数据下载量,减小时间和空间上的耗费要具有能够辨别网页页面是否有更新数据或者是否有新的相关网页出现的能力,因此增加了爬行算法的复杂度和实现难度of109732.2.2 网络爬虫第二章大数据获取和预处理1.网络爬虫分类(4)深层网络爬虫深层网络爬虫:通过提交表单的方式访问并爬取深层页面信息爬虫爬取过程中最重要部分就是表单的填写,包含两种类型基于领域知识的表单填写基于网页结构分析的表单填写of109742.2.2 网络爬虫第二章大数据获取和预处理2.网络爬虫方法(1)网络爬虫工作原理根据预先设定的一个或若干个初始网页的URL开始,获取初始网页上的URL列表,然后按照一定的规则抓取网页。每当抓取一个网页时,爬虫会提取该网页上新的URL并放入未抓取的URL队列中,接着再从未抓取的队列中取出一个URL再次进行新一轮的抓取。不断重复上述过程,直到队列中的URL抓取完毕或者满足系统其它的停止条件,爬虫才会结束。of109752.2.2 网络爬虫第二章大数据获取和预处理2.网络爬虫方法(1)网络爬虫工作原理将已下载URL放进已抓取URL队列种子URL待抓取URL已下载网页库已抓取URL读取URL、DNS解析、网页下载抽取出新的URL放入待抓取URL队列网络爬虫工作流程图of109762.2.2 网络爬虫第二章大数据获取和预处理2.网络爬虫方法(2)网络爬虫抓取策略从初始网页开始,选择一个URL进入,在下载网页中获取到新的URL,接着选择一个再进入,如此不断深入,直到返回的网页中没有URL为止深度优先搜索先抓取初始网页中的所有网页,然后再选择其中的一个链接网页,继续抓取在此网页中链接的所有网页,当同一层次的页面全部搜索完毕后,再深入下一层继续搜索,直到底层为止广度优先搜索按照一定的网页分析算法,根据“最好最优原则”进行访问,选取评价最好的一个或几个URL进行抓取。最佳优先搜索of109772.2.2 网络爬虫第二章大数据获取和预处理2.网络爬虫方法(3)爬虫的合法性大多数网站允许将所爬取的数据用于个人使用或科研领域,但如果将爬取的数据用于商业用途,则有可能会触犯法律。使用爬虫爬取网站数据时,需要遵守网站所有者针对爬虫行为所制定的爬虫协议,也称为Robots协议。网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。盗亦有道of109782.2.2 网络爬虫第二章大数据获取和预处理2.网络爬虫方法(3)爬虫的合法性例查看京东的Robots协议,看看该网站对爬虫有哪些限制。访问https:/ 网络爬虫第二章大数据获取和预处理3.常用的网络爬虫工具(1)Nutch一个开源的Java实现的分布式网络爬虫。基于Hadoop的分布式处理模型,可以实现多机分布抓取、存储和索引。提供了一种插件框架,使得其对各种网页内容的解析以及各种数据的采集、查询、集群、过滤等功能能够方便的进行扩展。不足之处:Nutch是一个大型的搜索引擎框架,主要用于通用数据的爬取,对精确爬取没有特别的考虑。of109802.2.2 网络爬虫第二章大数据获取和预处理3.常用的网络爬虫工具(2)Scrapy基于Python开发的开源爬虫框架。使用Twisted异步网络框架来处理网络通讯,可以加快下载速度,并且包含了各种中间件接口,可以灵活的完成各种需求。通过各种管道(Pipeline)和中间件(Middleware)能够非常方便的对其功能进行扩展开发。不足之处:Scrapy框架可实现单机多线程爬取,但不支持分布式部署;默认不提供页面JS渲染服务,需要用户自己实现,才能得到动态加载的数据。of109812.2.2 网络爬虫第二章大数据获取和预处理3.常用的网络爬虫工具(3)Heritrix是一个由Java开发的开源网络爬虫,对网站内容全部下载,不会修改页面中的任何内容。可获取完整的、精确的站点内容的深度复制,包括视频、音频、图像以及其它非文本内容,抓取并把这些内容存储在磁盘中。具有强大的可扩展性,用户可任意选择或扩展各个组件,实现特定的抓取逻辑。不足之处:由于Heritrix中每个爬虫是单独进行工作的,无法合作完成爬取任务,因此很难实现分布式爬取。of109822.2.2 网络爬虫第二章大数据获取和预处理3.常用的网络爬虫工具(4)爬虫软件对不具备开发能力或开发能力较弱的用户,还可以直接使用一些网络爬虫软件来获取数据。这些软件一般不需要编写代码,只需进行一些必要参数的设置,即可在网络中快速爬取所需数据资源,还可将数据以Excel、数据库等形式导出。各种网络爬虫软件逐渐涌现,如:八爪鱼采集器、火车头采集器、后羿采集器、神箭手云爬虫等。of109832.2.2 网络爬虫第二章大数据获取和预处理【例2-1】使用八爪鱼采集器爬取猫眼电影TOP100榜单信息,包括排名、电影名称、主演、上映时间及评分。网址:https:/ 网络爬虫第二章大数据获取和预处理操作步骤:(1)新建自定义任务。启动八爪鱼登录,在八爪鱼操作界面中,单击“新建”按钮,选择“自定义任务”选项,进入新建任务窗口,将要爬取的目标网页地址输入或复制粘贴到编辑区域,单击“保存设置”按钮。八爪鱼操作窗口中自动加载该网页内容,同时对页面数据进行自动识别和采集。of109852.2.2 网络爬虫第二章大数据获取和预处理操作步骤:(1)新建自定义任务。由于自动采集的数据不是想要的结果,点击“操作提示”窗口中的“取消”按钮,进入采集配置页面。of109862.2.2 网络爬虫第二章大数
展开阅读全文