《大数据技术全解:基础、设计、开发与实践.docx》由会员分享,可在线阅读,更多相关《大数据技术全解:基础、设计、开发与实践.docx(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、简介“大数据”一词已成为当下最热门的词汇之一。人们热切期待大数据能给工作、学习和生活等方面带来前所未有的变化,而大数据的采集、存储、计算、分析挖掘、呈现和安全等技术正是实现这一变化的关键。大数据技术全解:基础、设计、开发与实践的重点不在于对大数据技术的原理性介绍,而是从实战角度出发,系统地阐述如何基于Hadoop开源软件为客户设计、安装和开发一个大数据系统。大数据技术全解:基础、设 计、开发与实践还着重分享了具体实践中的一些案例,不仅对于从事大数据系统开发的IT技术人员具有珍贵的参考价值,而且对准备实施大数据系统项目的企业 级客户也具有指导作用。大数据技术全解:基础、设计、开发与实践可以作为计
2、算机软件专业的本科生和研究生的大数据技术教材,也可作为大数据技术开发培训、大数据系统咨询规划培训的教材,更是大数据领域内一线的需求分析人员、系统分析人员、高级开发人员和开发管理人员的必备参考书。序言媒体评论这次是我第一次为别人的书写序。序要求是非常有高度的、简练的文字。一方面,本人向来文学水平一般,无法写出很漂亮的文字;另一方面,一直觉得自己在学术 方面的造诣太浅,为别人的书写序,有点班门弄斧的感觉。自己同时也怕序没有写好,反而给书带来了负面的影响。这次是因为受了感动,才冒着各种压力,绞尽脑汁来写这个序。作者是一个我敬佩的人,敢于做非常具有挑战性的工作。写书本来不是一件容易的事情,写一本关于最
3、新的技术的书,更加不容易。除了作者自身需要有很高的技术造诣,对书中相关技术的理解足够深刻外,还需要作者具备很强的表达能力和说服能力,把最新技术的奥秘清晰明了地展现给读者,让读者能够非常享受地从书中了 解并明白技术及其内涵。同时,作者还要在内容和描述上非常有说服力,以各种论证、对比、案例等形式来让读者接受新的技术。通常,关于最新技术的对比和案例 等都特别贫乏,作者必须花大量的时间来自行设计和调研才能获得这些信息。本书的作者在写书过程中,每次都让我感到他非常坚定的信念,我深信他会坚持完成这个书稿。同时,他的书稿通俗易懂并且有足够的技术深度。作者漂亮地完成如此具有挑战性的工作,赢得了他应该有的尊重,
4、这让我非常感动。本书的内容展现了大数据领域中一些最新的技术,主要集中于Hadoop 生态中的HDFS(分布式文件系统)、MapReduce分布式计算框架以及HBase分布式数据库三大核心部件的相关技术和实现。作者分别从基础、技术、设计、安装、开发、实践等六个方面来展开这些技术,兼顾了技术原理、具体操作以及设计开发三个层面。不同背景、不同层次和不同目的的读者可以从这三个层面的六个方面来有选择地进行阅读。作者凭借其技术造诣,对内容的设计和编排以及技术的深度等把握得很好。从技术层面,大数据是当前应对大规模基础设施以及大规模数字化后所产生的巨量数据的最为有效的技术之一。大数据提供了高效和高性能的数据采
5、集、处理、存储、分析和挖掘的技术,使我们可以从容应对当前的巨量数据。从科学层面,大数据是当前数据科学的一个具体的技术实现,是当前科学发现中基于实验的科学发现方法、基于理论的科学发现方法和基于计算的科学发现方法以外的一种创新的科学发现方法。其主要思想是凭借巨量的数据,找出部分现象 的有价值的信息,如各种现象之间的关联等。近年的一些实际案例显示,大数据在部分领域的应用中能够有效地从巨量的、低价值密度的数据中分析挖掘出有价值的信息。大数据技术的流行度和热度,相信读者都已经感受到了。此书可以协助读者进一步了解大数据领域中部分最新的技术,帮助读者学习和掌握这些技术的精髓,推动大数据在更加广泛的范围内的应
6、用。赵淦森华南师范大学计算机学院 博士生导师大数据无疑是当前IT 产业界的热点。由于它对综合技术能力要求较高,各位初学者该如何“拥抱大数据”,还没有人能给出答案。本书可谓是“久旱中的甘霖”,为大家打开了大数据这 一领域的大门,从大数据的基础技术,到系统的设计理论,无不进行了全面的概括和总结;本书绝不类似于当前一些大数据书籍的浅尝辄止,作者倾尽笔墨对大数据 的系统设计、环境安装及开发实践进行了论述,使读者可以“登堂入室”,快速投入实战,把大数据技术从概念转化为实际的研发能力。巨龙兄在IT 产业界已经工作了20 余载,长期从事IT 企业高层技术管理工作,对咨询规划、技术研发、人才培养等各环节都非常
7、擅长。书中随处可见他对大数据技术的深入理解,以及多年来孜孜不倦的经验总结,各处 “杀马特”的概括和点评闪烁着智慧的光芒,使人深受启发。“集大成者得智慧”,看完本书后,仍让人回味犹长。本书可谓IT 界“老少咸宜”的一本好书,因此向各位读者隆重推荐本书,期望它能够对您的学业或工作带来更进一步的帮助。孙傲冰国云科技技术副总裁目录第1 篇 基础篇第1章大数据的三把利剑 1.1 豌豆杂交实验1.2 曹冲称象启示1.3 谷歌的三把利剑1.4 智慧改变世界第2章企业的大数据观2.1 企业面临的挑战2.1.1 数据能力是核心竞争力2.1.2 从粗放经营到智慧经营2.1.3 技术与商业的双重挑战2.2 企业大数
8、据从哪来 2.2.1 来自于主体的产生 2.2.2 来自于客体的产生 2.2.3 来自于社会的产生 2.3 企业大数据如何存储 2.3.1 非结构化数据存储 2.3.2 结构化数据存储 2.3.3 半结构化数据存储2.3.4 大数据存储的问题2.4 企业大数据如何加工 2.4.1 分析或挖掘模型设计 2.4.2 并行处理程序编码2.4.3 结果在全局中呈现2.5 企业的大数据到哪里去 2.5.1 大数据对企业影响深远 2.5.2 大数据是一种新商品 2.5.3 精准营销需要大数据 2.6 企业大数据观总结 第3章大数据和大数据系统 3.1 大数据 3.1.1 大数据概念3.1.2 大数据的特征
9、 3.1.3 数据计量单位 3.1.4 大数据来源3.1.5 大数据类型3.2 大数据系统 3.2.1 设计目标和原则 3.2.2 系统的设计思想 3.2.3 系统的逻辑架构 3.2.4 与现有系统的关系3.2.5 当前的大数据系统第2 篇 技术篇第4章分布、键值对与族4.1 分布与MapReduce 4.2 键值对的奥妙所在4.3 动态数据库表原理第5章HDFS(分布式文件系统) 5.1 设计目标5.2 基本概念5.2.1 块 5.2.2 名称节点与数据节点 5.3 系统架构5.3.1 逻辑架构 5.3.2 物理架构 5.4 运行机制5.4.1 文件读取 5.4.2 文件写入 5.4.3 特
10、别关注 5.5 系统功能5.5.1 多文件系统5.5.2 目录管理 5.5.3 文件管理 5.5.4 文件归档 5.5.5 并行复制 5.6 系统I/O 特性 5.6.1 完整性校验5.6.2 压缩与编码解码 5.6.3 序列化 5.6.4 特殊文件结构 5.7 非Java 访问接口 5.8 系统性能5.8.1 可靠性措施5.8.2 性能优化 第6章MapReduce 分布式编程模式6.1 不同于传统 6.2 设计思想6.3 基本概念6.3.1 map()函数 6.3.2 reduce()函数 6.3.3 键值对 6.3.4 中间结果 6.3.5 移动代码 6.3.6 作业和任务节点 6.4
11、系统架构6.4.1 逻辑架构 6.4.2 物理架构 6.5 运行机制6.5.1 作业运行 6.5.2 作业调度 6.5.3 任务执行 6.5.4 状态更新 6.5.5 作业完成 6.5.6 故障处理 6.6 关键技术6.6.1 计数器 6.6.2 排序6.6.3 连接6.6.4 shuffle6.6.5 内存处理 6.6.6 分布式缓存6.7 类型与格式 6.7.1 MR 的类型 6.7.2 输入格式 6.7.3 输出格式 6.8 MR 的开发6.8.1 开发端环境的建立6.8.2 开发及单元测试 6.8.3 本地运行测试 6.8.4 集群运行 6.8.5 作业调试 6.8.6 远程调试 6.
12、8.7 作业调优 6.9 MR 工作流第7章HBase 分布式数据库 7.1 设计目标7.2 基本概念7.2.1 逻辑模型 7.2.2 物理模型 7.2.3 区域7.2.4 基本单元 7.2.5 Region 服务器.7.2.6 Master 主服务器.7.2.7 .META.元数据表7.2.8 -ROOT-元数据表7.3 系统架构7.3.1 逻辑架构.7.3.2 物理架构.7.4 运行机制7.5 系统功能7.5.1 用户界面.7.5.2 shell 操作7.6 库表设计7.7 访问接口第3 篇 设计篇第8章系统设计背景和目标8.1 系统设计背景.8.2 系统设计目标.8.2.1 存在问题.8
13、.2.2 设计目标.第9章系统架构设计9.1 逻辑架构设计 9.1.1 系统逻辑架构9.1.2 系统运行逻辑9.2 功能架构设计 9.2.1 大数据管理系统的功能9.2.2 ZooKeeper 系统的功能9.2.3 Chukwa 采集系统的功能9.2.4 Pig 系统功能 9.2.5 Hive 系统功能 9.3 数据架构设计 9.3.1 数据总体架构9.3.2 分布式文件数据结构9.3.3 分布式数据库数据结构.9.3.4 关系型数据库数据构成.第10章运行架构设计10.1 物理架构设计10.1.1 网络拓扑10.1.2 软/硬件选型10.2 集成架构设计10.2.1 总体集成设计10.2.2
14、 专项集成设计10.3 安全架构设计10.3.1 用户层安全.10.3.2 应用层安全.10.3.3 数据层安全.10.4 开发架构设计第4 篇 安装篇第11章安装规划11.1 安装目标11.2 安装步骤第12章环境准备12.1 主机准备 12.2 介质准备 12.3 基础安装 12.3.1 JDK 安装12.3.2 用户创建12.3.3 SSH 配置第13章集群安装13.1 HDFS 集群 13.1.1 解析配置13.1.2 模板创建13.1.3 复制分发13.1.4 运行启动13.1.5 测试验证13.2 HBase 集群 13.2.1 解析配置13.2.2 模板创建13.2.3 复制分发
15、13.2.4 运行启动13.2.5 测试验证13.3 ZooKeeper 集群13.3.1 解析配置13.3.2 模板创建13.3.3 复制分发13.3.4 运行启动13.3.5 测试验证第14章分布式应用安装14.1 Pig 安装14.1.1 本地安装14.1.2 本地验证14.1.3 集成配置14.1.4 集成验证14.2 Hive 安装.14.2.1 内嵌安装与验证14.2.2 从内嵌改为独立14.2.3 从独立改为远程14.3 Chukwa 安装.14.3.1 基础系统安装14.3.2 代理系统安装14.3.3 收集系统的安装14.3.4 作业系统的安装14.3.5 HICC 系统的安
16、装第15章集成联调15.1 集群间的集成联调 15.1.1 HBase 与HDFS集成联调 15.1.2 HBase 与ZooKeeper集成联调 15.2 分布式应用与集群间的集成联调 15.2.1 Pig 与HDFS 的集成15.2.2 Hive 与HDFS 的集成15.2.3 Hive 与Hbase的集成.15.2.4 Chukwa 与HDFS的集成.15.3 客户端与分布式系统间的集成联调.15.3.1 与分布式集群系统的集成.15.3.2 与分布式应用系统的集成第5 篇 开发篇第16章大数据系统应用开发思路和环境16.1 总体思路 16.1.1 大数据读写应用的开发 16.1.2 大
17、数据分析应用的开发 16.2 开发环境 16.2.1 Plugin 插件的安装16.2.2 Hadoop 开发环境的配置 16.2.3 示例程序验证 第17章HDFS 文件读/写应用开发 17.1 文件列表 17.2 文件读取 17.3 文件上传 17.4 文件创建 17.5 文件写入 17.6 文件压缩与解压17.6.1 压缩写入17.6.2 解压后读取 17.7 目录创建 17.8 文件重命名 17.9 删除文件 17.10 查看文件时间 17.11 查看文件是否存在17.12 查找文件位置 17.13 查找集群所有的节点.17.14 SequenceFile 文件格式转换 17.14.1
18、 创建SequenceFile 格式的文件.17.14.2 读取SequenceFile 格式的文件.17.15 MapFile 文件格式转换.17.15.1 创建MapFile 格式的文件.17.15.2 读取MapFile 格式的文件.17.15.3 SequenceFile 格式转换成MapFile 格式.第18章HBase 数据库读/写应用开发18.1 创建表18.2 删除表18.3 查询数据库中的表18.4 插入记录.18.5 查询记录.18.5.1 列族的查询.18.5.2 查询所有记录18.5.3 基于行键查询18.5.4 基于标签值查询18.5.5 组合条件查询18.6 修改记
19、录.18.7 删除记录.第19章ZooKeeper 开发 19.1 创建节点 19.2 删除节点 19.3 加入子节点 19.4 列出节点成员 19.5 获取节点内容 第20章MapReduce 开发20.1 定制数据类型 20.2 定制输入格式 20.3 定制输出格式 20.4 将整个文件作为输入 20.5 小文件聚合成一个文件20.6 多集合文件输出20.7 对压缩数据处理20.8 定制partioner 20.9 定制combiner 20.10 MapReduce 组合20.10.1 迭代组合 20.10.2 线性组合 20.10.3 依赖组合 20.10.4 前后链式组合 20.11
20、 多数据源连接 20.11.1 Reduce 端连接 20.11.2 Map 端连接20.11.3 Map 端过滤的Reduce端连接 20.12 全局参数应用20.13 全局文件应用20.14 关系数据库访问20.14.1 关系数据库读取20.14.2 关系数据库的写入第21章Pig 开发21.1 脚本编程.21.1.1 脚本语言21.1.2 脚本编程21.1.3 脚本运行21.2 自定义函数21.2.1 编译打包21.2.2 测试运行第22章Hive 开发.22.1 HiveQL 语言.22.1.1 HiveQL 的数据类型22.1.2 HiveQL 的常用操作22.2 UDF 编码22.3 UDAF 编码22.4 客户端编码22.4.1 与Hive 服务器端连接建立.22.4.2 与Hive 进行指令交互.22.4.3 客户端命令组织22.4.4 程序运行结果第6 篇 实践篇第23章企业大数据盘系统 23.1 系统开发背景 23.2 系统架构设计 23.3 系统功能设计 23.4 系统代码实现 第24章Hadoop 的日志分析 24.1 系统开发背景 24.2 系统架构设计 24.3 系统功能设计24.4 系统代码实现24.4.1 系统连接代码24.4.2 Hive 模块代码24.4.3 系统组织代码24.5 系统实现效果参考文献