具体描述
如果你是一位在校大学生,对大数据感兴趣,也知道使用的企业越来越多,市场需求更是日新月异,但苦于自己基础不够,心有余而力不足;也看过不少大数据方面的书籍、博客、视频等,但感觉进步不大;如果你是一位在职人员,但目前主要使用传统技术,虽然对大数据很有兴趣,也深知其对未来的影响,但因时间不够,虽有一定的基础,常常也是打两天鱼、晒三天网,进展不是很理想。
如果你有上述疑惑或遇到相似问题,《自己动手做大数据系统》正好比较适合你。《自己动手做大数据系统》从OpenStack云平台搭建、软件部署、需求开发实现到结果展示,以纵向角度讲解了生产性大数据项目上线的整个流程;以完成一个实际项目需求贯穿各章节,讲述了Hadoop生态圈中互联网爬虫技术、Sqoop、Hive、HBase组件协同工作流程,并展示了Spark计算框架、R制图软件和SparkRHive组件的使用方法。《自己动手做大数据系统》的一大特色是提供了实际操作环境,用户可以在线登录云平台来动手操作书中的数据和代码,登录网址请参考http://www.feiguyun.com/support。
作者简介
张魁
虚拟化工程师,Openstack架构师,苏州某高校云平台架构师,十余年Linux系统运维实践及虚拟化开发经验,4年Linux系统补丁开发经验。先后在美企担任虚拟化应用运维、服务器集群开发运维工程师或系统开发架构师,高校信息中心云平台架构师,主要关注Openstack、Docker及分布式存储等。
张粤磊
DBA、大数据架构师,十余年一线数据处理数据分析实战经验。先后在咨询、金融、互联网行业担任数据平台技术负责人或架构师。主要关注大数据基础平台、大数据模型构建和大数据分析。
刘未昕
从事IT研发和项目管理工作十余年以上。使用多种程序设计语言,目前研究方向主要是大数据生态系统,从事金融、数据仓库等领域研发。五年以上IT行业授课、培训经验,并在多所高校担任外聘讲师。
吴茂贵
运筹学与控制论专业研究生学历。毕业后主要参与数据仓库、商务智能等方面的项目,期间做过数据处理、数据分析、数据挖掘等工作,行业涉及金融、物流、制造业等。近期主要做复杂数据存储、清理、转换等工作,同时在大数据方面也很有兴趣并投入大量时间和精力,且将持续为之。
目录信息
1.1 大数据时代 1
1.2 实战大数据项目 2
1.3 大数据演练平台 2
第2章 项目背景及准备 4
2.1 项目背景 4
2.2 项目简介 4
2.3 项目架构 4
2.4 操作系统 5
2.5 数据存储 7
2.6 数据处理 8
2.7 开发工具 9
2.8 调试工具 10
2.9 版本管理 10
第3章 大数据环境搭建和配置 11
3.1 各组件功能说明 11
3.1.1 各种数据源的采集工具 12
3.1.2 企业大数据存储工具 12
3.1.3 企业大数据系统的数据仓库工具 12
3.1.4 企业大数据系统的分析计算工具 13
3.1.5 企业大数据系统的数据库工具 13
3.2 大数据系统各组件安装部署配置 13
3.2.1 安装的前期准备工作 13
3.2.2 Hadoop基础环境安装及配置 15
3.2.3 Hive安装及配置 21
3.2.4 Sqoop安装及配置 24
3.2.5 Spark安装及配置 30
3.2.6 Zookeeper安装及配置 31
3.2.7 HBase安装及配置 33
3.3 自动化安装及部署说明 35
3.3.1 自动化安装及部署整体架构设计 35
3.3.2 大数据系统自动化部署逻辑调用关系 36
3.4 本章小结 43
第4章 大数据的获取 44
4.1 使用爬虫获取互联网数据 45
4.2 Python和Scrapy 框架的安装 45
4.3 抓取和解析招聘职位信息 47
4.4 职位信息的落地 51
4.5 两个爬虫配合工作 53
4.6 让爬虫的架构设计更加合理 55
4.7 获取数据的其他方式 57
4.8 使用Sqoop同步论坛中帖子数据 57
4.9 本章小结 59
第5章 大数据的处理 60
5.1 Hive是什么 60
5.2 为什么使用Hive做数据仓库建模 60
5.3 飞谷项目中Hive建模步骤 61
5.3.1 逻辑模型的创建 62
5.3.2 物理模型的创建 67
5.3.3 将爬虫数据导入stg_job表 74
5.4 使用Hive进行数据清洗转换 77
5.5 数据清洗转换的必要性 78
5.6 使用HiveQL清洗数据、提取维度信息 79
5.6.1 使用HQL清洗数据 79
5.6.2 提取维度信息 82
5.7 定义Hive UDF封装处理逻辑 85
5.7.1 Hive UDF的开发、部署和调用 86
5.7.2 Python版本的UDF 89
5.8 使用左外连接构造聚合表rpt_job 92
5.9 让数据处理自动调度 96
5.9.1 HQL的几种执行方式 96
5.9.2 Hive Thrift服务 99
5.9.3 使用JDBC连接Hive 100
5.9.4 Python调用HiveServer服务 103
5.9.5 用crontab实现的任务调度 105
5.10 本章小结 107
第6章 大数据的存储 108
6.1 NoSQL及HBase简介 108
6.2 HBase中的主要概念 110
6.3 HBase客户端及JavaAPI 111
6.4 Hive数据导入HBase的两种方案 114
6.4.1 利用既有的JAR包实现整合 114
6.4.2 手动编写MapReduce程序 116
6.5 使用Java API查询HBase中的职位信息 122
6.5.1 为什么是HBase而非Hive 122
6.5.2 多条件组合查询HBase中的职位信息 123
6.6 如何显示职位表中的某条具体信息 132
6.7 本章小结 133
第7章 大数据的展示 134
7.1 概述 134
7.2 数据分析的一般步骤 135
7.3 用R来做数据分析展示 135
7.3.1 在Ubuntu上安装R 135
7.3.2 R的基本使用方式 137
7.4 用Hive充当R的数据来源 139
7.4.1 RHive组件 139
7.4.2 把R图表整合到Web页面中 145
7.5 本章小结 151
第8章 大数据的分析挖掘 152
8.1 基于Spark的数据挖掘技术 152
8.2 Spark和Hadoop的关系 153
8.3 在Ubuntu上安装Spark集群 154
8.3.1 JDK和Hadoop的安装 154
8.3.2 安装Scala 154
8.3.3 安装Spark 155
8.4 Spark的运行方式 157
8.5 使用Spark替代Hadoop Yarn引擎 160
8.5.1 使用spark-sql查看Hive表 160
8.5.2 在beeline客户端使用Spark引擎 161
8.5.3 在Java代码中引用Spark的ThriftServer 163
8.6 对招聘公司名称做全文检索 168
8.6.1 从HDFS数据源构造JavaRDD 169
8.6.2 使用Spark SQL操作RDD 173
8.6.3 把RDD运行结果展现在前端 174
8.7 如何把Spark用得更好 175
8.8 SparkR组件的使用 177
8.8.1 SparkR的安装及启动 177
8.8.2 运行自带的Sample例子 179
8.8.3 利用SparkR生成职位统计饼图 179
8.9 本章小结 181
第9章 自己动手搭建支撑大数据系统的云平台 182
9.1 云平台架构 182
9.1.1 一期云基础平台架构 182
9.1.2 二期云基础平台架构 184
9.2 云平台搭建及部署 185
9.2.1 安装组件前准备 185
9.2.2 Identity(Keystone)组件 190
9.2.3 Image(Glance)组件 198
9.2.4 Compute(Nova)组件 201
9.2.5 Storage(Cinder)组件 206
9.2.6 Networking(Neutron)组件 210
9.2.7 Ceph分布式存储系统 221
9.2.8 Dashboard(Horizon)组件 230
9.3 Identity(Keystone)与LDAP的整合 232
9.4 配置Image组件大镜像部署 235
9.5 配置业务系统无缝迁移 236
9.6 本章小结 237
参考文献 238
· · · · · · (收起)
读后感
用户评价
老实说,我是一个比较注重理论深度的读者,很多市面上的“速成”书籍往往只是停留在API调用的层面,让人知其然却不知其所以然。然而,这本著作的厉害之处在于,它在教授实践操作的同时,从未放松对底层原理的剖析。比如,在讲解分布式文件系统时,作者不仅展示了如何上传文件,更是深入剖析了数据块的划分、副本的冗余机制以及NameNode和DataNode之间的协作流程,甚至还涉及到了它们在处理高并发请求时的内部设计考量。这种深度讲解让我恍然大悟,原来我们日常使用的那些“黑科技”背后,竟然是如此精妙的工程学设计。我特别欣赏作者那种“刨根问底”的精神,他总是试图带领读者去探究每一个组件为什么要这样设计,而不是仅仅告诉你“它就是这样工作的”。对于我这种追求技术内核的工程师来说,这本书无疑是一本可以放在手边,时不时翻阅以加深理解的工具书,它提供的视角远超一般入门读物所能企及的高度。
这本书真是让我受益匪浅!我一直对数据处理充满好奇,但总觉得大数据技术太高深莫测,像一个遥不可及的黑盒子。这本书的标题《自己动手做大数据系统》一下子就抓住了我的眼球,它承诺的“动手做”让我感到踏实和可行。从我翻开第一页开始,就被作者那种循序渐进的讲解方式深深吸引了。它没有上来就抛出复杂的理论模型,而是从最基础的架构搭建讲起,每一步都配有清晰的代码示例和详细的步骤说明。我记得有一次,我按照书里的指引配置了一个小型集群,虽然过程中遇到了一些小小的网络问题,但书中的故障排查建议真的帮了我大忙,让我感觉自己真的在亲手构建一个系统,而不是仅仅在阅读枯燥的文档。这种实践驱动的学习过程,极大地增强了我的信心,让我真正理解了数据是如何流动、存储和被处理的。这本书的价值在于它把一个庞大而复杂的领域,拆解成了可以被个体掌握和实现的小模块,是初学者迈入大数据世界的绝佳指南。
这本书的叙事风格非常贴近一个经验丰富的导师在耳边耐心指导的感觉,丝毫没有那种冰冷的教科书式的说教感。阅读体验极其流畅,仿佛作者就是我的“技术搭子”。我特别喜欢它在引入新概念时所采用的类比手法。比如,描述数据分区策略时,它没有直接使用复杂的哈希函数定义,而是用了一个生活化的场景来比喻数据如何在不同的“仓库”中均匀存放,这极大地降低了我的认知负荷。更妙的是,书中每一个实践案例都仿佛是真实工作场景的缩影,作者会提前预设一些常见的性能瓶颈或潜在的错误,并教你如何用书中学到的知识去预见和解决它们。这种前瞻性的指导,让我学会了在动手之前先进行架构思考,而不是盲目地敲代码。这本书不仅仅教你如何“运行”大数据服务,更重要的是,它教会了你如何“思考”一个健壮的分布式系统应该如何构建,这种思维模式的培养,价值无法估量。
我手里收藏了不少关于分布式计算的书籍,但很多要么是某个特定框架的官方手册的堆砌,要么就是过于偏向理论推导,让人望而却步。这本《自己动手做大数据系统》找到了一种近乎完美的平衡点。它避免了陷入单一技术栈的泥潭,而是以构建一个“系统”的宏观视角出发,贯穿了从数据采集、存储到分析的全链路。我印象深刻的是,书中对不同阶段的工具链进行了横向对比,比如在流处理部分,它清晰地阐述了不同流处理引擎的适用场景和权衡取舍。这种“系统观”的培养至关重要,它让我明白,大数据并非由某一个神奇的工具构成,而是一个由多个精心挑选和配置的组件协同工作的复杂生态。这本书成功地将这个庞大的生态系统,用一种模块化、可插拔的方式呈现出来,使得读者可以根据自身需求,灵活地进行技术选型和组合创新,而不是被某一家厂商的技术路线所束缚。
这本书的排版和图示设计绝对是加分项,这对于需要理解复杂数据流动的技术书籍来说至关重要。很多技术书的图表往往是黑白、密密麻麻的流程框,让人看一眼就头疼。但在这本书里,所有的架构图都清晰明了,色彩运用得当,关键的数据流向和控制路径被高亮显示,即便是第一次接触分布式系统概念的人,也能通过这些直观的视觉辅助,迅速建立起系统的空间认知。我个人尤其欣赏作者对“时间线”的把控。在介绍复杂算法或协议时,他会先用一个简化的时间轴图来展示事件的先后顺序和并发点,然后再深入代码细节,这种“先宏观后微观”的阅读路径,极大地优化了我的理解效率。读完一章后,我常常会发现自己能在大脑中重构出那一模块的完整架构图,这得益于书中高质量的视觉引导,真正做到了图文并茂,相得益彰。
2019 B46 是的 pm看不懂
简明扼要,逻辑清晰,强烈推荐
2019 B46 是的 pm看不懂
2019 B46 是的 pm看不懂
简明扼要,逻辑清晰,强烈推荐