Hadoop大数据实战权威指南(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-24 23:28:23

点击下载

作者:黄东军

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

Hadoop大数据实战权威指南

Hadoop大数据实战权威指南试读:

前言

本书内容

本书分为三篇,共有12章。

第一篇 大数据的基本概念和技术

第1章 绪论,描述大数据的时代背景与国家大数据战略,探讨大数据的概念和特性,重点阐述大数据支撑体系,包括数据采集、存储、分布式计算和应用,并讨论大数据人才特点与能力要求。

第2章 Hadoop大数据关键技术,详细介绍大数据系统涉及的主流技术,主要包括数据采集与生成、数据分布式存储、分布式计算框架、数据分析与挖掘等方面的技术和工具。

第二篇 Hadoop大数据平台搭建与基本应用

第3章 Linux操作系统与集群搭建,介绍Linux集群的安装、Java开发包JDK的安装,以及集群的配置方法。

第4章 HDFS 安装与基本应用,介绍 Hadoop HDFS 的架构、工作原理,以及Hadoop安装、配置、启动和程序的运行。

第5章 MapReduce 与 YARN,介绍 MapReduce 的工作原理,描述MapReduceV2 (也就是YARN)的架构和执行流程。本章重点介绍如何设计MapReduce程序,给出了在Eclipse中实现Java语言MapReduce程序的具体过程。

第6章 Hive和HBase的安装与应用,主要介绍Hive和HBase的安装配置和应用方法,同时也介绍MySQL和ZooKeeper的安装与应用。

第7章 Sqoop和Kafka,介绍Sqoop和Kafka组件的安装及其基本应用方法。

第8章 Spark集群安装与开发环境配置,介绍Spark架构及其工作原理,详细介绍Spark开发环境的安装与配置,包括热门的 IntelliJ IDEA集成开发环境的安装与基本应用。

第9章 Spark应用基础,介绍Spark程序的运行模式和应用设计方法,通过编写计算圆周率Pi、基于随机森林模型的贷款风险预测Scala程序,展示了在集成开发环境IDEA中编写Spark程序的流程。

第三篇 大数据处理与项目开发

第10章 交互式数据处理,介绍如何利用Hive进行大数据处理和分析。Hive是建立在Hadoop MapReduce基础上的数据仓库工具,用户借助SQL语句,可完成很多处理和分析,因此,对实际工作者有很大帮助。

第11章 协同过滤推荐系统,介绍推荐算法的基本概念和应用,展示基于Spark的机器学库MLlib实现的协同推荐应用。

第12章 销售数据分析系统,通过一个完整的销售数据分析系统设计,展示如何利用 Hadoop 的各种组件开发实际的大数据应用系统。本章运用到的组件包括 HDFS、MySQL、Eclipse、Phoenix、HBase、WebCollector、Sevlet、Tomcat等,所展示的数据和应用均来自真实场景,对读者有较高参考价值。本书特点

把原理、架构、运行流程分析与实际应用融合起来介绍,融合性阐述框架优于单纯的原理分析,因为原理最终要付诸应用。

本书高度重视实践能力的培养,对系统安装、配置和应用过程给出了十分详细的描述,所有实验都是基于实际完成的操作介绍的,并配有现场截图,为读者展示了真实、详尽、可重现的场景,十分方便读者自学和钻研。

与很多大数据技术书籍不同,本书突出了数据处理本身,深入介绍了如何运用技术进行实际的数据分析,所采用的数据样本来自生产一线,所展示的项目具有实用的参考价值,读者掌握这些技术之后,就可以开始进行项目开发了。本书的读者群

本书十分适合初学者入门和进阶。

本书也可供那些已经学习过Hadoop组件技术,但希望全面、系统地理解并掌握实际应用的读者参考。

本书对从事大数据项目开发的专业人员也有参考价值,书中所描述的Hadoop组件应用中遇到的各种问题及其解决办法,十分实用。

本书特别适合自学,读者完全可以利用本书给出的资源和示例,一步一步地完成各项操作和应用,体验一种登堂入室的成就感。致谢

感谢大数据时代,感谢开源社区,感谢Apache基金会,感谢Google,感谢所有关心和热爱大数据的人们!

作者在创作本书中借鉴了中科普开(北京)科技公司的部分培训资源,在此谨表示衷心的感谢。特别感谢中南大学郑瑾副教授,本书的部分内容使用了她编撰的书稿。由衷地感谢王建新教授、李建彬教授、张祖平教授,他们耐心地审阅了本书,提出了中肯的意见和建议。非常感谢电子工业出版社田宏峰编辑,他细心专业的工作方式,给作者留下深刻印象,并为本书的高质量印装提供了保障。

由于作者水平有限,本书的错误和疏漏在所难免,恳请广大读者提出宝贵意见和建议。联系邮箱:djhuang@csu.edu.cn。作者2017年6月于长沙第一篇大数据的基本概念和技术第1章 绪论

最早提出“大数据”时代到来的全球知名咨询公司麦肯锡称:“数据,已经渗透到当今每一个行业和业务职能领域,成为重要的生产因素。人们对于海量数据的挖掘和运用,预示着新一波生产率增长和消费者盈余浪潮的到来”。

本章主要分析大数据的时代背景与国家大数据战略,给出大数据的概念,并分析其特性,重点介绍大数据技术支撑体系,包括数据采集、存储、分布式计算和应用,最后简要讨论大数据人才特点与能力要求。1.1 时代背景1.1.1 全球大数据浪潮

为什么最近几年里大数据变得如此引人注目?大数据到底有多大?

一组名为“互联网上一天”的数据告诉我们,一天之中,互联网产生的全部内容可以刻满1.68亿张DVD;发出的邮件有2940亿封之多;发出的社区帖子达200万个(相当于《时代》杂志770年的文字量);卖出的手机为37.8万台,高于全球每天出生的婴儿数量37.1万。

目前,全球数据量已经从TB(1024 GB=1 TB)级别跃升到PB(1024 TB=1 PB)、EB (1024 PB=1 EB)乃至ZB(1024 EB=1 ZB)级别。国际数据公司(IDC)的研究结果表明,2008年全球产生的数据量为0.49 ZB,2009年的数据量为0.8 ZB,2010年增长到1.2 ZB,2011年的数量更是高达1.82 ZB,相当于全球每人产生200 GB以上的数据。而到2016年,人类生产的所有印刷材料的数据量是300 PB,全人类历史上说过的所有话的数据量大约是5 EB。IBM的研究称,整个人类文明所获得的全部数据中,有90%是过去两年内产生的。而到了2020年,全世界所产生的数据规模将达到今天的44倍。

这样的趋势将会持续下去。我们现在还处于大数据的初级阶段,随着技术的进步,我们的设备、交通工具和迅速发展的“可穿戴”科技将能互连互通。科技的进步已经使创造、采集和管理信息的成本降至十年前的六分之一,而从2005年起,用在硬件、软件、人才及服务之上的商业投资也增长了整整50%,达到了4000亿美元。

正如《纽约时报》2012年2月的一篇专栏文章所称,“大数据”时代已经降临,在商业、经济及其他领域中,决策将日益基于数据和分析而做出,而并非基于经验和直觉。哈佛大学社会学教授加里金说:“这是一场革命,庞大的数据资源使得各个领域开始了量化进程,无论学术界、商界还是政府,所有领域都将开始这种进程。”

越来越多的政府、企业等机构开始意识到数据正在成为组织最重要的资产,数据分析能力正在成为组织的核心竞争力。

2012年3月22日,美国政府宣布投资2亿美元拉动大数据相关产业发展,将“大数据战略”上升为国家意志。美国政府将数据定义为“未来的新石油”,并表示一个国家拥有数据的规模、活性及解释运用的能力将成为综合国力的重要组成部分,未来,对数据的占有和控制甚至将成为陆权、海权、空权之外的另一种国家核心资产。

联合国也在2012年发布了大数据政务白皮书,指出大数据对于联合国和各国政府来说是一个历史性的机遇,人们如今可以使用极为丰富的数据资源,来对社会经济进行前所未有的实时分析,帮助政府更好地响应社会和经济运行。

最为积极的还是众多的IT企业。麦肯锡在一份名为“大数据,是下一轮创新、竞争和生产力的前沿”的专题研究报告中提出,“对于企业来说,海量数据的运用将成为未来竞争和增长的基础”,该报告在业界引起广泛反响。麦肯锡的报告发布后,大数据迅速成为了计算机行业争相传诵的热门概念,也引起了包括金融界在内的各行各业的高度关注。随着互联网技术的不断发展,数据本身是资产,这一点在业界已经形成共识。如果说云计算为数据资产提供了保管、访问的场所和渠道,那么如何盘活数据资产,使其为国家治理、企业决策乃至个人生活服务,则是大数据的核心议题,也是云计算内在的灵魂和必然的升级方向。事实上,全球互联网巨头都已意识到了“大数据”时代,数据的重要意义,包括谷歌、苹果、惠普、IBM、微软在内的全球IT巨头纷纷通过收购“大数据”相关厂商来实现技术整合,可见其对“大数据”的重视。

例如,IBM提出,上一个十年,他们抛弃了PC,成功转向了软件和服务,而这次将远离服务与咨询,更多地专注于因大数据分析软件而带来的全新业务增长点。IBM执行总裁罗睿兰认为,“数据将成为一切行业当中决定胜负的根本因素,最终数据将成为人类至关重要的自然资源。”

在国内,阿里巴巴在大数据应用和开发上投入巨资,已经取得了令人瞩目的成绩;百度也致力于开发自己的大数据处理和存储系统;腾讯则提出要开创数据化运营的黄金时期,把整合数据看成未来的关键任务。

总体上,自从SGI的首席科学家John R.Masey在1998年提出大数据概念,到大数据分析技术广泛应用于社会的各个领域,已经走过了近20年的时间。现在,再也没有人怀疑大数据分析的力量,并且都在竞相利用大数据来增强自己企业的业务竞争力。但是,即使近20年已经过去,大数据分析行业仍然处于快速发展的初期,每时每刻都在产生新的变化,特别是随着移动互联网的快速发展,大数据从概念到实用、从结构化数据分析到非结构化数据分析,正处于新的高潮和进化阶段。1.1.2 我国的大数据国家战略

毫无疑问,在全世界进入以信息产业为主导的新经济发展时期,以大数据为代表的新兴产业将以新经济方式引领新常态,我们国家也必然提出并实施国家大数据发展战略。

党的十八届五中全会提出了“十三五”规划纲要对实施网络强国战略、互联网+行动计划和大数据战略等做了部署。纲要提出要切实贯彻落实好着力推动互联网和实体经济深度融合发展,以信息流带动技术流、资金流、人才流、物资流,促进资源的配置优化,促进全要素生产力的提升,为推动创新发展、转变经济增长方式、调整经济结构发挥重要作用。

为了贯彻落实十八届五中全会精神,国务院于2015年8月出台了促进大数据发展行动纲要,提出要通过开放、产业和安全“三位一体”建设数据强国。三位一体主要是政府数据开放共享,它是开放的条件;产业是根基,即以推动产业创新发展为根本;安全是保障,要健全数据的安全保障体系。

这个行动纲要总的来讲可以概括为“一个目标,三大内容、十项工程、七大举措”。一个目标,就是全面推进我国大数据发展和应用,加快建设数据强国目标。三大内容,主要是包括加快政府数据的开放,推动资源整合提升的治理能力;推动产业创新发展,培育新业态,助力经济转型;健全安全保障体系,强化安全支撑,提高管理的水平。十项工程,主要包括政府数据、国家大数据的资源统筹发展工程,政府治理大数据工程,公共服务大数据工程,工业和新兴产业大数据工程,现代农业大数据工程,万众创新大数据工程,等等。七个举措,包括完善组织机制,加快法规制度建设,健全市场发展机制,建立标准规范体系,加大财政金融的支持,加强专业人士的培养,促进国际交流合作。

同时,国务院还决定建立国家大数据发展和应用的统筹协调机制,通过设立3+X工作机制,主要是由工业和信息化部、国家发展和改革委员会,以及中央网络安全和信息化领导小组办公室(网信办)三个部门牵头,联合其他40个政府部门建立的促进大数据发展的部级联席会议制度。围绕着三个关键的环节,精准发力,主要包括加快数据的开放共享,推动产业的创新发展,科学规范应用的数据。

当前,在大数据产业的发展思路方面,国家强调要以市场为导向,并在四个方面进行探索:一是支持关键技术产品的研发和产业化,二是推动行业大数据应用的不断深化,三是繁荣大数据的产业生态,四是完善大数据的支撑体系。在关键技术产品的研发和产业化方面,主要就是要抓住大数据引领的IT技术的架构和产业变革的机遇,在技术研发、产品体系、服务支撑这三个方面着力。在推动行业大数据应用不断深化方面,主要是大力推动工业和信息通信业大数据应用发展,支持大数据跨行业的融合应用发展,包括公共服务、社会治理、金融、能源、交通和农业等国民经济各个方面。在繁荣大数据产业生态方面,主要是合理规划大数据的基础设施建设,促进大数据的创业创新发展,优化大数据产业的区域布局。

大数据贵在落实。国家有关部门近期关于大数据方面的重点工作包括:

第一就是支持大数据关键产品的研发和产业化,目前在三个方面,进一步加大支持力度,首先是利用项目资金支持研发和产业化;其次在技术产品研发领域,与产业化之间非结构化的数据处理,大数据管理系统及数据分析,数据安全等关键技术产品的研发和产业化;然后是形成一批自主创新、技术先进,满足重大应用需求的产品解决方案。

第二是大力推动工业大数据的应用,在落实中国制造2025、互联网+等战略中,将大数据作为抓手,促进大数据与工业融合创新发展。启动智能制造试点示范的专项行动,利用相关的项目资金支持工业大数据技术产品的应用示范。加强制造企业与信息服务企业的合作,推进大数据在研发、设计、生产、制造、售后服务等全生命周期的应用,形成工业大数据优秀的解决方案,推动工业大数据与工业云、工业互联网、CPS等协调发展。

第三是支持地方开展大数据产业发展的应用试点,包括鼓励和支持各地方、各行业、各部门先行先试,开展大数据方面的探索和实践,严格标准,固定质量,按照成熟一个建设一个的原则,选择有条件、有基础的地方和区域建设大数据综合实验区,鼓励并支持地方结合自身的基础和优势,发展大数据产业,推动大数据产业的集聚发展。

第四是推动大数据的标准体系建设,依托大数据标准工作组,加快数据质量、数据安全、数据开放共享和交易等标准的研制工作,结合大数据综合实验区和产业集聚区,选择一批关键急需的标准在综合实验区开展应用试点,积极参与国际标准的制定工作,推进标准的国际化,提高我国大数据标准制定的国际话语权。1.2 大数据的概念

大数据是当前的热门话题,人人都在谈论它,但我们需要从纷繁的议论中看到事物的本质。究竟什么是大数据?它的本质特征是什么?大数据在技术上包含哪些内容?怎样让大数据应用落地?本节介绍大数据的基本概念,探讨大数据的基本特征,阐述大数据的技术支撑体系。1.2.1 概念

在舍恩伯格及库克耶编写的《大数据时代》一书中,大数据被定义为不用随机分析法(抽样调查)这样的捷径,而采用全量模式进行分析处理的数据。

事实上,有关大数据的定义目前并没有一个统一的说法,这也反映出大数据作为快速发展中事物的特点。以下是几个比较典型的大数据定义。

维基百科:大数据是指无法在一定时间内用常规软件工具对其内容进行采集、存储、处理和应用的数据集合。

百度:大数据(big data,mega data),或称巨量资料,指的是需要新处理模式才能产生更强大决策力、洞察力和流程优化能力的海量、高增长率和多样化的信息资产。而大数据技术,则是指从各种各样类型的大数据中,快速获得有价值信息的方法或能力。

我们认为,大数据是互联网发展到一定阶段后,数据爆炸性增长的一种态势,这种态势具有强烈的时代特征。所以,给大数据下定义,不能脱离互联网,也需要包含以云计算为代表的技术创新。因此,我们给出的大数据概念是:大数据是指在互联网和以大规模分布式计算为代表的平台支持下被采集、存储、分析和应用的具有产生更高决策价值的巨量、高增长率和多样化的信息资产。显然,这个定义更加全面和准确。1.2.2 特征

为了深入理解大数据的概念,有必要分析一下大数据的基本特征。

目前,人们普遍采用4V表示大数据的特征:Volume(大量)、Velocity(高速)、Variety(多样)、Value(价值)。下文解释了4V的含义。

大量,就是指数量巨大。第1章已经给出了很多实例。确实,互联网上的数据每年增长50%,每两年便将翻一番,而目前世界上90%以上的数据是最近几年才产生的。据IDC预测,到2020年全球将总共拥有35 ZB的数据量。互联网是大数据发展的前提,随着Web 2.0时代的发展,人们似乎已经习惯了将自己的生活通过网络进行数据化,方便分享以及记录并回忆。这里有必要指出,巨量是大数据的首要特性。在很多场合,少量数据就有很高的应用价值,但是,这并不表示数据越少越好,少量有价值的数据或信息是从大数据中挖掘出来的,没有大数据,就没有这些小数据。大数据时代,决策被置于全量式和全景式的环境下。

高速,这是大数据的关键特性。高速性本质是在线(online),这不一定意味着绝对速度高,真正有革命意义的是数据变得在线了,这恰恰是互联网的特点。所有数据在线这个事情,远比“大”更反映本质。例如“优步”系统需要大量交通数据支持,如果这些数据是离线的,就没有什么用。为什么今天淘宝数据值钱,因为在线,写在纸上或磁带上的数据效率极其低下。其实,大数据以前也有,但仅仅只有数据大是没有用处的,例如,欧洲粒子物理对撞实验室做一次碰撞产生的数据是巨大的,如果不采用在线分布式并行处理,恐怕无法获得有意义的实验结果。

多样,表示来源与形态具有包罗万象的特点,这是大数据的自然属性,因为人类生活本身是极具多样性的。目前,由网络日志、条码与射频识别(RFID)、传感器网络、工业生产过程、政府社会管理、社交网络、互联网文本和文件、互联网搜索引擎、呼叫详细记录、视频监控、天气预报、基因测序、军事侦察、医疗记录、音影档案、银行交易记录、大规模电子商务等系统或活动产生的数据,已经成为大数据的主要来源。

价值,一方面指数据即生产力,即具有决策价值,被比喻为新时代的石油和黄金;另一方面,也表示大数据的价值密度很低。例如,几小时的监控视频中可能有价值的就两三秒钟,其价值需要通过数据过滤、清洗、挖掘和呈现等多个处理步骤才能展现出来。必须理解,价值是大数据的基本属性,人类决策历来依靠数据,但是在大数据时代,数据的决策价值得到了空前的提升。1.3 技术支撑体系1.3.1 概览

大数据的核心价值是决策,但前提是必须有强大的技术支撑。纵观各种大数据解决方案,我们可以抽象出大数据系统的一般技术支撑体系。

一个完整的大数据系统总是由数据采集、数据存储、数据分析(或数据处理与服务)和数据应用四个部分构成的。图1-1给出了大数据系统的技术支撑体系。图1-1 大数据的技术支撑体系

这个“大数据技术支撑体系”描述了大数据系统的最高抽象模式(架构)。可以看到,总体上,大数据系统的底层首先是大数据采集,其来源具有多样性;接着通过数据接口(如数据导入器、数据过滤、数据清洗、数据转换等)将数据存储于大规模分布式存储系统中;在数据存储的基础上,进一步实现数据分析(处理与服务),最终是大数据应用。1.3.2 大数据采集层

本层考虑的第一个问题是数据来源。必须考虑所有渠道的、所有可用于分析的数据,这就要求公司或组织中的数据分析人员阐明执行分析所需要的各种类型数据。这正体现出大数据的第一特性,即巨量的信息资产。

技术上包含如下组件:(1)企业遗留系统(Legacy System)。这些系统是公司或企业当前的应用程序,它们囊括了目前的主要数据。以下是一些典型的应用系统:客户关系管理系统、结算操作、大型机应用程序、企业资源规划、Web应用程序、数据管理系统(DMS)、存储了逻辑数据流程策略和各种其他类型的文档,如Microsoft Excel电子表格、Microsoft Word文档等。(2)数据存储。数据存储包含企业数据仓库、操作数据库和事务数据库。这些数据通常是结构化数据,可直接使用或轻松地转换来满足需求。这些数据不一定存储在分布式文件系统中,具体依赖于所处的环境。(3)智能设备。智能设备能够捕获、处理和传输使用最广泛的各类协议和格式的信息。这方面的例子包括智能仪表、摄像头、录音设备、医疗设备等,这些设备可用于执行各种类型的分析。绝大多数智能设备都会执行实时分析,但从智慧设备传来的信息也可批量分析。(4)聚合的数据提供程序。这些提供程序拥有或获取数据,并以复杂的格式和所需的频率通过特定的过滤器公开它。每天都会产生海量的数据,它们具有不同的格式,以不同的速度生成,而且通过各种数据提供程序、传感器和现有企业提供。(5)其他数据源。有许多数据来源于自动化的系统,地理信息(地图、地区详细信息、位置详细信息、人员详细信息、车辆详细信息),人类生成的内容(社交媒体、电子邮件、博客、微信、在线评论),传感器数据(环境:天气、降雨量、湿度;光电信息:电流、能源储能、导航装置、电离辐射、亚原子粒子等;物理:靠近、位置、角度、位移、距离、速度、加速度、震动、热量、热度、可见度、压力、流动、流体、速度、力、密度级别等)。

上述任何一种数据来源都需要依赖特定的技术。但无论技术复杂还是简单,核心问题是数据格式、数据类型(基本分为结构化、半结构化或非结构化三类)、数据率、数据量、数据源的位置(可能位于企业内或外部)、数据访问权限(访问权对数据的访问会影响可用于分析的数据范围)。1.3.3 大数据存储层

这一层负责从数据源获取数据,并在必要时将它转换为适合数据分析方式的格式。例如,可能需要转换一幅图,才能将它存储在分布式文件系统或关系数据库管理系统(RDBMS)仓库中,以供进一步处理。注意,规范性制度和治理策略要求为不同的数据类型提供相适应的存储方式。

技术上,因为传入的数据可能具有不同的特征,所以数据变动(或转码)和存储层中的组件必须能够以各种频率、格式、大小和在各种通信渠道上读取数据。(1)数据获取。从各种数据源获取数据,并将其发送到数据整理组件或存储在指定的位置中。此组件必须足够智能或自动化(人工方式与大数据特性背道而驰),能够选择是否和在何处存储传入的数据。它必须能够确定数据在存储前是否应改动,或者数据是否可直接发送到业务分析层。(2)数据整理。负责将数据修改为需要的格式,以实现分析用途。此组件可拥有简单的转换逻辑或复杂的统计算法来转换源数据,分析引擎将会确定所需的特定数据格式。主要的挑战是容纳非结构化数据格式,如图像、音频、视频和其他二进制格式。(3)分布式数据存储。负责存储来自数据源的数据。通常,有多个数据存储选项,如分布式文件存储系统、云存储、非传统关系型数据库集群等。1.3.4 大数据分析(处理与服务)层

分析层是大数据系统的核心和关键,体现大数据的价值特性。

分析层从存储层读取经过改动或整理后的数据。注意,在某些情况下,分析层可以直接从数据源访问数据。设计分析层需要认真地进行事先筹划和规划,必须确定如何管理以下任务的决策:生成想要的分析、从数据中获取洞察(observation),找到所需的实体、定位可提供这些实体的数据源、理解执行分析需要哪些算法和工具。

技术上包含如下组件:(1)分析层实体识别。负责识别和填充上下文实体,这是一个复杂的任务,需要高效的高性能流程管理系统支持。数据整理组件应为这个实体识别组件提供补充,将数据修改为需要的格式。分析引擎将需要上下文实体来执行分析。(2)分析引擎。使用其他组件(具体来讲,包括实体鉴别、模型管理和分析算法)来处理和执行分析,分析引擎可能具有支持并行处理的各种不同的工作流、算法和工具。(3)模型管理。负责维护各种统计模型,验证和检验这些模型,通过持续培训模型来提高准确性。然后,模型管理组件会推广这些模型,它们可供实体识别或分析引擎组件使用。1.3.5 大数据应用层

这一层使用了处理与服务层所提供的输出。使用者可以是可视化应用程序、人工、业务流程或服务。可视化分析层的结果可能具有挑战性,有时,看看类似市场中的竞争对手是如何做的会有所帮助。每一层包含多种组件类型,下面将会介绍这些不同类型的组件。

该层可用于检测欺诈,实时拦截交易,并将它们与使用已存储在公司或企业中的数据构建的视图进行关联。在欺诈性交易发生时,可以告知客户可能存在欺诈,以便及时采取更正操作。

此外,可以根据在数据改动层完成的分析来触发业务流程。可以启动自动化的步骤,例如,如果客户接收了一条可自动触发的营销信息,则需要创建一个新订单,如果客户报告了欺诈,那么可以触发对信用卡使用的阻止。

分析的输出也可由推荐引擎使用,该引擎可将客户与他们喜欢的产品相匹配。推荐引擎分析可用的信息,并提供个性化且实时的推荐。

使用层还为内部用户提供理解、查询和导航企业内外的链锁信息的能力。对于内部使用者,为业务用户构建报告和仪表板的能力,使得利益相关者能够制定精明的决策并设计恰当的战略。为了提高操作有效性,可以从数据中生成实时业务警告,而且可以监视操作性的关键绩效指标。

技术上包含如下组件:(1)交易拦截器。此组件可实时拦截高容量交易,将它们转换为一种容易被分析层理解的实时格式,以便在传入数据上执行实时分析。事务拦截器应能够集成并处理来自各种来源的数据,如传感器、智能仪表、麦克风、摄像头、GPS设备、ATM和图像扫描仪。可以使用各种类型的适配器和API来连接到数据源;也可以使用各种加速器来简化开发,如实时优化和流分析,视频分析,银行、保险、零售、电信和公共运输领域的加速器,社交媒体分析,以及情绪分析器。(2)业务流程管理流程。来自分析层的洞察可供业务流程执行语言(BPEL)流程、API或其他业务流程使用,通过自动化的上游和下游IT应用程序、人员和流程的功能,进一步获取业务价值。(3)实时监视。可以使用从分析中得出的数据来生成实时警告;可以将警告发送给感兴趣的使用者和设备,如智能手机和平板电脑;可以使用从分析组件生成的数据洞察,定义并监视关键绩效指标,以便确定操作有效性。实时数据可从各种来源以仪表板的形式向业务用户公开,以便监视系统的健康或度量营销活动的有效性。(4)报告引擎。生成与传统商业智能报告类似的报告的能力至关重要,用户可基于从分析层中得到的洞察,创建临时报告、计划的报告或自助查询和分析。(5)推荐引擎。基于来自分析层的分析结果,推荐引擎可向购物者提供实时的、相关的和个性化的推荐,提高电子商务交易中的转换率和每个订单的平均价值。该引擎实时处理可用信息并动态地响应每个用户,响应基于用户的实时活动、存储在CRM系统中的注册客户信息,以及非注册客户的社交概况。(6)可视化和发现。数据可跨企业内外的各种联邦的数据源进行导航。数据可能具有不同的内容和格式,所有数据(结构化、半结构化和非结构化)可组合起来进行可视化并提供给决策者或任何需要的用户。此能力使得公司或组织能够将其传统的业务内容(包含在企业内容管理系统和数据仓库中)与新的社交内容(例如博客)组合到单个用户界面中。1.3.6 垂直视图

影响逻辑层(大数据来源、数据改动和存储、分析和使用层)的所有组件的各方面都包含在垂直层中,它们分别是数据集成、数据治理、服务质量、系统管理。(1)数据集成。大数据应用程序从各种数据起源、提供程序和数据源获取数据,并存储在HDFS或NoSQL(Not only SQL,指非传统数据库)集群等数据存储系统中。这个垂直层可供各种组件使用(如数据获取、数据整理、模型管理和交易拦截器),负责连接到各种数据源。集成具有不同特征(如协议和连接性)的数据源信息,需要高质量的连接器和适配器。可以使用加速器连接到大多数已知和广泛使用的来源。这些加速器包括社交媒体适配器和天气数据适配器。各种组件还可以使用这一层在大数据存储中存储信息,从大数据存储中检索信息,以便处理这些信息。大多数大数据存储都提供了服务和API来存储和检索该信息。(2)数据治理。数据治理涉及定义指南来帮助企业制定有关数据的正确决策。大数据治理有助于处理企业内或从外部来源传入的数据的复杂性、量和种类。在将数据传入企业进行处理、存储、分析和清除或归档时,需要强有力的指南和流程来监视、构建、存储和保护数据。

除了正常的数据治理考虑因素之外,大数据治理还包含其他因素:管理各种格式的大量数据、持续培训和管理必要的统计模型、以便对非结构化数据和分析进行预处理(注意,这是设置处理非结构化数据时的重要一步)、为外部数据设置有关其保留和使用的策略和规范性制度、定义数据归档和清除策略、创建如何跨各种系统复制数据的策略、设置数据加密策略。(3)服务质量。该层定义数据质量、围绕隐私和安全性的策略、数据频率、每次抓取的数据大小和数据过滤器。

①数据质量:完整地识别所有必要的数据元素,以可接受的新鲜度提供数据的时间轴,依照数据准确性规则来验证数据的准确性,采用一种通用语言(数据元组满足使用简单业务语言所表达的需求),依据数据一致性规则验证来自多个系统的数据一致性。在满足数据规范和信息架构指南基础上的技术规范性。

②围绕隐私和安全的策略:需要策略来保护敏感数据。从外部机构和提供程序获取的数据可能包含敏感数据(如社交媒体用户的联系信息或产品定价信息)。数据可以来源于不同的地区和国家,但必须进行相应的处理。必须制定有关数据屏蔽和这类数据的存储的决策。可以考虑以下数据访问策略:数据可用性、数据关键性、数据真实性、数据共享和发布、数据存储和保留(包括能否存储外部数据等问题)。如果能够存储数据,数据可存储多长时间?可存储何种类型的数据?数据提供程序约束(政策、技术和地区)、社交媒体使用条款。

③数据频率:提供新鲜数据的频率是多少?它是按需、连续还是离线的?

④抓取的数据大小:此属性有助于定义可抓取的数据,以及每次抓取后可使用的数据大小。

⑤数据过滤器:标准过滤器会删除不想要的数据和数据中的干扰数据,仅留下分析所需的数据。(4)系统管理。系统管理对大数据至关重要,因为它涉及跨企业集群和边界的许多系统。对整个大数据生态系统的健康状况的监视包括:管理系统日志、虚拟机、应用程序和其他设备;关联各种日志,帮助调查和监视具体情形;监视实时警告和通知;使用显示各种参数的实时仪表板;引用有关系统的报告和详细分析;设定和遵守服务水平协议;管理存储和容量;归档和检索管理;执行系统恢复、集群管理、网络管理和策略管理。1.4 大数据人才及其能力要求

大数据是时代的重要力量,而熟练掌握技术的人才是根本。由于系统的复杂性和层次性,大数据人才也是由不同特点和不同能力要求的人才群组成的。1.4.1 首席数据官

首席数据官(Chief Data Officer,CDO)和数据科学家(或称数据分析师)是企业大数据落地所需要人才的典型代表。

CDO是懂得企业或组织业务运作的数据分析者,CDO不能仅仅停留在简单收集、整理、分析、报告的层面,而是要结合实际,发现数据背后潜藏的挑战和机遇,并将挑战和机遇提交决策层,应用于企业战略规划和日常运营中。CDO掌握企业内部核心的数据资源,对历史数据进行整理,对业务发展进行分析和预测。通过 CDO改善企业在数据获取、存储和分析的水平,为高层管理者提供更科学有效的决策支持,以及开拓新的业务领域。CDO领导数据分析团队,需要将数据转化为企业业务语言,从而使得决策层容易理解和运用。通过CDO加强数据管控,可提高对业务风险的控制水平,是企业应对经济、金融危机的重要措施。

真正的CDO须具备五种能力:统计学、数学的能力,洞悉网络产业和发展趋势的能力,IT设备和技术选型的能力,商业运营的能力,管理和沟通的能力。他们不仅要关注系统架构中所承载的内容,更要担任企业决策和数据分析汇整的枢纽;要熟悉面向服务的架构(SOA)、商业智能(BI)、大规模数据集成系统、数据存储交换机制,以及数据库、可扩展标记语言(XML)、电子数据交换(EDI)等系统架构;要深入了解企业的业务状况和所处的产业背景,清楚地了解组织的数据源、大小和结构等,才可将数据资料与业务状况联合起来分析,并提出相对应的市场和产品策略。1.4.2 数据科学家(数据分析师)

与CDO一样,数据科学家是受到广泛关注的大数据专业人才。数据科学是一门交叉学科,涉及数学、统计学、计算机科学、数据可视化技术,以及具体行业的专业知识等。数据科学家的专长是“量化问题,然后解决问题”,他们的工作由三种内容混合而成:定量分析(让你了解数据),程序设计(让你可以处理数据),讲故事(让你了解数据的含义)。

数据科学家应该具有扎实的统计学基础,统计学是当前很多数据分析和数据挖掘算法的理论基础。对统计理论,如概率分布、假设检验、贝叶斯理论等的理解,有助于对数据进行更好的解读。

数据科学家应能够深刻理解预测模型,能够使用常见的预测模型,如回归、聚类、决策树等,在历史数据基础上预测未来。对这些预测模型使用方法、应用场景的理解,是数据科学家必须具备的技能。

数据科学家应当能够熟练使用统计工具。为了提高工作效率,数据科学家要熟练使用一种或多种分析工具。Excel是当前最为流行的小规模数据处理工具,SAS工具也在广泛应用。而以Hadoop为代表的数据管理工具,将越来越广泛地应用于数据业务中。

数据科学家基本、通用的一种技能是写代码,用所有相关方面都能听懂的语言进行沟通。另一种特殊技能是用数据讲故事,通过口头表达和视觉效果进行描述。数据科学家占支配地位的配置应是强烈的好奇心、想要深入问题内部的渴望,找到最核心的问题,提取成清晰的结论,并要经得起检验。

数据科学家是专业的数据研究者,承担对数据及其价值的专业性风险工作,需要熟练的数据处理和分析技能。CDO职能更多涉及企业或组织总体管理和战略决策层面,数据科学家在CDO指导下工作,能解决复杂的数据问题但专业性更强。

一个初级的数据科学家可能只需要掌握基本分析技巧便可胜任;成熟的数据科学家需要对数据分析方法有较深入的理解;而优秀的数据科学家则应具备丰富的经验、广泛的知识面,能够独立设计和完成相关解决方案。总之,随着组织对数据的重视程度越来越高,数据科学家在经营和决策中所起的作用也越来越大,因而对数据科学家的技术技能和内在素质均提出了更多的要求。

成熟的数据分析师应具备四个条件:熟悉业务细节、掌握数据分析工具操作、对数据价值的敏感度和对数据提炼融合的能力。目前很多数据分析师比较擅长的是通过数据分析对已发生的问题查找原因,但缺乏发掘未知问题的能力,也缺少对趋势预测的把握,而大数据的价值恰恰在于预测未来。如果只熟悉数据分析工具操作,却不熟悉业务和运作细节,就无法从既有数据中挖掘出新的价值,达到推动企业发展的目的。1.4.3 大数据开发工程师

BAT三家互联网大公司对大数据开发工程师的招聘都希望是统计学和数学背景的硕士或博士学历,即要求有数学及统计学相关的背景。因为,缺乏理论背景的数据工作者,更容易进入一个技能上的危险区域。按照不同的数据模型和算法总能做出一些结果来,但如果不知道数据代表什么,也就不能得到真正有意义的结果,并且那样的结果还容易误导人。只有具备一定的理论知识,才能理解模型、复用模型甚至创新模型,来解决实际问题。

除了良好的数学背景外,对大数据开发工程师来说,还要求有很强的计算机编程能力。实际开发能力和大规模的数据处理能力是作为大数据开发工程师的一些必备要素。许多数据的价值来自于挖掘过程,开发人员必须亲自动手才能发现金子的价值。例如,现在人们在社交网络上所产生的许多记录都是非结构化的数据,如何从这些毫无头绪的文字、语音、图像甚至视频中攫取有意义的信息,就需要大数据开发工程师亲自挖掘。即使在某些团队中,大数据开发工程师的职责以商业分析为主,但也要熟悉计算机处理大数据的方式。

除了数学和统计学相关理论背景和超强的计算机编程能力外,作为大数据开发工程师还需要具有特定应用领域或行业的知识。大数据开发工程师这个角色很重要的一点是,不能脱离市场,因为大数据只有和特定领域的应用结合起来才能产生价值。他不能只是懂得数据,还要有商业头脑,不论对零售、医药、游戏还是旅游等行业,都能对其中某些领域有良好的理解,最好还与企业的业务方向一致。过去,我们常说一些奢侈品店员势利,看人一眼就知道买得起买不起,但这群人恰恰是有敏锐性的,他们是这个行业的专家。又如对医疗行业了解的人,他在考虑医疗保险业务时,不仅会查看人们去医院看病的相关记录,也会考虑饮食数据,这些都基于对该领域的了解。

最后,对于一个优秀的大数据开发工程师来说,除了上面列出的三点能力要求外,还有另外一个非常重要的要求,即他们必须深入理解大数据系统架构、各个组件的基本原理、实现机制甚至其中涉及的算法等。只有这样,他们才能构建一个强大且稳定的分布式集群系统,并充分利用其分布式存储和并行计算能力来处理大数据。

对于大多数企业而言,由于自行研发一个高性能的集群系统往往要支付高昂的费用。经过多年的发展,如今已形成了以Hadoop为核心的开源大数据生态系统,利用通用的硬件就可以构建一个强大、稳定、简单并且高效的分布式集群系统计算系统,就可以满足企业基础架构平台的需求,付出相对低廉的代价就可以轻松处理超大规模的数据。因此,大数据开发工程师必须深入理解以Hadoop为核心的大数据生态系统的系统架构,原理及开发应用,并具有充分的优化经验,才能充分利用其处理超大规模数据,甚至在Hadoop平台上开发特定应用的新组件。当然,大数据开发工程师还需要具有大数据采集、大数据预处理、大数据存储与管理、分析挖掘与展现应用等大数据相关技术。1.4.4 大数据运维工程师

企业除了大数据分析人才(开发人才)外,还需要有数据的采集、管理、运维方面的人才。由于大数据系统是一个非常复杂的系统,涉及的技术繁多,尤其是在基于开源的平台下,对大数据系统运维工程师提出了非常高的技术和能力要求。大数据系统运维工程师应熟悉Java、Python、Shell等语言;熟悉Hadoop工作原理,对HDFS、MapReduce运行过程还有深入理解,有MapReduce开发经验,熟悉数据仓库体系架构,熟悉数据建模;熟悉至少一种RDBMS,如MySQL/Oracle/SQLServer,熟练使用SQL语言,懂SQL调优;熟悉大数据生态圈及其他技术,如HBase、Storm、Spark、Impala、Kafka、Sqoop等技术细节。

目前,大数据系统运维方面的人才非常缺乏,也很难培养。因为大数据系统是一个非常复杂的系统,要想熟悉其中的每一个组件,都是非常不容易的。这和其他如MySQL、J2EE等专业人才完全不能类比。所以,企业要特别注意储备和培养大数据系统的运维人才。1.5 本章小结

本章介绍了大数据兴起的时代背景,分析了我国大数据的国家战略。本章重点介绍了大数据的概念和特性,讨论了大数据的技术体系,从层次结构上,我们指出任何大数据系统都是由数据采集、存储、计算和应用四个部分构成的。最后我们阐述了大数据人才的特征与培养要求。第二篇Hadoop大数据平台搭建与基本应用第2章 Hadoop大数据关键技术

在整个IT界,大数据平台和组件并非只有Hadoop及其生态系统一个方面。但是,无论从学术还是应用上看,Hadoop生态都是最成功的。本章主要对Hadoop生态系统及其组件技术进行概括性描述,为后续学习奠定概念基础。2.1 Hadoop生态系统2.1.1 架构的基本理论1.概念

架构(Architecture)一词最初来源于建筑业,用于表示建筑物的整体结构模式和风格,它把整个建筑物看成一个系统,强调其整体受力空间结构方式的合理性和有效性。架构实际上是一个广泛应用的概念,通常指系统的整体结构及其组成部分的原则关系。

随着计算机、网络和软件技术的不断发展,信息系统变得日益复杂,因而架构一词在信息领域变得越来越重要。IEEE给出的架构定义是:架构是一个系统的基础组织结构,包括系统的组件构成、组件之间的相互关系、系统和其所在环境的关系,以及指导系统设计和演化的相关准则。

必须指出,架构总是用来描述系统结构的,无论系统是指软件系统还是硬件系统,也无论是指业务系统还是应用系统,甚至不论是数据系统还是存储系统。由于信息系统可以从不同的角度去划分和观察,因此就出现了各种冠以“架构”的系统描述。例如,当我们关注信息系统的软件构成方式时,就有软件架构的概念;如果关注系统的硬件构成方式,当然就有硬件架构(或物理架构)的概念;如果关注系统组件在处理数据过程的集中性与分散性,就有所谓集中式架构和分布式架构的概念。此外,我们知道,软件是指程序、数据和文档,所以软件架构可以进一步分为程序(或软件组件)架构、数据架构或数据库架构等概念。凡此种种,可见架构一词具有广泛的适用性。但不管架构一词如何被广泛使用,其核心理念都是强调系统的组织结构及其组成部分的关系准则。2.系统架构的设计目标

归根结底,人们之所以需要架构这个概念,是因为随着系统的复杂性越来越高,设计人员必须从系统的高度,对整个平台进行全局性的思考。

系统架构的设计目标主要包括可靠性、安全性、可伸缩性、可扩展性、可维护性等。

可靠性是指系统运行过程出错的概率非常小,因此用户的商业经营和管理完全可以依赖该系统。

安全性是指系统具有保护信息的能力,通过加密、认证、访问控制等手段确保系统的数据处于完整、可控的状态。

可伸缩性是指系统必须能够在用户的使用率、用户的数目增加很快的情况下,保持合理的性能,只有这样,才能适应用户的市场扩展的可能性。

可扩展性是指在新技术出现的时候,一个系统应当允许导入新技术,从而对现有系统进行功能和性能的扩展。

维护包括两方面,一是排除现有的错误,二是将新的需求反映到现有系统中去。一个易于维护的系统,意味着可以有效降低技术支持的花费。3.技术架构

技术架构是指信息系统中技术组件的组织结构,由于技术包括软件和硬件两个方面,因此技术架构也可以分为软件架构和硬件架构两个方面。

研究大数据的技术架构,有三个基本观点需要确立。

首先,对于大数据部署和应用来说,技术总是具体的,抽象地讨论技术没有太多意义。例如,商业银行中传统信息系统基本上采用了IOE技术,即以IBM、Oracle和EMC为代表的商业软件与相关硬件技术,而大数据时代,银行业则普遍在探讨所谓去IOE技术,也就是采用像Hadoop和NoSQL(Not only SQL,指非传统关系型数据库)数据库这样的开源或发布性开源技术。因此,分析和讨论大数据技术架构,应当而且必须以目前最重要的开源技术为对象。

其次,从应用的角度看,技术架构也是具体的,不同规模与性质的企业可能会有不同的系统架构,但既然是研究架构,则必然需要理解各种不同架构的共同点,以便揭示大数据系统设计的内在规律和演化趋势,从而指明正确的系统建设方向。

第三,大数据系统的最高抽象模式实际上就是大数据的基本系统架构,对这个顶层架构进行初次分解,就得到数据采集、数据存储、数据分析和数据应用四个方面,因此,技术架构也需要相应地从这四个方面描述。在涉及这些方面的时候,可能会出现各种角度的架构概念,如软件架构、总体架构、数据库架构、分布式架构、部署架构等,读者应当不难区分并理解它们的差异和核心。2.1.2 主要组件及其关系

目前,以Hadoop为核心,整个大数据应用于研发已经形成了一个基本完善的生态系统。图2-1给出了Hadoop大数据应用生态中最主要的组件,该图描述了这些组件的地位,以及它们之间的相互作用关系。图2-1 Hadoop大数据应用生态中最主要的组件及其关系

HDFS(Hadoop分布式文件系统)源自于Google的GFS论文,发表于2003年10月,HDFS是GFS的实现版。HDFS是Hadoop体系中数据存储管理的基础,它是一个高度容错的系统,能检测和应对硬件故障,在低成本的通用硬件上运行。HDFS简化了文件的一致性模型,通过流式数据访问,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序。HDFS提供一次写入多次读取的机制,数据以块的形式,同时分布存储在集群的不同物理机器上。

MapReduce(分布式计算框架)源自于Google的MapReduce论文,发表于2004年12月,Hadoop MapReduce是Google MapReduce克隆版。MapReduce是一种分布式计算模型,用以进行海量数据的计算。它屏蔽了分布式计算框架细节,将计算抽象成 Map和Reduce两部分,其中Map对数据集上的独立元素进行指定的操作,生成键-值对形式中间结果。Reduce则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果。MapReduce非常适合在大量计算机组成的分布式并行环境里进行数据处理。

HBase(分布式列存数据库)源自Google的BigTable论文,发表于2006年11月,HBase是Google BigTable的实现。HBase是一个建立在HDFS之上,面向结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。HBase采用了BigTable的数据模型,即增强的稀疏排序映射表(Key/Value),其中,键由行关键字、列关键字和时间戳构成。HBase提供了对大规模数据的随机、实时读写访问,同时,HBase中保存的数据可以使用MapReduce来处理,它将数据存储和并行计算完美地结合在一起。

ZooKeeper(分布式协作服务)源自Google的Chubby论文,发表于2006年11月,ZooKeeper是Chubby实现版。ZooKeeper的主要目标是解决分布式环境下的数据管理问题,如统一命名、状态同步、集群管理、配置同步等。Hadoop 的许多组件依赖于ZooKeeper,它运行在计算机集群上面,用于管理Hadoop操作。

Hive(数据仓库)由Facebook开源,最初用于解决海量结构化的日志数据统计问题。Hive定义了一种类似SQL的查询语言(HQL),将SQL转化为MapReduce任务在Hadoop上执行,通常用于离线分析。HQL用于运行存储在Hadoop上的查询语句,Hive使不熟悉MapReduce开发人员也能编写数据查询语句,然后这些语句被翻译为Hadoop上面的MapReduce任务。

Pig(ad-hoc脚本)由yahoo开源,其设计动机是提供一种基于MapReduce的ad-hoc (计算在query时发生)数据分析工具。Pig定义了一种数据流语言——Pig Latin,它是MapReduce编程的复杂性的抽象,Pig平台包括运行环境和用于分析Hadoop数据集的脚本语言(Pig Latin)。其编译器将Pig Latin翻译成MapReduce程序序列,将脚本转换为MapReduce任务在Hadoop上执行,通常用于进行离线分析。

Sqoop(数据 ETL/同步工具)是 SQL-to-Hadoop的缩写,主要用于传统数据库和Hadoop之前传输数据。数据的导入和导出本质上是MapReduce程序,充分利用了MR的并行化和容错性。Sqoop利用数据库技术描述数据架构,用于在关系数据库、数据仓库和Hadoop之间转移数据。

Flume(日志收集工具)是Cloudera开源的日志收集系统,具有分布式、高可靠、高容错、易于定制和扩展的特点。它将数据从产生、传输、处理并最终写入目标的路径的过程抽象为数据流,在具体的数据流中,数据源支持在Flume中定制数据发送方,从而支持收集各种不同协议数据。同时,Flume数据流提供对日志数据进行简单处理的能力,如过滤、格式转换等。此外,Flume还具有能够将日志写往各种数据目标(可定制)的能力。总的来说,Flume是一个可扩展、适合复杂环境的海量日志收集系统,当然也可以用于收集其他类型数据

Mahout(数据挖掘算法库)起源于2008年,最初是Apache Lucent的子项目,它在极短的时间内取得了长足的发展,现在是Apache的顶级项目。Mahout的主要目标是创建一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便、快捷地创建智能应用程序。Mahout现在已经包含了聚类、分类、推荐引擎(协同过滤)和频繁集挖掘等广泛使用的数据挖掘方法。除了算法,Mahout还包含数据的输入/输出工具、与其他存储系统(如数据库、MongoDB或Cassandra)集成的数据挖掘支持架构。

YARN(分布式资源管理器)是下一代 MapReduce,即 MRv2,是在第一代MapReduce基础上演变而来的,主要是为了解决原始Hadoop扩展性较差,不支持多计算框架而提出的。YARN是下一代Hadoop计算平台,是一个通用的运行时框架,用户可以编写自己的计算框架,在该运行环境中运行。

Mesos(分布式资源管理器)是一个诞生于 UC Berkeley 的研究项目,现已成为Apache项目,当前有一些公司使用Mesos管理集群资源,如Twitter。与YARN类似,Mesos是一个资源统一管理和调度的平台,同样支持诸如MR、steaming等多种运算框架。

Tachyon(意为超光速粒子)是以内存为中心的分布式文件系统,拥有高性能和容错能力,能够为集群框架(如Spark、MapReduce)提供可靠的内存级速度的文件共享服务。Tachyon诞生于UC Berkeley的AMPLab。

Spark(内存DAG计算模型)是一个Apache项目,被标榜为“快如闪电的集群计算”,它拥有一个繁荣的开源社区,并且是目前最活跃的Apache项目。最早Spark是UC Berkeley AMP Lab所开源的类Hadoop MapReduce的通用并行计算框架,Spark提供了一个更快、更通用的数据处理平台。和Hadoop相比,Spark可以让你的程序在内存中运行时速度提升100倍,或者在磁盘上运行时速度提升10倍。

Spark GraphX最先是伯克利AMP Lab的一个分布式图计算框架项目,目前整合在Spark运行框架中,为其提供BSP大规模并行图计算能力。

Spark MLlib是一个机器学习库,它提供了各种各样的算法,这些算法用来在集群上针对分类、回归、聚类、协同过滤等。

Kafka是Linkedin于2010年12月开源的消息系统,主要用于处理活跃的流式数据。活跃的流式数据在Web网站应用中非常常见,这些数据包括网站的PV(Page View),用户访问了什么内容,搜索了什么内容等。这些数据通常以日志的形式记录下来,然后每隔一段时间进行一次统计处理。

Apache Phoenix是HBase的SQL驱动(HBase SQL接口),Phoenix使得HBase支持通过JDBC的方式进行访问,并将你的SQL查询转换成HBase的扫描和相应的动作。

Apache Ambari是安装部署配置管理工具,其作用就是创建、管理、监视Hadoop的集群,是为了让Hadoop以及相关的大数据软件更容易使用的一个Web工具。

在大数据的发展历程中,有大量不同类型和用途的组件相继产生,它们实现上述四个层次中的各种功能。但是,在激烈的竞争浪潮中,最终为业界和学术界认可并得到广泛应用的组件或框架只有大概

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载