基本信息
编辑推荐
本书作者杨正洪是国内知名大数据专家,是华中科技大学和中国地质大学客座教授,拥有国家专利,是湖北省2013年海外引进的科技人才,受武汉市政府邀请,成立武汉市云升科技发展有限公司,在浙江和上海分别有全资子公司,在美国硅谷设有研发中心。作者在与地方政府、证券金融公司的项目合作中发现,他们对大数据技术很感兴趣,并希望从大数据技术、大数据采集、管理、分析以及可视化等方面得到指导和应用帮助。因此编写了这本大数据技术的快速入门书。
本书以Hadoop和Spark框架为线索,比较全面地介绍了Hadoop技术、Spark技术、大数据存储、大数据访问、大数据采集、大数据管理、大数据分析等内容。最后还给出两个案例:环保大数据和公安大数据,供读者参考。
内容简介
计算机书籍
从2015年开始,国内大数据市场继续保持高速的发展态势,作者在与地方政府、证券金融公司的项目合作中发现,他们对大数据技术很感兴趣,并希望从大数据技术、大数据采集、管理、分析以及可视化等方面得到指导和应用帮助。因此编写了这本大数据技术的快速入门书。
本书共12章,以Hadoop和Spark框架为线索,比较全面地介绍了Hadoop技术、Spark技术、大数据存储、大数据访问、大数据采集、大数据管理、大数据分析等内容。最后还给出两个案例:环保大数据和公安大数据,供读者参考。
本书适合大数据技术初学者,政府、金融机构的大数据应用决策和技术人员,IT经理,CTO,CIO等快速学习大数据技术。本书也可以作为高等院校和培训学校相关专业的培训教材。
作译者
杨正洪是华中科技大学和中国地质大学客座教授,拥有国家专利,是湖北省2013年海外引进人才。受武汉市政府邀请,杨正洪于2012年12月发起成立武汉市云升科技发展有限公司,并获得东湖高新技术开发区办公场所和资金支持。目前公司在浙江和上海分别有全资子公司,在美国硅谷设有研发中心。公司的核心产品是大数据管理平台EasyDoop,并以EasyDoop为基础研发了公安大数据产品和环保大数据产品。这些产品在公安和环保行业得到成功实施,三次被中央电视台新闻联播节目播报,省部长级政府领导亲自考察,并给予了很高的评价。
杨正洪参与了多项大数据相关标准的制定工作,曾受邀参与了公安部主导的“信息安全技术-大数据平台安全管理产品安全技术要求”的国家标准制定。
目录
第1章 大数据时代 1
1.1 什么是大数据 1
1.2 大数据的四大特征 2
1.3 大数据的商用化 3
1.4 大数据分析 5
1.5 大数据与云计算的关系 5
1.6 大数据的国家战略 6
1.6.1 政府大数据的价值 7
1.6.2 政府大数据的应用场景 8
1.7 企业如何迎接大数据 8
1.7.1 评估大数据方案的维度 9
1.7.2 业务价值维度 10
1.7.3 数据维度 11
1.7.4 现有IT环境和成本维度 12
1.7.5 数据治理维度 13
1.8 大数据产业链分析 14
1.8.1 技术分析 14
1.8.2 角色分析 15
1.8.3 大数据运营 17
前言
我们生活在大数据时代,正以前所未有的速度和规模产生数据。数据资产正成为和土地、资本、人力并驾齐驱的关键生产要素,并在社会、经济、科学研究等方面颠覆人们探索世界的方法、驱动产业间的融合与分立。
大数据是用来描述数据规模巨大、数据类型复杂的数据集,它本身蕴含着丰富的价值。比如:在金融行业,企业和个人的一些信用记录、消费记录、客户点击数据集、客户刷卡、存取款、电子银行转账、微信评论等行为数据组合为金融大数据,他们利用大数据技术为财富客户推荐产品,利用客户行为数据设计满足客户需求的金融产品,利用金融行业全局数据了解业务运营薄弱点并加快内部数据处理速度,利用决策树技术进入抵押贷款管理,利用数据分析报告实施产业信贷风险控制,利用客户社交行为记录实施信用卡反欺诈,依据客户消费习惯、地理位置、销售时间进行推荐(精准营销)。不仅仅金融行业,政府部门会根据大数据分析结果来做预算,企业也会根据大数据来进行市场策略调整。
Gartner指出,64%的受访企业表示他们正在或是即将进行大数据工作,然而其中一些企业却并不知道他们能够使用大数据做些什么。这正好印证了大数据领域的最主要的两个挑战:如何从大数据中获取价值以及如何定义大数据战略。这是本书首先需要解释的内容。
谷歌、Amazon、Facebook等全球知名互联网企业作为大数据领域的先驱者,凭借自身力量进行大数据探索,甚至在必要时创造出相关工具。这些工具目前已经被视为大数据技术的基础,其中最知名的当数MapReduce与Hadoop。Hadoop是目前处理大规模结构化与非结构数据的首选平台,它提供了分布式处理框架与开发环境。MapReduce是一种计算框架,它实现了将大型数据处理任务分解成很多单个的、可以在服务器集群中并行执行的任务,这些任务的计算结果可以合并在一起来计算最终的结果。在Hadoop问世以来的十年间,新的组件(如:Spark)层出不穷,极大地扩张了整个Hadoop生态圈。
大数据技术有别于传统数据处理工具和技术,而且大数据技术很难掌握,一般需要1-2年的反复尝试,在实际使用中解决了大量问题之后才能正确理解它。我们编写这本书的目的是,以硅谷大数据实战为基础,让读者略过那些不重要的大数据的细枝末节,通过实际的案例,帮助读者快速掌握大数据技术领域最能商用的大数据工具和软件平台,从而帮助读者轻松实施大数据方案。在本书中,我们将阐述如下最为硅谷所熟知的大数据相关技术:
? 框架:Hadoop、Spark。
? 集群管理:MapReduce、Yarn、Mesos。
? 开发语言:Java、Python、Scala、Pig、Hive、Spark SQL。
? 数据库:NoSQL、HBase、Cassandra、Impala。
? 文件系统:HDFS、Ceph。
? 搜索系统:Elastic Search。
? 采集系统:Flume、Sqoop、Kafka。
? 流式处理:Spark Streaming、Storm。
? 发行版:HortonWorks、Cloudera、MapR。
? 管理系统:Ambari、大数据管理平台。
? 机器学习:Spark MLlib、Mahout。
上面的列表也说明了,Hadoop生态圈有几十个软件组成。这些软件提供了什么功能?到底在什么情况下使用什么软件?软件之间怎么组合使用?这些问题正是本书想要回答的。本书与市场上其他大数据书籍的区别是,我们不是专注某一个软件(比如:Spark),而是阐述整个生态圈中的主流软件,通过实例让你理解这些软件是什么,在什么场合使用,相互的区别是什么。如果我们把这几十个软件比喻成几十种厨房工具,那就是让你避免拿着菜刀去削苹果,或者拿着水果刀去剁肉。
除了阐述大数据的定义、前景和各类Hadoop发行版之外,本书主要是按照大数据处理的几个大步骤来组织内容的。
(1)大数据存储:探究HDFS和HBase作为大数据存储方式的优劣。
媒体评论
书摘
Apache Spark 是一个新兴的大数据处理通用引擎,提供了分布式的内存抽象。Spark最大的特点就是快(Lightning-Fast),可比 Hadoop MapReduce 的处理速度快 100 倍。此外,Spark 提供了简单易用的 API,几行代码就能实现 WordCount。本章介绍Spark 的框架,Spark Shell 、RDD、Spark SQL、Spark Streaming 等的基本使用。
9.1 Spark框架
Spark作为新一代大数据快速处理平台,集成了大数据相关的各种能力。Hadoop的中间数据需要存储在硬盘上,这产生了较高的延迟。而Spark基于内存计算,解决了这个延迟的速度问题。Spark本身可以直接读写Hadoop上任何格式数据,这使得批处理更加快速。
图9-1是以Spark为核心的大数据处理框架。最底层为大数据存储系统,如:HDFS、HBase等。在存储系统上面是Spark集群模式(也可以认为是资源管理层),这包括Spark自带的独立部署模式、YARN和Mesos集群资源管理模式,也可以是Amazon EC2。Spark内核之上是为应用提供各类服务的组件。Spark内核API支持Java、Python、Scala等编程语言。Spark Streaming提供高可靠性、高吞吐量的实时流式处理服务,能够满足实时系统要求;MLib提供机器学习服务,Spark SQL提供了性能比Hive快了很多倍的SQL查询服务,GraphX提供图计算服务。
图9-1 Spark 框架
从上图看出,Spark有效集成了Hadoop组件,可以基于Hadoop YARN作为资源管理框架,并从HDFS和HBase数据源上读取数据。YARN是Spark目前主要使用的资源管理器。Hadoop能做的,Spark基本都能做,而且做的比Hadoop好。Spark依然是Hadoop生态圈的一员,它替换的主要是MR的计算模型而已。资源调度依赖于YARN,存储则依赖于HDFS。
Spark的大数据处理平台是建立在统一抽象的RDD之上。RDD是弹性分布式数据集(Resilient Distributed Dataset)的英文简称,它是一种特殊数据集合,支持多种来源,有容错机制,可以被缓存,支持并行操作。Spark的一切都是基于RDD的。RDD就是Spark输入的数据。
Spark应用程序在集群上以独立进程集合的形式运行。如图9-2所示,主程序(叫做Driver程序)中的SparkContext对象协调Spark应用程序。SparkContext对象首先连接到多种集群管理器(如:YARN),然后在集群节点上获得Executor。SparkContext把应用代码发给Executor,Executor负责应用程序的计算和数据存储。
图9-2 集群模式
每个应用程序都拥有自己的Executor。Executor为应用程序提供了一个隔离的运行环境,以Task的形式执行作业。对于Spark Shell来说,这个Driver就是与用户交互的进程。
9.1.1 安装Spark
最新的Spark版本是1.6.1。它可以运行在Windows或Linux机器上。运行 Spark 需要 Java JDK 1.7,CentOS 6.x 系统默认只安装了 Java JRE,还需要安装 Java JDK,并确保配置好 JAVA_HOME、PATH和CLASSPATH变量。此外,Spark 会用到 HDFS 与 YARN,因此读者要先安装好 Hadoop。我们可以从Spark官方网站http://spark.apache.org/downloads.html上下载Spark,如图9-3所示。
图9-3 下载安装包
有几种Package type,分别为:
? Source code:Spark 源码,需要编译才能使用。
? Pre-build with user-provided Hadoop:“Hadoop free”版,可应用到任意 Hadoop 版本。
? Pre-build for Hadoop 2.6 and later:基于 Hadoop 2.6 的预编译版,需要与本机安装的 Hadoop 版本对应。可选的还有 Hadoop 2.4 and later、Hadoop 2.3、Hadoop 1.x,以及 CDH 4。
本书选择的是 Pre-build with user-provided Hadoop,简单配置后可应用到任意 Hadoop 版本。下载后,执行如下命令进行安装:
sudo tar -zxf spark-1.6.1-bin-without-hadoop.tgz -C /usr/local/