新書推薦:
《
敦煌写本文献学(增订本)
》
售價:HK$
227.7
《
耕读史
》
售價:HK$
112.7
《
地理计算与R语言
》
售價:HK$
124.2
《
沈括的知识世界:一种闻见主义的实践(中华学术译丛)
》
售價:HK$
89.7
《
大思维:哥伦比亚商学院六步创新思维模型
》
售價:HK$
74.8
《
宏观经济学(第三版)【2024诺贝尔经济学奖获奖者作品】
》
售價:HK$
159.9
《
UE5虚幻引擎必修课(视频教学版)
》
售價:HK$
113.9
《
真需求
》
售價:HK$
113.9
|
編輯推薦: |
本书针对初学者的知识体系,适当简化大数据学习的难度,使得学习更加容易上手;知识架构是在培训了多届学员的基础上总结整理得来的,已经经历了实践的考验,证实了其的科学性;本书凝聚了10余位技术大牛的研发和授课经验,教学资料完整;书中的案例都为企业实际开发的案例,通过学习这些大量的实际案例,使得学习者在进入企业后可以快速融入大数据技术相关工作岗位。
|
內容簡介: |
本书的知识架构是在培训了多届学员的基础上总结整理得来的,已经经过了实践的考验,证实了其科学性;本书当中的案例都为企业实际开发的案例,通过学习这些大量的实际案例,帮助学生在进入企业后可以很快融入大数据工作岗位。
本书包括大数据概论、初识Hadoop、认识HDFS、HDFS的运行机制、访问HDFS、Hadoop IO 详解、认识MapReduce编程模型、MapReduce应用编程开发、MapReduce的工作机制与YARN平台、MapReduce高级开发、MapReduce实例共11章内容。
本书既可作为高等院校学习大数据技术的教材,亦可作为广大大数据技术学习者的入门用书。
|
關於作者: |
中科普开北京科技有限公司成立于2010年,是国内首家致力于IT新技术传播、普及的领航者,专注于云计算、大数据、物联网、移动互联网技术的培训及咨询服务。
|
目錄:
|
第1章大数据概论001
1.1大数据时代背景001
1.1.1大数据的数据源001
1.1.2大数据的价值和影响002
1.1.3大数据技术应用场景003
1.1.4大数据技术的发展前景004
1.2大数据基本概念005
1.2.1大数据定义005
1.2.2大数据结构类型007
1.2.3大数据核心特征007
1.2.4大数据技术008
1.2.5行业应用大数据实例010
1.3大数据系统011
1.3.1设计目标和原则011
1.3.2当前大数据系统012
1.4大数据与企业016
1.4.1大数据对企业的挑战性016
1.4.2企业大数据的发展方向019
1.4.3企业大数据观020
本章小结020
习题021
第2章初识Hadoop022
2.1Hadoop简介022
2.1.1Hadoop概况022
2.1.2Hadoop的功能和作用023
2.1.3Hadoop的优势023
2.1.4Hadoop的发展史024
2.1.5Hadoop的应用前景025
2.2深入了解Hadoop025
2.2.1Hadoop的体系结构025
2.2.2Hadoop与分布式开发027
2.2.3Hadoop生态系统029
2.3Hadoop与其他系统030
2.3.1Hadoop与关系型数据库管理系统030
2.3.2Hadoop与云计算032
2.4Hadoop应用案例032
2.4.1Hadoop在百度的应用032
2.4.2Hadoop在Yahoo!的应用033
2.4.3Hadoop在eBay的应用035
本章小结037
习题037
大数据
技术基础
目录
第3章认识HDFS039
3.1HDFS简介039
3.2HDFS的特性和设计目标040
3.2.1HDFS的特性040
3.2.2HDFS的设计目标041
3.3HDFS的核心设计042
3.3.1数据块042
3.3.2数据复制042
3.3.3数据副本的存放策略043
3.3.4机架感知045
3.3.5安全模式046
3.3.6负载均衡047
3.3.7心跳机制048
3.4HDFS的体系结构049
3.4.1MasterSlave架构049
3.4.2NameNode、SecondaryNameNode、DataNode050
本章小结055
习题055
第4章HDFS的运行机制056
4.1HDFS中数据流的读写056
4.1.1RPC实现流程056
4.1.2RPC实现模型057
4.1.3文件的读取059
4.1.4文件的写入060
4.1.5文件的一致模型061
4.2HDFS的HA机制062
4.2.1为什么有HA机制062
4.2.2HA集群和架构063
4.3HDFS的Federation机制064
4.3.1为什么引入Federation机制064
4.3.2Federation架构066
4.3.3多命名空间管理067
本章小结067
习题068
第5章访问HDFS069
5.1命令行常用接口069
5.1.1HDFS操作体验069
5.1.2HDFS常用命令071
5.2Java接口073
5.2.1从Hadoop URL中读取数据074
5.2.2通过FileSystem API读取数据075
5.2.3写入数据076
5.2.4创建目录078
5.2.5查询文件系统078
5.2.6删除数据081
5.3其他常用接口081
5.3.1Thrift081
5.3.2C语言082
5.3.3HTTP082
本章小结082
习题083
第6章Hadoop IO详解084
6.1数据完整性084
6.1.1HDFS的数据完整性084
6.1.2验证数据完整性085
6.2文件压缩086
6.2.1Hadoop支持的压缩格式086
6.2.2压缩解压缩算法codec087
6.2.3压缩和输入分片091
6.3文件序列化092
6.3.1Writable接口093
6.3.2WritableComparable接口094
6.3.3Writable实现类095
6.3.4自定义Writable接口100
6.3.5序列化框架104
6.4Hadoop文件的数据结构104
6.4.1SequenceFile存储104
6.4.2MapFile存储108
本章小结111
习题111第7章识识MapReduce编程模型113
7.1MapReduce编程模型简介113
7.1.1什么是MapReduce113
7.1.2MapReduce程序的设计方法114
7.1.3新旧MapReduce简介115
7.1.4Hadoop MapReduce架构116
7.1.5MapReduce的优缺点117
7.2WordCount编程实例118
7.2.1WordCount的设计思路118
7.2.2编写WordCount代码118
7.2.3运行程序119
7.2.4代码讲解120
7.3MapReduce的编程122
7.3.1配置开发环境122
7.3.2编写Mapper类124
7.3.3编写Reducer类125
7.3.4编写main函数125
7.4MapReduce在集群上的运作127
7.4.1作业的打包和启动127
7.4.2MapReduce的Web界面128
7.4.3获取结果130
本章小结131
习题131
第8章MapReduce应用编程开发132
8.1MapReduce类型与格式132
8.1.1MapReduce的类型132
8.1.2输入格式137
8.1.3输出格式148
8.2Java API解析150
8.2.1作业配置与提交151
8.2.2InputFormat接口的设计与实现152
8.2.3OutputFormat接口的设计与实现157
8.2.4Mapper与Reducer解析159
本章小结163
习题163
第9MapReduce的工作机制与YARN平台165
9.1YARN平台简介165
9.1.1YARN的诞生165
9.1.2YARN的作用166
9.2YARN的架构166
9.2.1ResourceManager167
9.2.2ApplicationMaster168
9.2.3NodeManager168
9.2.4资源模型169
9.2.5ResourceRequest和Container169
9.2.6Container规范170
9.3剖析MapReduce作业运行机制170
9.4基于YARN的运行机制剖析171
9.5Shuffle和排序175
9.5.1map端175
9.5.2reduce端176
9.6任务的执行178
9.6.1任务执行环境178
9.6.2推测执行179
9.6.3关于OutputCommitters180
9.6.4任务JVM重用181
9.6.5跳过坏记录182
9.7作业的调度182
9.7.1公平调度器183
9.7.2容量调度器183
9.8在YARN上运行MapReduce实例184
9.8.1运行Pi实例184
9.8.2使用Web GUI监控实例185
本章小结189
习题190
第10章MapReduce高级开发191
10.1计数器191
10.1.1内置计数器191
10.1.2自定义的Java计数器193
10.2数据去重194
10.2.1实例描述194
10.2.2设计思路194
10.2.3程序代码194
10.3排序195
10.3.1实例描述196
10.3.2设计思路196
10.3.3程序代码196
10.4二次排序197
10.4.1二次排序原理197
10.4.2二次排序的算法流程198
10.4.3代码实现199
10.5平均值202
10.5.1实例描述202
10.5.2设计思路202
10.5.3程序代码203
10.6Join联接204
10.6.1Map端Join204
10.6.2Reduce端Join205
10.6.3Join实现表关联205
10.7倒排索引209
10.7.1倒排索引的分析和设计209
10.7.2倒排索引完整源码213
10.7.3运行代码结果214
本章小结215
习题215
第11章MapReduce实例216
11.1搜索引擎日志处理216
11.1.1背景介绍216
11.1.2数据收集216
11.1.3数据结构216
11.1.4需求分析217
11.1.5MapReduce编码实现217
11.2汽车销售数据分析223
11.2.1背景介绍224
11.2.2数据收集224
11.2.3数据结构 224
11.2.4需求分析224
11.2.5MapReduce编码实现225
11.3农产品价格分析234
11.3.1背景介绍234
11.3.2数据收集235
11.3.3数据结构235
11.3.4需求分析236
11.3.5MapReduce编码实现236
参考文献248
|
內容試閱:
|
第1章大数据概论
本章提要
在这个日新月异发展的社会中,人们发现未知领域的规律主要依赖抽样数据、局部数据和片面数据,甚至无法获得真实数据时只能纯粹依赖经验、理论、假设和价值观去认识世界。因此,人们对世界的认识往往是表面的、肤浅的、简单的、扭曲的或者是无知的。然而大数据时代的来临使人类拥有更多的机会和条件在各个领域更深入地获得和使用全面数据、完整数据和系统数据,深入探索现实世界的规律。大数据的出现帮助商家了解用户、锁定资源、规划生产、做好运营及开展服务。
本章主要从大数据时代背景、大数据基本概念、大数据系统以及大数据与企业等方面,让读者对大数据有初步的认识。
1.1大数据时代背景
中国庞大的人数和应用市场,其复杂性高并且充满变化,从而成为世界上拥有最复杂的大数据的国家。解决这种由大规模数据引发的问题,探索以大数据为基础的解决方案,是中国产业升级、效率提高的重要手段。因此,解决大数据这一问题不仅提高公司的竞争力,也能提高国家竞争力。
1.1.1大数据的数据源
近年来,随着信息技术的发展,我国在各个领域产生了海量数据,主要分布如下。
1. 以BAT为代表的互联网公司
1 阿里巴巴: 目前保存的数据量为近百个拍字节PB,90%以上是电商数据、交易数据、用户浏览和点击网页数据、购物数据。
2 百度: 2013年的数据总量接近一千个拍字节PB,主要来自中文网、百度推广、百度日志、UGC,由于占有70%以上的搜索市场份额从而坐拥庞大的搜索数据。
3 腾讯: 存储数据经压缩处理后总量在100PB左右,数据量月增10%,主要是大量社交、游戏等领域积累的文本、音频、视频和关系类数据。
大数据
技术基础
00第1章
大数据概论
002. 电信、金融与保险、电力与石化系统
1 电信: 包括用户上网记录、通话、信息、地理位置等。运营商拥有的数据量都在10PB以上,年度用户数据增长数十拍字节PB。
2 金融与保险: 包括开户信息数据、银行网点和在线交易数据、自身运营的数据等。金融系统每年产生数据达数十拍字节PB,保险系统数据量也接近拍字节PB级别。
3 电力与石化: 仅国家电网采集获得的数据总量就达到10个拍字节PB级别,石化行业、智能水表等每年产生和保存下来的数据量也达到数十拍字节PB级别。
3. 公共安全、医疗、交通领域
1 公共安全: 在北京,就有50万个监控摄像头,每天采集视频数量约3PB,整个视频监控每年保存下来的数据在数百拍字节PB以上。
2 医疗卫生: 据了解,整个医疗卫生行业一年能够保存下来的数据就可达到数百PB。
3 交通: 航班往返一次就能产生太字节TB级别的海量数据;列车、水陆路运输产生的各种视频、文本类数据,每年保存下来的也达到数十拍字节PB。
4. 气象与地理、政务与教育等领域
1 气象与地理: 中国幅页辽阔,气象局保存的数据为4~5PB,每年约增数百个太字节TB,各种地图和地理位置信息每年约增数十太字节PB。
2 政务与教育: 北京市政务数据资源网涵盖旅游、教育、交通、医疗等门类,一年上线公布400余个数据包。政务数据多为结构化数据。
5. 其他行业
线下商业销售、农林牧渔业、线下餐饮、食品、科研、物流运输等行业数据量还处于积累期,整个体积都不算大,多则达到拍字节PB级别,少则几百太字节TB,甚至只有数十太字节TB级别,但增速很快。
1.1.2大数据的价值和影响
数量巨大、与微观情境相结合的运行记录信息的最终结果就是大数据。尽管运行记录信息不是大数据的全部,但却应该是以后大数据的主流。目前看得到的金融、电信、航空、电商、零售渠道等领域中的大数据,多数也都是运行记录信息。大数据具有采集过程价值未知、力争全面、即时、系统性并发的记录方式,以及主受体统一和大微观的特征,这些特征决定了大数据的价值发挥。
大数据的应用很广泛,解决了大量的日常问题。大数据是利害攸关的,它将重塑人们的生活、工作和思维方式,比其他划时代创新引起的社会信息范围和规模急剧扩大所带来的影响更大。大数据需要人们重新讨论决策、命运和正义的性质。人们的世界观正受到大数据优势的挑战,拥有大数据不但意味着掌握过去,更意味着能够预测未来。因此,大数据给人们带来了巨大的价值和影响。
1 全面洞察客户信息。全面分析来自渠道的反馈、社会传媒等多源信息,让每个客户作为个体了解全景。
2 提升企业的资源管理: 利用实时数据实现预测性维护,并减少故障,推动产品和服务开发。
3 数据深度利用。梳理结构化、非结构化、海量历史实时、地理信息4类数据资源,以企业核心业务及应用为主线实现四类数据资源的关联利用。
4 风险及时感知和控制。通过全面数据分析改进风险模型,结合交易流数据实时捕获风险,及时有效地控制。
5 辅助智能决策。实时分析所有的运营数据和效果反馈,优化运营流程。利用投资回报率最大程度减少信息技术成本。
6 更快和更大规模的产品创新。多源捕获市场反馈,利用海量市场数据和研究数据来快速驱动创新。
1.1.3大数据技术应用场景
当前,大数据技术的应用涉及各个行业领域。
1. 大数据在金融行业的应用
近年来,随着互联网金融概念的兴起,催生了一大批金融、类金融机构转型或布局的服务需求,相关产业服务应运而生。而随着互联网金融向纵深发展,行业竞争日趋白热化,金融、类金融机构在其中的短板日益凸显。为了更好地获得最佳商机,金融行业也步入了大数据时代。
华尔街某公司通过分析全球3.4亿微博账户留言来判断民众情绪。人们高兴的时候会买股票,而焦虑的时候会抛售股票,它通过判断全世界高兴的人多还是焦虑的人多来决定公司股票的买入还是卖出。
阿里公司根据在淘宝网上中小企业的交易状况筛选出财务健康和诚信经营的企业,给他们提供贷款,并且不需要这些中小企业的担保。目前阿里公司已放贷款上千亿元,坏账率仅为0.3%。
2. 大数据在政府的应用
为充分运用大数据的先进理念、技术和资源,加强对我国各地市场主体的服务和监管,推进简政放权和政府职能转变,提高政府治理能力,我国一些省市运用大数据加强对市场主体服务和监管实施方案已然出炉。
3. 大数据在医疗健康的应用
随着医疗卫生信息化建设进程的不断加快,医疗数据的类型和规模也在以前所未有的速度迅猛增长,甚至产生了无法利用目前主流软件工具的现象,这些医疗数据能帮助医改在合理的时间内达到撷取、管理信息并整合成为能够帮助医院进行更积极的经营决策的有用信息。这些具有特殊性、复杂性的庞大的医疗大数据,仅靠个人甚至个别机构来进行搜索,那基本是不可能完成的。
4. 大数据在宏观经济管理领域的应用
IBM日本分公司建立了一个经济指标预测系统,它从互联网新闻中搜索出能影响制造业的480项经济数据,再利用这些数据进行预测,准确度相当高。
印第安纳大学学者利用Google提供的心情分析工具,根据用户近千万条短信、微博留言预测琼斯工业指数,准确率高达87%。
淘宝网建立了淘宝CPI,通过采集、编制淘宝网上390个类目的热门商品价格来统计CPI,预测某个时间段的经济走势比国家统计局的CPI还提前半个月。
5. 大数据在农业领域的应用
由Google前雇员创办Climate公司,从美国气象局等数据库中获得几十年的天气数据,各地的降雨、气温和土壤状况及历年农作物产量做成紧凑的图表,从而能够预测美国任一农场下一年的产量。农场主可以去该公司咨询明年种什么能卖出去、能赚钱,说错了该公司负责赔偿,赔偿金额比保险公司还要高,但到目前为止还没赔过。
通过对手机上的农产品移动支付数据、采购投入数据和补贴数据分析,可准确预测农产品生产趋势,政府可依此决定出台激励实施和确定合适的作物存储量,还可以为农民提供服务。
6. 大数据在商业领域的应用
沃尔玛基于每个月4500万的网络购物数据,并结合社交网络上有关产品的大众评分,开发机器学习语义搜索引擎北极星,方便浏览,在线购物者因此增加10%~15%,销售额增加十多亿美元。
沃尔玛通过手机定位,可以分析顾客在货柜前停留时间的长短,从而判断顾客对什么商品感兴趣。
不仅仅是通过手机定位,实际上美国有的超市在购物推车上也安装了位置传感器,根据顾客在不同货物前停留时间的长短来分析顾客可能的购物行为。
在淘宝网上买东西时,消费者会在阿里的广告交易平台上留下记录,阿里不仅从交易记录平台把消费记录拿来供自己使用,还会把消费记录卖给其他商家。
7. 大数据在银行的应用
在信用卡服务方面,银行首先利用移动互联网技术的定位功能确定商圈,目前已实际覆盖全国161个商圈,累计服务千万人次;其次利用用户活动轨迹追踪,确定高价值商业圈设计业务;再利用大数据进行客户需求的体验分析。既包括客户的需要,也包括客户的体验,最终实现用户体验的LIKE曲线。
1.1.4大数据技术的发展前景
据预测,到2020年,全球需要存储的数据量将达到35万亿吉字节GB,是2009年数据存储量的44倍。根据IDC的研究,2010年底全球的数据量已达到120万拍字节PB。这些数据如果使用光盘存储,摞起来可以从地球到月球一个来回。对于商业而言,这里孕育着巨大的市场机会,庞大的数据就是一个信息金矿。数据是企业的重要资产。因此,大数据将人们带进了一个更有前景的领域。
在大数据时代,一批新的大数据技术正在涌现,将改变人们分析处理海量数据的方式,使人们更快、更经济地获得所需的结果。传统商业智能限于技术瓶颈很大程度上是对抽样数据进行分析。大数据技术就是要打破传统商业智能领域的局限。大数据技术不但能处理结构化数据,还能分析和处理各种半结构化和非结构化数据,甚至从某种程度上,更擅长处理非结构化数据,例如Hadoop。而在现实生活中,这样的数据更为普遍,增长得更为迅速。例如,社交媒体中的各种交互活动、购物网站用户点击行为、图片、电子邮件等。可以说,正是此类数据的爆炸性催生了大数据相关技术的出现和完善,从而让人们知道在一个资源有限的世界中应该提取哪些有价值的信息。
大数据技术的出现和完善还可以帮助健康保险公司不做体检就能决定保险覆盖面,并降低提醒病人服药的成本。通过大数据的相关性,语言可以得到翻译,汽车可以在预测的基础上自行驾驶。人们之所以能做所有的这些事,新工具的使用只是一个很小的因素,比拥有更快的处理器、更多的存储器,更智能的软件和算法更重要的是,人们拥有了更多的数据,继而世界上更多的事物被数据化了。显然,人类量化世界的雄心先于计算机革命,但是数字工具将数据化提升到了新的高度。不仅移动电话能够跟踪到呼叫的人和被呼叫人所在的位置,而且同样的数据也能用于断定来人是否生病了。
能置身于信息流中央并且能够收集数据的公司通常会繁荣兴旺。有效利用大数据需要专业技术和丰富的想象力,即一个能容纳大数据的心态,但价值的核心归功于数据本身。有时,重要的资产并不仅仅是能清楚看到的信息,聪明的公司可以用它来改善现有的服务,或推出全新的服务。
大数据将成为理解和解决当今许多紧迫的全球问题所不可或缺的重要工具。在应对气候变化问题时,需要对污染相关的数据进行分析得出最佳方案,从而明确努力方向,找出解决问题的方法。全球范围内遍布的大量传感设备,包括智能手机内部的传感器,使人们能以更高的细节水平模拟环境。而世界贫困人口迫切需要提高医疗保健服务,降低医疗费用,这很大程度上可以靠自动化来实现。当下许多似乎需要人类判断力才能进行的事情,其实可以完全交由计算机来做,比如癌细胞活检、传染病爆发前期的模式预测等。
大数据也被用于发展经济和理解如何预防冲突。基于手机动向数据显示,非洲许多贫民窟地区经济活动十分活跃。大数据还揭示了最有可能引发种族关系紧张的社区以及解除难民危机的方式。只有当科技应用于生活的方方面面时,大数据的使用范围才能进一步扩大。
大数据能帮助人们更好地进行已有的工作,并处理全新事务。在不久的将来,人们将在生活的方方面面使用到大数据。当大数据成为日常生活的一部分后,它将会极大地改变人们对未来的看法。
大数据时代造就了一个数据库无所不在的世界,数据监管部门面临前所未有的压力和责任。如何避免数据泄露对国家利益、公众利益、个人隐私造成伤害?如何避免信息不对称,对困难群体的利益构成伤害?在有效控制风险之前,也许还是让大数据继续待在笼子里更好一些。
大数据的经济价值已经被人们认可,大数据的技术正逐渐成熟,一旦完成数据的整合和监管,大数据爆发的时代即将到来。人们现在要做的,就是选好自己的方向,为迎接大数据的到来提前做好准备。
以未来的视角看,无论是政府、互联网公司、IT企业,还是行业用户,只要以开放的心态、创新的勇气拥抱大数据,大数据时代就一定有属于中国的机会。
1.2大数据基本概念〖*2〗1.2.1大数据定义麦肯锡美国首屈一指的咨询公司是研究大数据的先驱。在其报告《Big data: The next frontier for innovation,competition and
productivity》中给出的大数据定义是: 大数据指的是大小超出常规的数据库工具获取、存储、管理和分析能力的数据集。但它同时强调,并不是说一定要超过特定太字节TB值的数据集才能算是大数据。
国际数据公司IDC从大数据的四个特征来定义,即海量的数据规模Volume、快速的数据流转和动态的数据体系Velocity、多样的数据类型Variety、巨大的数据价值Value。
亚马逊公司全球最大的电子商务公司的大数据科学家John Rauser 给出了一个简单的定义: 大数据是任何超过了一台计算机处理能力的数据量。
维基百科中只有短短的一句话: 巨量资料Big Data,或称大数据,指的是所涉及的资料量规模巨大到无法通过目前主流软件工具,在合理时间内达到撷取、管理、处理并整理成为帮助企业经营决策更积极目的的资讯。
而在百度百科中是这样定义的: 大数据Big Data,是指无法在可承受的时间范围内用常规软件工具进行捕捉、管理和处理的数据集合。
综合上面的定义,可以得出以下几点。
1 大数据并没有明确的界限,它的标准是可变的。大数据在今天的不同行业中的范围可以从几十太字节TB到几拍字节PB,但在20年前1GB的数据已然是大数据了。可见,随着计算机软硬件技术的发展,符合大数据标准的数据集容量也会增长。
2 大数据不仅仅只是大,它还包含了数据集规模已经超过了传统数据库软件获取、存储、分析和管理能力的意思。
IDC报告显示,计到2020年全球数据总量将超过40ZB相当于4万亿GB,这一数据量是2011年的22倍。在过去几年,全球的数据量以每年58%的速度增长,在未来这个速度会更快。如果按照现在存储容量每年增长40%的速度计算,到2017年需要存储的数据量甚至会大于存储设备的总容量。如何利用大数据解决科研、医疗、能源、商业、政府管理、城市建设等领域的问题,是全世界面临的问题。
举几个大家熟悉例子: 2014年11月19日,百度在京召开百度云两周年媒体沟通会,正式宣布百度云总用户数突破两亿,百度云数据存储量达5EB,这些数据足以塞满3.4亿部16GB内存的iPhone6,如果将这些手机首尾相连,可以在地球和月球之间搭建16条星际通道。
2014年3月7日,在阿里巴巴有史以来最大型对外开放的数据峰会2014西湖品学大数据峰会上,阿里巴巴大数据负责人披露了阿里巴巴目前的数据储存情况。目前在阿里巴巴数据平台事业部的服务器上,攒下了超过100PB已处理过的数据,等于104857600GB,相当于4万个西雅图中央图书馆,580亿本藏书。仅淘宝和天猫两个子公司每日新增的数据量,就足以让一个人连续不断看上28年的电影。而如果将一个人作为服务器,则此人处理的数据量相当于每秒钟看上837集的《来自星星的你》。
在2013年的数据大会上,腾讯公司数据平台总经理助理蒋杰透露,腾讯QQ目前拥有8亿用户、4亿移动用户,在数据仓库存储的数据量单机群数量已达到4400台,总存储数据量经压缩处理后约100PB,并且这一数据还在日增200~300TB、月增加率为10%的速度增长。
1993 年,《纽约客》刊登了一幅漫画,标题是互联网上,没有人知道你是一条狗。据说作者彼得施泰纳因为此漫画的重印而赚取了超过5 万美元。当时关注互联网社会学的一些专家,甚至担忧计算机异性扮装而引发的社会问题。
20多年后,互联网发生了巨大的变化,移动互联、社交网络、电子商务大大拓展了互联网的疆界和应用领域。人们在享受便利的同时,也无偿贡献了自己的行踪。现在互联网不但知道对面是一条狗,还知道这条狗喜欢什么食物、几点出去遛弯、几点回窝睡觉。人们不得不接受这个现实,每个人在互联网进入到大数据时代都将是透明存在的。
1.2.2大数据结构类型
当今企业存储的数据不仅仅是内容多,而且结构已发生了极大改变,不再仅仅是以二维表的规范结构存储。大量的数据来自不是结构化的数据类型半结构化数据、准结构化数据或非结构化数据,如办公文档、文本、图片、XML、 HTML、各类报表、图片、音频和视频等,并且这些数据在企业的所有数据中是大量且增长迅速的。企业80%的数据来自不是结构化的数据类型,结构化数据仅有20%。全球结构化数据增长速度约为32%,而不是结构化的数据类型增速高达63%。预计今年不是结构化的数据类型占有比例将达到互联网整个数据量的75%以上。
1 结构化数据: 包括预定义的数据类型、格式和结构的数据。例如,关系型数据库中的数据。
2 半结构化数据: 具有可识别的模式并可以解析的文本数据文件。例如,自描述和具有定义模式的XML数据文件。
3 准结构化数据: 具有不规则数据格式的文本数据,使用工具可以使之格式化。例如,包含不一致的数据值和格式化的网站点击数据,可参考http:www.zkpk.org。
4 非结构化数据: 没有固定结构的数据,通常保存为不同类型的文件。例如,文本文档、图片、音频和视频。
1.2.3大数据核心特征
业界通常用4个V,即Volume数据量大、Variety类型繁多、Value价值密度低、Velocity速度快,时效高来概括大数据的特征。
1. 数据量大
如今存储数据的数量正在急速增长,人们深陷在数据之中。人们存储的数据包括环境数据、财务数据、医疗数据、监控数据等。有关数据量的对话已从太字节TB级别转向拍字节PB级别,并且不可避免地转向泽字节ZB级别。现在经常听到一些企业使用存储集群来保存拍字节PB级的数据。随着可供企业使用的数据量不断增长,可处理、理解和分析的数据比例却不断下降。
2. 类型繁多
与大数据现象有关的数据量为尝试处理其数据中心带来了新的挑战。随着传感器、智能设备以及社交协作技术的激增,企业中的数据也变得更加复杂,因为它不仅包含传统的关系型数据,还包括来自网页、互联网日志文件包括点击流量数据、音频、视频、图片、电子邮件、文档、地理位置信息、主动和被动的传感器数据等原始、半结构化和非结构化数据,这些多类型的数据对数据的处理能力提出了更高要求。
3. 价值密度低
价值密度的高低与数据总量的大小成反比。以视频为例,一部1小时的视频,在连续不断的监控中,有用数据可能仅有一二秒。如何通过强大的机器算法更迅速地完成数据的价值提纯成为目前大数据背景下亟待解决的难题。
4. 速度快、时效高
速度快、时效高是大数据区分于传统数据挖掘的最显著特征。根据IDC的数字宇宙的报告,预计到2020年,全球数据使用量将达到35.2ZB。在如此海量的数据面前,处理数据的效率就是企业的生命。
1.2.4大数据技术
大数据处理的关键技术一般包括: 大数据采集、大数据预处理、大数据存储及管理、大数据分析及挖掘、大数据展现和应用。
1. 大数据采集技术
数据是指通过RFID射频数据、传感器数据、社交网络交互数据及移动互联网数据等方式获得的各种类型的结构化、半结构化或称之为弱结构化及非结构化的海量数据,是大数据知识服务模型的根本。重点要突破分布式高速高可靠数据爬取或采集、高速数据全映像等大数据收集技术;突破高速数据解析、转换与装载等大数据整合技术;设计质量评估模型,开发数据质量技术。
大数据采集一般分为大数据智能感知层和基础支撑层。智能感知层主要包括数据传感体系、网络通信体系、传感适配体系、智能识别体系及软硬件资源接入系统,实现对结构化、半结构化、非结构化的海量数据的智能化识别、定位、跟踪、接入、传输、信号转换、监控、初步处理和管理等,必须着重攻克针对大数据源的智能识别、感知、适配、传输、接入等技术。基础支撑层提供大数据服务平台所需的虚拟服务器,结构化、半结构化及非结构化数据的数据库及物联网络资源等基础支撑环境。重点攻克分布式虚拟存储技术,大数据获取、存储、组织、分析和决策操作的可视化接口技术,大数据的网络传输与压缩技术,大数据隐私保护技术等。
2. 大数据预处理技术
大数据预处理主要完成对已接收数据的辨析、抽取、清洗等操作。
1 抽取。因获取的数据可能具有多种结构和类型,数据抽取过程可以帮助我们将这些复杂的数据转化为单一的或者便于处理的构型,以达到快速分析处理的目的。
2 清洗。对于大数据并不全是有价值的,有些数据并不是人们所关心的内容,而另一些数据则是完全错误的干扰项,因此要对数据通过过滤去噪提取出有效数据。
3. 大数据存储及管理技术
大数据存储与管理要用存储器把采集到的数据存储起来,建立相应的数据库,并进行管理和调用,重点解决复杂结构化、半结构化和非结构化大数据管理与处理技术,主要解决大数据的可存储、可表示、可处理、可靠性及有效传输等几个关键问题。
1 开发新型数据库技术。数据库分为关系型数据库、非关系型数据库以及数据库缓存系统。其中,非关系型数据库主要指的是NoSQL数据库,分为键值数据库、列存数据库、图存数据库以及文档数据库等类型。关系型数据库包含了传统关系数据库系统和NewSQL数据库。
2 开发大数据安全技术。大数据安全技术包括改进数据销毁、透明加解密、分布式访问控制、数据审计等技术;突破隐私保护和推理控制、数据真伪识别和取证、数据持有完整性验证等技术。
4. 大数据分析及挖掘技术
大数据分析及挖掘技术包括改进已有数据挖掘和机器学习技术;开发数据网络挖掘、特异群组挖掘、图挖掘等新型数据挖掘技术;突破基于对象的数据连接、相似性连接等大数据融合技术;突破用户兴趣分析、网络行为分析、情感语义分析等面向领域的大数据挖掘技术。
数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。数据挖掘涉及的技术方法很多,有多种分类法。
根据挖掘任务,可分为分类或预测模型发现,数据总结、聚类、关联规则发现,序列模式发现,依赖关系或依赖模型发现、异常和趋势发现等;根据挖掘对象可分为关系数据库、面向对象数据库、空间数据库、时态数据库、文本数据源、多媒体数据库、异质数据库、遗产数据库以及互联网Web。
根据挖掘方法,可粗分为机器学习方法、统计方法、神经网络方法和数据库方法。在机器学习中可细分为归纳学习方法决策树、规则归纳等、基于范例学习法、遗传算法等。在统计方法中可细分为回归分析多元回归、自回归等、判别分析贝叶斯判别、费歇尔判别、非参数判别等、聚类分析系统聚类、动态聚类等、探索性分析主元分析法、相关分析法等等。
挖掘任务和挖掘方法着重突破以下方面。
1 可视化分析。数据可视化无论对于普通用户或是数据分析专家,都是最基本的功能。数据图像化可以让数据自己说话,让用户直观地感受到结果。
2 数据挖掘算法。图像化是将机器语言翻译给人看,而数据挖掘就是机器的母语。通过分割、集群、孤立点分析及其他各种算法让人们精炼数据,挖掘价值。这些算法一定要能够应付大数据的量,同时还要具有很高的处理速度。
3 预测性分析。预测性分析可以让分析师根据图像化分析和数据挖掘的结果做出一些前瞻性判断。
4 语义引擎。语义引擎需要采用人工智能技术从数据中主动地提取信息。语言处理技术包括机器翻译、情感分析、舆情分析、智能输入、问答系统等。
5 数据质量和数据管理。数据质量与管理是管理的最佳实践,透过标准化流程和机器对数据进行处理可以确保获得一个预设质量的分析结果。
5. 大数据展现与应用技术
大数据技术能够将隐藏于海量数据中的信息和知识挖掘出来,为人类的社会经济活动提供依据,从而提高各个领域的运行效率,大大提高了整个社会经济的集约化程度。在我国,大数据将重点应用于商业智能、政府决策、公共服务三大领域。例如,商业智能技术,政府决策技术,电信数据信息处理与挖掘技术,电网数据信息处理与挖掘技术,气象信息分析技术,环境监测技术,警务云应用系统道路监控、视频监控、网络监控、智能交通、反电信诈骗、指挥调度等公安信息系统,大规模基因序列分析比对技术,Web信息挖掘技术,多媒体数据并行化处理技术,影视制作渲染技术,其他各种行业的云计算和海量数据处理应用技术等。
1.2.5行业应用大数据实例
关于啤酒加尿布的故事想必大家都耳熟能详了,下面介绍几个更有新意、更典型的关于大数据应用的实例,来帮助大家更清晰地理解和认识大数据时代。
大数据
技术基础
0第1章
大数据概论
01. 新公司耐克
耐克公司凭借一种名为Nike 的新产品变身为大数据营销的创新公司。所谓Nike ,是一种Nike跑鞋或腕带 传感器的产品,只要运动者穿着Nike 的跑鞋运动,iPod就可以存储并显示运动日期,时间、距离、热量消耗值等数据。用户上传数据到耐克社区,就能和其他用户分享这些数据。耐克公司和Facebook达成协议,用户上传的跑步状态会实时更新到账户里。随着跑步者不断上传自己的跑步路线,耐克公司由此掌握了主要城市里最佳跑步路线的数据库。凭借运动者上传的数据,耐克公司已经成功创建了全球最大的运动网上社区,超过500万活跃的用户,每天不停地上传数据,耐克公司借此与消费者建立前所未有的牢固关系。海量的数据同时对于耐克公司了解用户习惯、改进产品、精准投放和精准营销又起到了不可替代的作用。因为顾客跑步停下来休息时,交流最多的就是装备,什么追踪得更准,又出了什么更炫的鞋子。Nike 甚至让耐克公司掌握了跑步者最喜欢听的歌是哪些。
分析师称,Nike 的会员数在2011年增加了55%。其中,耐克公司的跑步业务收入增长了30%,达到了28亿美元,Nike 功不可没。
2. 农场云端管理服务商Farmeron
Farmeron旨在为全世界的农民提供类似于Google Analytics的数据跟踪和分析服务。农民可在其网站上利用这款软件,记录和跟踪自己饲养畜牧的情况,包括饲料库存、消耗和花费,畜牧的出生、死亡、产奶,还有农场收支等信息。其可贵之处在于: Farmeron帮着农场主将支离破碎的农业生产记录整理到一起,用先进的分析工具和报告有针对性地检测分析农场及生产状况,有利于农场主科学地制定农业生产计划。
Farmeron创建于克罗地亚,自2011年11月成立至今,Farmeron已经在14个国家建立了农业管理平台,为450个农场提供了商业监管服务。公司在2014年获得了140万美元的融资。
3. Morton牛排店的品牌认知
当一位顾客通过推特社交软件向位于芝加哥的牛排连锁店订餐并送餐到纽约Newark机场他将在一天之后抵达该处时,Morton就开始了自己的社交秀。首先,Morton要分析推特数据,确定该顾客是不是本店的常客,是否是推特的常用者。如果是,根据客户以往的订单,推测出其所乘的航班,然后派出一位身着燕尾服的侍者为客户提供晚餐。
4. 产品推荐
下面来看一则《纽约时报》报道的新闻。一位愤怒的父亲跑到美国Target超市投诉他近期收到超市寄给他大量的婴儿用品广告,而他的女儿还只不过是个高中生,但一周以后这位愤怒的父亲再次光临并向超市道歉,因为Target发来的婴儿用品促销广告并不是误发,他的女儿确实怀孕了。《纽约时报》的这则故事让很多人第一次感受到了变革,这次变革和人类经历过的若干次变革最大的不同在于: 它发生时无声无息,但它确确实实改变了人们的生活。
第3章认识HDFS01 不适合处理低延迟数据访问。如果要处理一些用户要求时间比较短的低延迟应用请求,则HDFS不适合。HDFS是为了处理大型数据集分析任务的,主要是为达到高的数据吞吐量而设计的,这就可能要求以高延迟作为代价。应对方案: 对于那些有低延时要求的应用程序,我们可以使用HBase,通过上层数据管理项目尽可能地弥补这个不足。2 无法高效存储大量的小文件。小文件是指文件大小小于HDFS上Block大小的文件。这样的文件会给Hadoop的扩展性和性能带来严重问题。因为NameNode名称节点把文件系统的元数据放置在内存中,所有文件系统所能容纳的文件数目是由NameNode的内存大小来决定的。 例如,每个文件、索引目录及块大约占100字节,如果有100万个文件,每个文件占一个块,那么至少要消耗200MB内存,但如果有更多的文件,那么NameNode的工作压力会更大,检索处理元数据所需要的时间会很漫长,这是很难以接受的。应对方案: 我们可以利用SequenceFile、MapFile等方式归档小文件,这个方法的原理就是把小文件归档起来管理。3 不支持多用户写入及任意修改文件。在HDFS的每个文件中只有一个写入者,而且写操作只能在文件末尾完成,即只能执行追加操作,目前HDFS还不支持多个用户对同一文件的写操作,以及在文件任意位置进行修改。这些也只是HDFS目前存在的一些问题,随着Hadoop的不断发展,只会更加成熟。3.2HDFS的特性和设计目标〖*2〗3.2.1HDFS的特性HDFS和传统的分布式文件系统相比较,有其独特的特性,可以总结为以下几点。1 高度容错,可扩展性及可配置性强。由于容错性高,因此非常适合部署利用通用的硬件平台构建容错性很高的分布式系统。容易扩展是指扩展无须改变架构,只需要增加节点即可,同时可配置性很强。2 跨平台。使用Java语言开发,支持多个主流平台环境。3 shell命令接口。和Linux文件系统一样,拥有文件系统shell命令,可直接操作HDFS。4 Web界面。NameNode和DataNode有内置的Web服务器,方便用户检查集群的当前状态。5 文件权限和授权。拥有和Linux系统类似的文件权限管理。6 机架感知功能。在调度任务和分配存储空间时系统会考虑节点的物理位置,从而实现高效访问和计算。7 安全模式。一种维护时需要的管理模式。8 Rebalancer。当DataNode之间数据不均衡时,可以平衡集群上的数据负载,实现数据负载均衡。9 升级和回滚。在软件更新后有异常发生的情况下,能够回滚到HDFS升级之前的状态。3.2.2HDFS的设计目标HDFS作为Hadoop的分布式文件存储系统,与传统的分布式文件系统有很多相同的设计目标,但是也有明显的不同之处。下面简述HDFS的设计目标。1. 检测和快速恢复硬件故障硬件故障是计算机常见的问题,而非异常问题。整个HDFS系统由成百上千个存储着数据文件的服务器组成,而HDFS的每个组件随时都有可能出现故障。因此,故障的检测和快速自动恢复是HDFS的一个核心目标。2. 流式数据访问运行在HDFS上的应用主要是以流式数据读取为主,HDFS被设计成适合进行批量处理,而不是用户交互式处理。所以它重视数据吞吐量,而不是数据访问的反应速度。3. 大规模数据集运行在HDFS上的应用具有很大的数据集。HDFS上的一个典型文件大小可能都在GB级甚至TB级,因此HDFS支持大文件存储,并能提供整体较高的数据传输带宽,能在一个集群里扩展到数百个节点。一个单一的HDFS实例应该能支撑数以千万计的文件。4. 简化一致性模型HDFS的应用程序需要对文件实行一次性写入、多次读取的访问模式。一个文件一旦经过创建、写入和关闭之后就不需要再修改了。这样的假设简化了数据一致性问题,使高吞吐量的数据访问成为可能。5. 移动计算代价比移动数据代价低对于大文件来说,移动计算比移动数据的代价要低一些。如果在数据旁边执行操作,那么效率会比较高,当数据特别大的时候效果更加明显,这样可以减少网络的拥塞和提高系统的吞吐量。这样就意味着,将计算移动到数据附近,比之将数据移动到应用所在之处显然更好,HDFS提供了这样的接口。6. 在异构的软硬件平台间的可移植性HDFS在设计时就考虑到平台的可移植性,这种特性方便了HDFS作为大规模数据应用平台的推广。7. 通信协议所有的通信协议都是在TCPIP协议之上的。一旦客户端和明确配置了端口的名字节点NameNode建立连接后,它和名字节点的协议便是客户端协议Client Protocal。数据节点DataNode和名字节点之间则用数据节点协议DataNode Protocal。3.3HDFS的核心设计〖*2〗3.3.1数据块每个磁盘都有默认的数据块Data Block大小,这是磁盘进行数据读写的最小单位。构建于单个磁盘之上的文件系统通过磁盘来管理该文件系统中的块,该文件系统块的大小可以是磁盘块的整数倍。文件系统块一般为几千字节,而一个磁盘块一般为512B。这些信息对用户来说都是透明的,都由系统来维护。HDFS是一个文件系统,它也遵循按块的方式进行文件操作的原则。在默认情况下,HDFS块的大小为128MB。也就是说,HDFS上的文件会被划分为多个大小为128MB默认时的数据块。当一个文件小于128MB时,HDFS不会让这个文件占据整个块的空间。扩展阅读为什么HDFS的块如此之大?HDFS的块比磁盘块要大,目的是减小寻址开销。通过这个足够大的块,从磁盘一次读取数据的时间将远远大于定位这个块开始端所消耗的时间。因此,传送一个由多块组成的文件的时间取决于磁盘传输速度。如果块太小,那么大量的时间将会花在磁盘块的定位时间上。对分布式文件系统中的块进行抽象会带来很多好处,具体有以下几点。1 一个文件的大小可以大于网络中任意一个磁盘的容量。文件的所有块并不需要存储在同一个磁盘上,因此它们可以利用集群上的任意一个磁盘进行存储。2 使用块而不是文件可以简化存储子系统。简化是所有系统的目标,但是这对于故障种类繁多的分布式系统来说尤为重要。将存储子系统控制单元设置为块,可简化存储管理由于块的大小是固定的,因此计算单个磁盘能存储多少个块相对容易一些。同时也消除了对元数据的顾虑,因为块的内容和块的元数据是分开存放和处理的,所以其他系统可以单独来管理这些元数据。3 块非常适用于数据备份,进而提供数据容错能力和可用性。将每个块复制到少数几个独立的机器上默认为3个,可以确保在发生块、磁盘或机器故障后数据不丢失。如果发现一个块不可用,系统会从其他地方读取另一个副本,而这个过程对用户是透明的。3.3.2数据复制HDFS被设计成一个可以在大集群中、跨机器、可靠地存储海量数据的框架。它将每个文件存储成块Block序列,除了最后一个Block,所有的Block都是同样的大小。文件的所有Block为了容错都会被冗余复制。每个文件的Block大小和复制Replication因子都是可配置的。Replication因子在文件创建的时候会默认读取客户端的HDFS配置,然后创建,以后也可以改变。HDFS中的文件只写入一次writeone,并且严格要求在任何时候只有一个写入者writer。HDFS的数据冗余复制示意如图31所示。图31数据冗余复制示意由图31可见,文件userzkpkdatapart0001的Replication因子值是2,Block的ID列表包括1和3,可以看到1和块3分别被冗余备份了两份数据块;文件userzkpkdatapart0002的Replication因子值是3,Block的ID列表包括2、4、5,可以看到块2、4、5分别被冗余复制了三份。在HDFS中,文件所有块的复制会全权由名称节点NameNode进行管理,NameNode周期性地从集群中的每个数据节点DataNode接收心跳包和一个BlockReport。心跳包的接收表示该DataNode节点正常工作,而BlockReport包括了该DataNode上所有的Block组成的列表。3.3.3数据副本的存放策略数据分块存储和副本的存放是HDFS保证可靠性和高性能的关键。HDFS将每个文件的数据进行分块存储,同时每一个数据块又保存有多个副本,这些数据块副本分布在不同的机器节点上。优化的副本存放策略是HDFS区分于其他大部分分布式文件系统的重要特性。这种特性需要做大量的调优,并需要经验积累。HDFS采用一种称为机架感知rackaware的策略来改进数据的可靠性、可用性和网络带宽的利用率。通过一个机架感知见3.3.4小节的过程,NameNode可以确定每个DataNode所属的机架ID。一个简单但没有优化的策略就是将副本存放在不同的机架上。这样可以有效防止当整个机架失效时数据的丢失,并且允许读数据的时候充分利用多个机架的带宽。这种策略设置可以将副本均匀分布在集群中,有利于组件失效情况下的负载均衡。但是,因为这种策略的一个写操作需要传输数据块到多个机架,因此增加了写的代价。目前实现的副本存放策略只是在这个方向上的第一步。实现这个策略的短期目标是验证它在生产环境下的有效性,观察它的行为,为实现更先进的策略打下测试和研究的基础。
|
|