书海网短评:
全面论述从实际应用中提取出的数据挖掘和Hadoop相关概念和技术 使用实际案例为用户全面介绍Hadoop,而不只是停留在理论层面上 详细解读Hadoop相关领域全新的技术和商业大数据应用的动态变化
全面论述从实际应用中提取出的数据挖掘和Hadoop相关概念和技术
使用实际案例为用户全面介绍Hadoop,而不只是停留在理论层面上
详细解读Hadoop相关领域全新的技术和商业大数据应用的动态变化
《Hadoop应用实战》全面地讲述了Hadoop相关领域的重要知识和*的技术及应用。书中首先介绍了数据挖掘的基础知识、Hadoop的基本框架和相关信息,然后系统地描述了如何在各类行业中用好Hadoop来做数据挖掘。
《Hadoop应用实战》面向的主要读者人群是想了解Hadoop与大数据的技术人员,无论他们是在互联网企业,还是在传统企业;无论他们从事的是技术或者运维工作,专业做数据分析,还是企业的策略官、市场官和运营官,都能从《Hadoop应用实战》中找到各自所需要的内容。
《Hadoop应用实战》可以帮助读者开阔眼界和找到方法,让他们知道如何分析实际商业场景和业务问题,构建基于Hadoop的大数据系统,通过使用数据运营,对公司业务运营带来直接的效益。当然对于学生、教师和有志于从业大数据运营的人员来说,也是一本实用的教材。
谭磊,复旦大学计算机学士,美国杜克大学计算机硕士,《NewInternet:大数据挖掘》和《区块链2.0》等8本专业书籍的作者和译者,NABA北美区块链协会联合创始人,中国工业设计协会CIO,复旦大学软件学院硕士导师,杭州数字化产业综合服务中心主任。
在美国微软服务时间超过13年,曾经担任多家公司多个层级技术管理岗位,在搜索、互联网广告、数据挖掘、电子商务等方面有丰富的经验,是互联网技术领域ZI深专家。
范磊,前英特尔亚太区大数据总监,知名大数据专家,星环科技联合创始人兼CEO。
第1章大数据概念的老调重弹........1
1.1互联网和物联网上的数据2
1.1.1互联网上越来越多的数据被存储.2
1.1.2物联网带来更多的数据.................4
1.2数据能为我们做的事........5
1.2.1用户画像和任何企业都需要关注的数据........................6
1.2.2大数据的3V、4V和N个V........7
1.2.3从数据分析到数据挖掘.................8
1.2.4大数据处理的三个维度.................9
1.3数据挖掘中的一些基本概念...................11
1.3.1分类算法....11
1.3.2聚类算法....12
1.3.3关联算法....13
1.3.4序列算法....14
1.3.5估测和预测14
1.3.6A/BTest.....15
1.4数据仓库................16
1.4.1数据仓库是解决大数据存储的基础设施......................17
1.4.24种不同类型的数据仓库............18
1.4.3国内外数据仓库的不同使用方式.........19
1.5不包含在《Hadoop应用实战》中的内容..21
1.6这《Hadoop应用实战》都讲些啥....22
第2章Hadoop的前世今生...........25
2.1Google的计算框架.........26
2.1.1Google公司的三篇论文..............26
2.1.2GFS文件系统.....27
2.1.3MapReduce的模型和框架..........28
2.1.4BigTable数据库..29
2.2Hadoop的诞生......30
2.2.1从GFS到HDFS.30
2.2.2Hadoop的基础计算框架MapReduce...31
2.2.3从BigTable到HBase..................33
2.3Hadoop的今天......33
2.4Hadoop大事记......35
第3章等同于大数据的Hadoop...37
3.1Hadoop理念..........38
3.2Hadoop核心基础架构....39
3.2.1Namenode和Datanode................39
3.2.2Hadoop底层的文件系统HDFS..40
3.2.3Hadoop上的数据库HBase.........42
3.3Hadoop上的各种其他组件.....................44
3.3.1资源分配系统YARN..................44
3.3.2灵活的编程语言pig.....................46
3.3.3数据挖掘工具Mahout.................48
3.3.4专注于数据挖掘的R语言..........48
3.3.5数据仓库工具Hive......................49
3.3.6数据采集系统Flume...................51
3.4Spark和Hadoop....51
3.4.1闪电侠出现了......51
3.4.2大数据领域的TaylorSwift.........52
3.4.3Spark的架构.......53
3.4.4Spark和流处理...54
第4章Hadoop的价值..................57
4.1大数据时代需要新的架构.......................58
4.1.1企业IT面临的挑战.....................58
4.1.2数据分析要考虑的问题...............59
4.1.3新的IT架构的需求.....................60
4.2Hadoop能解决的问题....61
4.2.1Hadoop适合做的事情.................61
4.2.2Hadoop对系统数据安全性的保障.......62
4.2.3数据流与数据流处理...................62
4.3去IOE....................65
4.47种最常见的Hadoop和Spark项目......71
第5章Hadoop系统速成..............75
5.1Hadoop系统搭建速成....76
5.1.1Hadoop系统的三种运行模式.....76
5.1.2单点搭建Hadoop系统................76
5.1.3全分布式(多节点)搭建Hadoop系统...80
5.1.4在Hadoop上编程........................83
5.1.5Hadoop系统的典型配置.............83
5.2在云上运行Hadoop........85
5.2.1在金山云上运行Hadoop.............86
5.2.2微软的HDInsight89
5.3Hadoop信息大全..90
第6章数据仓库和Hadoop...........93
6.1大数据时代的数据系统设计...................94
6.1.1分布式系统上的CAP原理.........94
6.1.2ACID和BASE概念的区别........95
6.1.3NoSQL.......96
6.1.4各种数据源的整合.....................100
6.2传统数据仓库的瓶颈....101
6.2.1传统数据仓库的瓶颈之一:数据量的问题................101
6.2.2传统数据仓库的瓶颈之二:数据类型的问题............102
6.2.3传统数据仓库的瓶颈之三:数据处理的延时问题....102
6.2.4传统数据仓库的瓶颈之四:数据模型的变化问题....103
6.3Hadoop是解决数据仓库瓶颈的方法..104
6.3.1解决数据量的问题.....................104
6.3.2解决数据类型的问题.................105
6.3.3数据处理的速度问题.................106
6.3.4数据模型的变化问题.................107
6.4基于Hadoop和Spark的数据仓库解决方案.108
6.4.1基于Hadoop/Spark结构的数据仓库系统架构...........108
6.4.2分布式计算引擎109
6.4.3标准化的编程模型.....................110
6.4.4数据操作方式的多样性.............110
6.4.5OLAP交互式统计分析能力.....110
6.4.6多类型数据的处理能力.............111
6.4.7实时计算与企业数据总线.........111
6.4.8数据探索与挖掘能力.................111
6.4.9安全性和权限管理.....................112
6.4.10混合负载管理..112
第7章在不同应用环境下的Hadoop....115
7.1在存储密集型环境中的Hadoop...........116
7.2在网络密集型环境中的Hadoop...........118
7.3在运算密集型环境中的Hadoop...........121
7.4Hadoop平台的对比和选择...................127
7.4.1为什么会选择商用的Hadoop系统....127
7.4.2商用Hadoop系统之间的选择..130
第8章Hadoop在互联网公司的应用....133
8.1Hadoop在腾讯....134
8.2Hadoop在Facebook的应用.................138
8.3金山的Hadoop....140
8.4迅雷公司对Hadoop的应用..................144
第9章Hadoop和行业应用之一.147
9.1Hadoop和运营商148
9.2Hadoop和公用事业......163
9.3Hadoop和“智慧工商”.......................175
9.4Hadoop和政务云183
第10章Hadoop与“衣食住行”中的“食”和“行”....191
10.1Hadoop和“食”........192
10.2Hadoop和“行”........201
第11章Hadoop和行业应用之三.........209
11.1Hadoop和金融..210
11.1.1金融的大数据属性...................210
11.1.2金融企业的风险控制...............211
11.2Hadoop和医疗..221
11.3Hadoop和物流..226
11.4Hadoop和媒体..229
第12章特殊场景下的Hadoop系统.....237
12.1Hadoop和实时系统....238
12.2Hadoop平台的一些特殊场景实现.....243
第13章Hadoop系统的挑战和应对......247
13.1Hadoop系统使用须知248
13.2Hadoop平台风险点预估.....................250
13.2.1Namenode的单点故障和系统的可用性...................250
13.2.2集群硬件故障导致平台可靠性与可用性大幅降低251
13.2.3Hadoop集群大数据安全和隐私问题........................252
13.3Hadoop平台硬件故障的应对机制.....252
13.3.1监控软硬件故障的应对机制...253
13.3.2断电处理255
13.4Hadoop平台如何真正做到高可用性.255
13.4.1Hadoop系统的高可用性冗余性保障........................256
13.4.2Facebook的NamenodeHA的方案..256
13.4.3TDH的Namenode高可用性冗余解决方案.............257
13.5Hadoop平台安全性和隐私性的应对机制...259
13.5.1关于安全和隐私问题的7个事项.....259
13.5.2星环的4A级统一安全管理解决方案.......................259
13.5.3Hadoop系统安全Checklist.....262
第14章Hadoop的未来..............263
14.1Hadoop未来的发展趋势.....................264
14.1.1对数据系统的不断升级...........264
14.1.2机器学习264
14.2Hadoop和区块链........265
附录A专业词汇表.......................267
附录B引用文献.271
附录C参考网站一览...................273
附录DHDFS命令行列表............275
附录E《Hadoop应用实战》引用案例索引............278
第3章等同于大数据的Hadoop
在本章中,我们为读者们介绍:
?Hadoop的核心理念是什么?
?Hadoop的核心基础框架上包含哪些组件?
?Hadoop的生态系统中还有哪些有用的组件?
?Spark有什么用?
?Spark和Hadoop系统有什么关联?
Hadoop可以处理结构化数据,同时也可以很好地处理非结构化或者半结构化数据。在今天,Hadoop已经成为存储、处理和分析大数据的标准平台。当人们说要搭建大数据平台时,很多时候默认的就是搭建Hadoop平台。
本章介绍的是Hadoop核心系统上的各个组件,以及系统上相关的其他各种组件。由于《Hadoop应用实战》的重点在于Hadoop技术的实际应用,而不是讲解Hadoop技术,所以因篇幅关系,我们并不会在本章中描述所有的Hadoop组件。
在本章的最后,我们会为读者介绍Spark系统。
3.1Hadoop理念
标准的Hadoop系统存储的数据是NoSQL模式的。关于NoSQL模式,我们会在第6章专门讲述。用一句话来说,其实Hadoop可以存储以下任何类型的内容。
(1)结构化数据;
(2)半结构化数据,比如日志文档;
(3)完全没有结构的内容,比如文本文件;
(4)二进制内容,比如音频、视频等。
Hadoop系统有以下特点,如图3-1所示。
(1)可靠性高。
(2)可扩展性好。
(3)性价比高。
(4)灵活。
图3-1Hadoop系统的特性
3.2Hadoop核心基础架构
Hadoop系统上有很多不同的组件,在本节中我们讨论的是对Hadoop起到重要作用的核心组件。
3.2.1Namenode和Datanode
Namenode又称为MasterNode,主节点;Datanode又称为SlaveNode,从属节点。合在一起,Namenode和Datanode之间有Master和Slave的关系,或者说从属关系①。对于Namenode和Datanode节点还有各种不同的说法,比如“管理节点”和“工作节点”等,都说明数据节点是不可以脱离主节点单独存在的。
在Datanode上,有一个后台的同名进程(Datanode),用以管理数据节点上所有的数据块。通过这个进程,数据节点会定期和主节点通信,汇报本地数据的状况。
在Hadoop系统进行设计的时候,对数据节点作了以下的假设。
(1)数据节点主要用来作存储,额外的开销越小越好;
(2)对于普通的硬盘来说,任何硬盘都可能会失败;
(3)文件和数据块的任何一个副本都是完全一致的。
因为数据节点上采用的一般是普通硬盘,那么每块硬盘失效的概率大概是每年4%~5%。如果我们的系统上有100个数据节点,而每一个数据节点都有12块硬盘,那么平均每周都会需要更换至少一块硬盘。
正是因为这些假设,默认Hadoop系统上每个文件和数据块都有三个副本,而当中间任何的一个副本出现问题的时候,系统都会把对文件和数据块的访问切换到其他的副本上,并会重新设置使得文件和数据块都保持有三个副本。
对于Hadoop的用户来说,他们并不需要了解数据存储的细节,也不需要知道文件的各个数据块是存储在哪些数据节点上的,他们只需要对文件进行操作,对应的拆分和多个副本的存储是由系统自动完成的。
和Datanode一样,Namenode节点上也有一个同名的后台进程(Namenode),而所有的文件匹配信息则保存在一个名为fsimage的文件中,所有新的操作修改保存在一个名为edits的文件中。edits文件中的内容会定期写入fsimage文件中。
把fsimage和edits文件中的信息综合起来,我们就可以知道所有的数据文件和对应的数据块的具体位置,而这些信息都会保存在Namenode节点的内存中。
主节点和数据节点之间的通信协议如下。
①在计算机领域,Master和Slave是常用的关系词,用来表示主导和跟随的状态。在数据库领域、网络节点上都经常用到。
(1)每隔3s,数据节点都会发送心跳(heartbeat)信息①给Namenode节点,所以Namenode永远都会实时知道哪些数据节点是在线的;
(2)每隔6h,数据节点会发送完整的数据块报告给Namenode,所以Namenode会知道系统上各个文件和相关数据块的准确位置。
这里的3s和6h都可以配置,这两个数值是默认值。
文件和数据存储在数据节点的信息是保存在主节点上的,所以对于众多数据节点来说,主节点就像是一个指挥中心或者地址黄页。换句话说,只有主节点才能准确指引用户对每个文件的访问。
那么Namenode节点一旦失效该怎么办?我们会在第13章中专门讨论Namenode节点的高可用性问题。
最后我们来看一下文件是如何写入系统中的,如图3-2所示。
图3-2在Hadoop系统上创建文件的流程
图3-2中提到的“合约”是Namenode上的一个小工具,确保文件和副本能够被安全创建。因为在一个Hadoop系统上只有Namenode节点才知道数据文件是如何存储的,所以所有的读请求都是发送给Namenode节点,由它来进行分配的。
大数据的价值在于商业应用
从2006年雅虎等团队开始研发Hadoop技术至今已整整10年。在这10年中技术发展迅速,Hadoop上的生态系统逐渐扩大,各个行业的用户都在基于这一新的技术来开发各种应用,还有很多企业将原先基于传统IT系统的应用逐步向Hadoop上迁移。
根据InterquestGroup作的2016年报告,排名第一的技术工种就是DataScientist(数据科学家)。今天有大数据技术能力的同学们在找工作的时候是炙手可热的,而他们需要掌握的一项关键技能就是Hadoop。
我们相信,Hadoop会成为企业数据中心的核心,而范磊和孙元浩同学的星环科技,其核心产品也逐渐定位成企业核心的DataHub(数据集散地)。Hadoop经过这10年的发展,在2016年开始进入一个战略转折点。这意味着新的技术开始逐渐取代和超越老的技术,并在各个行业迅速发展。在未来的若干年之内,取代过程还会不断加速。
我们认为,Hadoop技术能成功的最根本原因在于它是把传统的集中式运算有效地转化成分布式计算的一种有效手段。集中计算演变成分布式是一个必然趋势,当然并不是说一定只有Hadoop才是这个演进的唯一手段,不过它至少是可选的一个不错的手段。
《Hadoop应用实战》中有很多说法和内容是由星环科技的CTO孙元浩同学独家赞助的。而在解释一些实际场景中相对棘手的问题时,为了简单起见,直接借用了星环科技之前的一些处理问题的方法和思路。
感谢我的好朋友金官丁同学(网上化名mysqlops)提供的帮助。感谢腾讯的邱跃鹏和赵建春同学,感谢迅雷的刘智聪同学,感谢金山的朱桦同学和杨亮同学,感谢百度的朱观胤同学。我们还要特别感谢蔡可可、胡一刀、张泽澄、唐继瑞、李晶、谭彬同学为《Hadoop应用实战》做的大量资料收集和整理工作以及唐继瑞为《Hadoop应用实战》设计的章徽。
讲述大数据和Hadoop相关概念的书已经有很多了,《Hadoop应用实战》更多想做的不是新闻和概念的堆砌、示例代码的详解,或者是某一项技术的再一次陈述,而是从实际场景出发,为读者们讲述应用中的Hadoop应该是怎样的。
《Hadoop应用实战》主要特点:
(1)全面实用地论述了从实际应用中提取出的数据挖掘和Hadoop相关概念和技术。
(2)用实际案例为用户介绍Hadoop,而不只是停留在理论层面。
(3)详解Hadoop相关领域最新的技术和商业应用大数据应用的动态变化。
按照刘智聪同学的说法,现在的Hadoop系统已经是基建了,几乎所有非实时的系统都
可以在Hadoop上实现。而当Hadoop生态系统上出现Spark和Storm之后,就算是实时系统,在很多时候也是可以轻松实现的。
作为在IT和互联网行业沉浮了20年的老兵,我们觉得写这样一《Hadoop应用实战》来讲实战应用是
非常有必要的,因为我们一直在思考:
(1)大数据服务应该是怎样的?
(2)大数据究竟能够为我们做什么?
(3)大数据在做实际应用的时候会碰到什么样的问题?
(4)大数据应用的这些问题究竟应该是怎样解决的?
(5)怎样以最好的方式把最新的大数据技术应用到商业系统上去?
(6)大数据应用做到极致的时候应该是怎样的?
Gartner认为,到2020年,信息将被用于重新创造、数字化或消除80%的业务流程和产品。而我们认为,技术终究是为商业来服务的,一项技术的生命力究竟如何,取决于它在真实社会和经济场景中所发挥出的价值。
随着近年来大数据技术的高速演变,我们预计未来3年数据库以及数据仓库技术会发生巨大的变化。正如Gartner所预计的,我们的大部分企业客户会把数据仓库从以前的传统数据仓库转移到逻辑数据仓库中,Hadoop在其中会扮演非常重要的角色,很多企业应用也已经开始把Hadoop作为数据仓库的重要组成部分。
数据平台市场每年创造的价值巨大,但大部分都被Oracle、IBM、Teradata等国外巨头瓜分,星环科技算是唯一的可以与这些国外巨头一争高下的国内大数据厂家,我们希望能够有更多的国内同行投入到基于Hadoop的数据仓库平台的研发之中,打造出大数据时代的杰出数据库和数据仓库产品,摆脱国外巨头们对这个行业的垄断,帮助中国科技在企业服务领域实现质的突破。
《Hadoop应用实战》不是为了讲述教科书式的概念,而是为了告诉大家Hadoop究竟能够为我们的企业做些什么。我们会从一些真实靠谱的案例出发,讲述在各种场景下如何应用Hadoop。
我们尽量把这《Hadoop应用实战》写得浅显易懂,所以并不需要读者有太多大数据的知识或者拥有编程语言的经验。当然,如果读者有过Java或者类似编程语言的经验,对于深入理解《Hadoop应用实战》的一些内容是有帮助的。
因为我们的能力所限,而且《Hadoop应用实战》所覆盖的案例来自各个不同的领域,在陈述或者描述中可能出现一些错误或者遗漏,欢迎读者指出,或者也可以把你想读到的某些场景下的Hadoop应用反馈给我们。
《Hadoop应用实战》中所有的案例均是实际案例,如果读者觉得有虚构成分,纯属偶然。
编者









