| 作者 |
| 哈维尔·卢拉辛 凯文·郭 埃德加·鲁伊斯 文卡特·安卡姆 |
| 丛书名 |
| O’Reilly精品图书系列 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9782007301040 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 ---------------------------大规模数据分析和建模:基于Spark与R--------------------------- 这本书的目的是帮助所有人通过R使用Apache Spark。第1章~第5章,简单地介绍了如何大规模执行数据科学和机器学习项目。第6~9章介绍了使用Spark进行集群计算中令人激动的基本概念。第10章~第13章涵盖一些高级主题,包括分布式R、Streaming和社区贡献等。 ---------------------------Spark与Hadoop大数据分析--------------------------- 本书介绍了ApacheSpark和Hadoop的基础知识,并深入探讨了所有Spark组件:SparkCore、SparkSQL、DataFrame、DataSet、普通流、结构化流、MLlib、Graphx,以及Hadoop的核心组件(HDFS、MapReduce和Yarn)等,此外,也讲解了在Spark+Hadoop集群中实现的示例。 |
| 目录 |
---------------------------大规模数据分析和建模:基于Spark与R--------------------------- 序言 1 前言 3 第1章 引言 9 1.1 概述 10 1.2 Hadoop 10 1.3 Spark 12 1.4 R 16 1.5 sparklyr 19 1.6 小结 20 第2章 开始 21 2.1 概述 21 2.2 预备操作 22 2.2.1 安装sparklyr 23 2.2.2 安装Spark 23 2.3 连接 24 2.4 使用Spark 25 2.4.1 网络接口 25 2.4.2 分析 28 2.4.3 建模 28 2.4.4 数据 30 2.4.5 扩展 30 2.4.6 分布式R 31 2.4.7 流式数据 31 2.4.8 日志 32 2.5 断开连接 33 2.6 使用RStudio 33 2.7 资源 35 2.8 小结 36 第3章 分析 37 3.1 概述 37 3.2 数据导入 40 3.3 数据整理 41 3.3.1 内置函数 42 3.3.2 相关性 43 3.4 可视化 45 3.4.1 使用ggplot2 46 3.4.2 使用dbplot 47 3.5 建模 49 3.6 沟通 51 3.7 小结 54 第4章 建模 56 4.1 概述 56 4.2 探索性数据分析 58 4.3 特征工程 65 4.4 监督式学习 68 4.4.1 广义线性回归 72 4.4.2 其他模型 73 4.5 非监督式学习 73 4.5.1 数据准备 74 4.5.2 主题建模 75 4.6 小结 77 第5章 管道操作 78 5.1 概述 78 5.2 创建工作 80 5.3 用例 81 5.4 操作模式 83 5.5 交互性 84 5.6 部署 86 5.6.1 批打分 87 5.6.2 实时打分 88 5.7 小结 90 第6章 集群 92 6.1 概述 92 6.2 本地化 94 6.2.1 管理器 94 6.2.2 发行版 98 6.3 云端 100 6.3.1 亚马逊 101 6.3.2 Databricks 102 6.3.3 谷歌 103 6.3.4 IBM 105 6.3.5 微软 106 6.3.6 Qubole 107 6.4 Kubernetes 107 6.5 工具 108 6.5.1 RStudio 108 6.5.2 Jupyter 109 6.5.3 Livy 110 6.6 小结 111 第7章 连接 112 7.1 概述 112 7.1.1 边缘节点 114 7.1.2 Spark主 114 7.2 本地模式 115 7.3 单机模式 116 7.4 YARN 116 7.4.1 YARN客户端 117 7.4.2 YARN集群 117 7.5 Livy 118 7.6 Mesos 120 7.7 Kubernetes 121 7.8 云模式 121 7.9 批量模式 122 7.10 工具 123 7.11 多次连接 123 7.12 故障排除 124 7.12.1 记录日志 124 7.12.2 Spark Submit 124 7.12.3 Windows 126 7.13 小结 126 第8章 数据 127 8.1 概述 127 8.2 读取数据 129 8.2.1 路径 129 8.2.2 模式 130 8.2.3 内存 131 8.2.4 列 132 8.3 写入数据 133 8.4 复制数据 134 8.5 文件格式 135 8.5.1 CSV 136 8.5.2 JSON 137 8.5.3 Parquet 138 8.5.4 其他 139 8.6 文件系统 140 8.7 存储系统 140 8.7.1 Hive 141 8.7.2 Cassandra 142 8.7.3 JDBC 142 8.8 小结 143 第9章 调试 144 9.1 概述 144 9.1.1 计算图 146 9.1.2 时间线 148 9.2 配置 148 9.2.1 连接设置 150 9.2.2 提交设置 151 9.2.3 运行时设置 152 9.2.4 sparklyr设置 153 9.3 分区 156 9.3.1 隐式分区 156 9.3.2 显式分区 157 9.4 缓存 158 9.4.1 检查点 159 9.4.2 内存 159 9.5 重洗 160 9.6 序列化 161 9.7 配置文件 161 9.8 小结 162 第10章 扩展 163 10.1 概述 163 10.2 H2O 165 10.3 图模型 169 10.4 XGBoost 173 10.5 深度学习 176 10.6 基因组学 179 10.7 空间数据 181 10.8 故障排除 183 10.9 小结 183 第11章 分布式R 185 11.1 概述 185 11.2 用例 187 11.2.1 定制解析器 188 11.2.2 分区建模 189 11.2.3 网格搜索 191 11.2.4 Web API 192 11.2.5 模拟 193 11.3 分区 194 11.4 分组 195 11.5 列 196 11.6 context参数 197 11.7 函数 198 11.8 程序包 199 11.9 集群需求 200 11.9.1 安装R 200 11.9.2 Apache Arrow 201 11.10 故障排除 203 11.10.1 工作节点日志 204 11.10.2 解决超时 205 11.10.3 检查分区 206 11.10.4 调试工作节点 206 11.11 小结 207 第12章 数据流 208 12.1 概述 208 12.2 转换 211 12.2.1 分析 212 12.2.2 建模 213 12.2.3 管道 214 12.2.4 分布式R 215 12.3 Kafka 216 12.4 Shiny 218 12.5 小结 220 第13章 社区贡献 221 13.1 概述 221 13.2 Spark API 223 13.3 Spark扩展 224 13.4 使用Scala代码 226 13.5 小结 228 附录A 补充参考代码 229 ---------------------------Spark与Hadoop大数据分析--------------------------- 译者序 前言 第1章 从宏观视角看大数据分析 1 1.1 大数据分析以及 Hadoop 和 Spark 在其中承担的角色 3 1.1.1 典型大数据分析项目的生命周期 4 1.1.2 Hadoop和Spark承担的角色 6 1.2 大数据科学以及Hadoop和Spark在其中承担的角色 6 1.2.1 从数据分析到数据科学的根本性转变 6 1.2.2 典型数据科学项目的生命周期 8 1.2.3 Hadoop和Spark 承担的角色 9 1.3 工具和技术 9 1.4 实际环境中的用例 11 1.5 小结 12 第2章 Apache Hadoop和Apache Spark入门 13 2.1 Apache Hadoop概述 13 2.1.1 Hadoop 分布式文件系统 14 2.1.2 HDFS 的特性 15 2.1.3 MapReduce 16 2.1.4 MapReduce 的特性 17 2.1.5 MapReduce v1与MapReduce v2对比 17 2.1.6 YARN 18 2.1.7 Hadoop上的存储选择 20 2.2 Apache Spark概述 24 2.2.1 Spark 的发展历史 24 2.2.2 Apache Spark 是什么 25 2.2.3 Apache Spark 不是什么 26 2.2.4 MapReduce 的问题 27 2.2.5 Spark 的架构 28 2.3 为何把 Hadoop 和 Spark 结合使用 31 2.3.1 Hadoop 的特性 31 2.3.2 Spark 的特性 31 2.4 安装 Hadoop 和 Spark 集群 33 2.5 小结 36 第3章 深入剖析Apache Spark 37 3.1 启动 Spark 守护进程 37 3.1.1 使用CDH 38 3.1.2 使用 HDP、MapR 和Spark 预制软件包 38 3.2 学习Spark的核心概念 39 3.2.1 使用 Spark 的方法 39 3.2.2 弹性分布式数据集 41 3.2.3 Spark 环境 43 3.2.4 变换和动作 44 3.2.5 RDD 中的并行度 46 3.2.6 延迟评估 49 3.2.7 谱系图 50 3.2.8 序列化 51 3.2.9 在 Spark 中利用 Hadoop文件格式 52 3.2.10 数据的本地性 53 3.2.11 共享变量 54 3.2.12 键值对 RDD 55 3.3 Spark 程序的生命周期 55 3.3.1 流水线 57 3.3.2 Spark 执行的摘要 58 3.4 Spark 应用程序 59 3.4.1 Spark Shell 和 Spark 应用程序 59 3.4.2 创建 Spark 环境 59 3.4.3 SparkConf 59 3.4.4 SparkSubmit 60 3.4.5 Spark 配置项的优先顺序 61 3.4.6 重要的应用程序配置 61 3.5 持久化与缓存 62 3.5.1 存储级别 62 3.5.2 应该选择哪个存储级别 63 3.6 Spark 资源管理器:Standalone、YARN和Mesos 63 3.6.1 本地和集群模式 63 3.6.2 集群资源管理器 64 3.7 小结 67 第4章 利用Spark SQL、Data-Frame和Dataset进行大数据分析 69 4.1 Spark SQL 的发展史 70 4.2 Spark SQL 的架构 71 4.3 介绍Spark SQL的四个组件 72 4.4 DataFrame 和 Dataset 的演变 74 4.4.1 RDD 有什么问题 74 4.4.2 RDD 变换与 Dataset 和DataFrame 变换 75 4.5 为什么要使用 Dataset 和DataFrame 75 4.5.1 优化 76 4.5.2 速度 76 4.5.3 自动模式发现 77 4.5.4 多数据源,多种编程语言 77 4.5.5 RDD 和其他 API 之间的互操作性 77 4.5.6 仅选择和读取必要的数据 78 4.6 何时使用 RDD、Dataset 和DataFrame 78 4.7 利用 DataFrame 进行分析 78 4.7.1 创建 SparkSession 79 4.7.2 创建 DataFrame 79 4.7.3 把DataFrame转换为RDD 82 4.7.4 常用的 Dataset/DataFrame操作 83 4.7.5 缓存数据 84 4.7.6 性能优化 84 4.8 利用 Dataset API 进行分析 85 4.8.1 创建 Dataset 85 4.8.2 把 DataFrame 转换为Dataset 86 4.8.3 利用数据字典访问元数据 87 4.9 Data Sources API 87 4.9.1 读和写函数 88 4.9.2 内置数据源 88 4.9.3 外部数据源 93 4.10 把 Spark SQL 作为分布式 SQL引擎 97 4.10.1 把 Spark SQL 的 Thrift 服务器用于 JDBC / ODBC访问 97 4.10.2 使用 beeline 客户端查询数据 98 4.10.3 使用 spark-sql CLI 从 Hive查询数据 99 4.10.4 与 BI 工具集成 100 4.11 Hive on Spark 100 4.12 小结 100 第5章 利用Spark Streaming和Structured Streaming进行实时分析 102 5.1 实时处理概述 103 5.1.1 Spark Streaming 的优缺点 104 5.1.2 Spark Streaming 的发展史 104 5.2 Spark Streaming 的架构 104 5.2.1 Spark Streaming 应用程序流 106 5.2.2 无状态和有状态的流处理 107 5.3 Spark Streaming 的变换和动作 109 5.3.1 union 109 5.3.2 join 109 5.3.3 transform 操作 109 5.3.4 updateStateByKey 109 5.3.5 mapWithState 110 5.3.6 窗口操作 110 5.3.7 输出操作 111 5.4 输入数据源和输出存储 111 5.4.1 基本数据源 112 5.4.2 高级数据源 112 5.4.3 自定义数据源 112 5.4.4 接收器的可靠性 112 5.4.5 输出存储 113 5.5 使用 Kafka 和 HBase 的 Spark Streaming 113 5.5.1 基于接收器的方法 114 5.5.2 直接方法(无接收器) 116 5.5.3 与 HBase 集成 117 5.6 Spark Streaming 的高级概念 118 5.6.1 使用 DataFrame 118 5.6.2 MLlib 操作 119 5.6.3 缓存/持久化 119 5.6.4 Spark Streaming 中的容错机制 119 5.6.5 Spark Streaming 应用程序的性能调优 121 5.7 监控应用程序 122 5.8 结构化流概述 123 5.8.1 结构化流应用程序的工作流 123 5.8.2 流式 Dataset 和流式 DataFrame 125 5.8.3 流式 Dataset 和流式DataFrame 的操作 126 5.9 小结 129 第6章 利用Spark和Hadoop的笔记本与数据流 130 6.1 基于网络的笔记本概述 130 6.2 Jupyter概述 131 6.2.1 安装 Jupyter 132 6.2.2 用 Jupyter 进行分析 134 6.3 Apache Zeppelin概述 135 6.3.1 Jupyter 和 Zeppelin对比 136 6.3.2 安装 Apache Zeppelin 137 6.3.3 使用 Zeppelin 进行分析 139 6.4 Livy REST 作业服务器和 Hue笔记本 140 6.4.1 安装设置 Livy 服务器和Hue 141 6.4.2 使用 Livy 服务器 142 6.4.3 Livy 和 Hue 笔记本搭配使用 145 6.4.4 Livy 和 Zeppelin 搭配使用 148 6.5 用于数据流的 Apache NiFi概述 148 6.5.1 安装 Apache NiFi 148 6.5.2 把 NiFi 用于数据流和分析 149 6.6 小结 152 第7章 利用Spark和Hadoop进行机器学习 153 7.1 机器学习概述 153 7.2 在 Spark 和 Hadoop 上进行机器学习 154 7.3 机器学习算法 155 7.3.1 有监督学习 156 7.3.2 无监督学习 156 7.3.3 推荐系统 157 7.3.4 特征提取和变换 157 7.3.5 优化 158 7.3.6 Spark MLlib 的数据类型 158 7.4 机器学习算法示例 160 7.5 构建机器学习流水线 163 7.5.1 流水线工作流的一个示例 163 7.5.2 构建一个 ML 流水线 164 7.5.3 保存和加载模型 166 7.6 利用 H2O 和 Spark 进行机器学习 167 7.6.1 为什么使用 Sparkling Water 167 7.6.2 YARN 上的一个应用程序流 167 7.6.3 Sparkling Water 入门 168 7.7 Hivemall概述 169 7.8 Hivemall for Spark概述 170 7.9 小结 170 第8章 利用Spark和Mahout构建推荐系统 171 8.1 构建推荐系统 171 8.1.1 基于内容的过滤 172 8.1.2 协同过滤 172 8.2 推荐系统的局限性 173 8.3 用 MLlib 实现推荐系统 173 8.3.1 准备环境 174 8.3.2 创建 RDD 175 8.3.3 利用 DataFrame 探索数据 176 8.3.4 创建训练和测试数据集 178 8.3.5 创建一个模型 178 8.3.6 做出预测 179 8.3.7 利用测试数据对模型进行评估 179 8.3.8 检查模型的准确度 180 8.3.9 显式和隐式反馈 181 8.4 Mahout 和 Spark 的集成 181 8.4.1 安装 Mahout 181 8.4.2 探索 Mahout shell 182 8.4.3 利用 Mahout 和搜索工具构建一个通用的推荐系统 186 8.5 小结 189 第9章 利用GraphX进行图分析 190 9.1 图处理概述 190 9.1.1 图是什么 191 9.1.2 图数据库和图处理系统 191 9.1.3 GraphX概述 192 9.1.4 图算法 192 9.2 GraphX 入门 193 9.2.1 GraphX 的基本操作 193 9.2.2 图的变换 198 9.2.3 GraphX 算法 202 9.3 利用 GraphX 分析航班数据 205 9.4 GraphFrames概述 209 9.4.1 模式发现 211 9.4.2 加载和保存 GraphFrames 212 9.5 小结 212 第10章 利用SparkR进行交互式分析 213 10.1 R语言和SparkR概述 213 10.1.1 R语言是什么 214 10.1.2 SparkR概述 214 10.1.3 SparkR 架构 216 10.2 SparkR 入门 216 10.2.1 安装和配置 R 216 10.2.2 使用 SparkR shell 218 10.2.3 使用 SparkR 脚本 222 10.3 在 SparkR 里使用 DataFrame 223 10.4 在 RStudio 里使用 SparkR 228 10.5 利用 SparkR 进行机器学习 230 10.5.1 利用朴素贝叶斯模型 230 10.5.2 利用 K 均值模型 232 10.6 在 Zeppelin 里使用 SparkR 233 10.7 小结 234 |