logo
分类于: 编程语言 计算机基础 互联网 云计算&大数据 人工智能

简介

Hadoop应用开发技术详解

Hadoop应用开发技术详解 6.0分

资源最后更新于 2020-03-29 02:48:53

作者:刘刚

出版社:出版社机械工业出版社

出版日期:2014-01

ISBN:9787111452447

文件格式: pdf

标签: 互联网 技术 大数据 Java Hadoop 应用开发

简介· · · · · ·

本书共12章。第1~2章详细地介绍了Hadoop的生态系统、关键技术以及安装和配置;第3章是MapReduce的使用入门,让读者了解整个开发过程;第4~5章详细讲解了分布式文件系统HDFS和Hadoop的文件I/O;第6章分析了MapReduce的工作原理;第7章讲解了如何利用Eclipse来编译Hadoop的源代码,以及如何对Hadoop应用进行测试和调试;第8~9章细致地讲解了MapReduce的开发方法和高级应用;第10~12章系统地讲解了Hive、HBase和Mahout。刘刚 著
直接下载

想要: 点击会收藏到你的 我的收藏,可以在这里查看

已收: 表示已经收藏

Tips: 注册一个用户 可以通过用户中心得到电子书更新的通知哦

目录

  1. 前言
  2. 为什么要写这本书
  3. 读者对象
  4. 如何阅读本书
  5. 勘误和支持
  6. 致谢
  7. 第1章 Hadoop概述
  8. 1.1 Hadoop起源
  9. 1.1.1 Google与Hadoop模块
  10. 1.1.2 为什么会有Hadoop
  11. 1.1.3 Hadoop版本介绍
  12. 1.2 Hadoop生态系统
  13. 1.3 Hadoop常用项目介绍
  14. 1.4 Hadoop在国内的应用
  15. 1.5 本章小结
  16. 第2章 Hadoop安装
  17. 2.1 Hadoop环境安装配置
  18. 2.1.1 安装VMware
  19. 2.1.2 安装Ubuntu
  20. 2.1.3 安装VMware Tools
  21. 2.1.4 安装JDK
  22. 2.2 Hadoop安装模式
  23. 2.2.1 单机安装
  24. 2.2.2 伪分布式安装
  25. 2.2.3 分布式安装
  26. 2.3 如何使用Hadoop
  27. 2.3.1 Hadoop的启动与停止
  28. 2.3.2 Hadoop配置文件
  29. 2.4 本章小结
  30. 第3章 MapReduce快速入门
  31. 3.1 WordCount实例准备开发环境
  32. 3.1.1 使用Eclipse创建一个Java工程
  33. 3.1.2 导入Hadoop的JAR文件
  34. 3.2 MapReduce代码的实现
  35. 3.2.1 编写WordMapper类
  36. 3.2.2 编写WordReducer类
  37. 3.2.3 编写WordMain驱动类
  38. 3.3 打包、部署和运行
  39. 3.3.1 打包成JAR文件
  40. 3.3.2 部署和运行
  41. 3.3.3 测试结果
  42. 3.4 本章小结
  43. 第4章 Hadoop分布式文件系统详解
  44. 4.1 认识HDFS
  45. 4.1.1 HDFS的特点
  46. 4.1.2 Hadoop文件系统的接口
  47. 4.1.3 HDFS的Web服务
  48. 4.2 HDFS架构
  49. 4.2.1 机架
  50. 4.2.2 数据块
  51. 4.2.3 元数据节点
  52. 4.2.4 数据节点
  53. 4.2.5 辅助元数据节点
  54. 4.2.6 名字空间
  55. 4.2.7 数据复制
  56. 4.2.8 块备份原理
  57. 4.2.9 机架感知
  58. 4.3 Hadoop的RPC机制
  59. 4.3.1 RPC的实现流程
  60. 4.3.2 RPC的实体模型
  61. 4.3.3 文件的读取
  62. 4.3.4 文件的写入
  63. 4.3.5 文件的一致模型
  64. 4.4 HDFS的HA机制
  65. 4.4.1 HA集群
  66. 4.4.2 HA架构
  67. 4.4.3 为什么会有HA机制
  68. 4.5 HDFS的Federation机制
  69. 4.5.1 单个NameNode的HDFS架构的局限性
  70. 4.5.2 为什么引入Federation机制
  71. 4.5.3 Federation架构
  72. 4.5.4 多个名字空间的管理问题
  73. 4.6 Hadoop文件系统的访问
  74. 4.6.1 安全模式
  75. 4.6.2 HDFS的Shell访问
  76. 4.6.3 HDFS处理文件的命令
  77. 4.7 Java API接口
  78. 4.7.1 Hadoop URL读取数据
  79. 4.7.2 FileSystem类
  80. 4.7.3 FileStatus类
  81. 4.7.4 FSDataInputStream类
  82. 4.7.5 FSDataOutputStream类
  83. 4.7.6 列出HDFS下所有的文件
  84. 4.7.7 文件的匹配
  85. 4.7.8 PathFilter对象
  86. 4.8 维护HDFS
  87. 4.8.1 追加数据
  88. 4.8.2 并行复制
  89. 4.8.3 升级与回滚
  90. 4.8.4 添加节点
  91. 4.8.5 删除节点
  92. 4.9 HDFS权限管理
  93. 4.9.1 用户身份
  94. 4.9.2 权限管理的原理
  95. 4.9.3 设置权限的Shell命令
  96. 4.9.4 超级用户
  97. 4.9.5 HDFS权限配置参数
  98. 4.10 本章小结
  99. 第5章 Hadoop文件I/O详解
  100. 5.1 Hadoop文件的数据结构
  101. 5.1.1 SequenceFile存储
  102. 5.1.2 MapFile存储
  103. 5.1.3 SequenceFile转换为MapFile
  104. 5.2 HDFS数据完整性
  105. 5.2.1 校验和
  106. 5.2.2 数据块检测程序
  107. 5.3 文件序列化
  108. 5.3.1 进程间通信对序列化的要求
  109. 5.3.2 Hadoop文件的序列化
  110. 5.3.3 Writable接口
  111. 5.3.4 WritableComparable接口
  112. 5.3.5 自定义Writable接口
  113. 5.3.6 序列化框架
  114. 5.3.7 数据序列化系统Avro
  115. 5.4 Hadoop的Writable类型
  116. 5.4.1 Writable类的层次结构
  117. 5.4.2 Text类型
  118. 5.4.3 NullWritable类型
  119. 5.4.4 ObjectWritable类型
  120. 5.4.5 GenericWritable类型
  121. 5.5 文件压缩
  122. 5.5.1 Hadoop支持的压缩格式
  123. 5.5.2 Hadoop中的编码器和解码器
  124. 5.5.3 本地库
  125. 5.5.4 可分割压缩LZO
  126. 5.5.5 压缩文件性能比较
  127. 5.5.6 Snappy压缩
  128. 5.5.7 gzip、LZO和Snappy比较
  129. 5.6 本章小结
  130. 第6章 MapReduce工作原理
  131. 6.1 MapReduce的函数式编程概念
  132. 6.1.1 列表处理
  133. 6.1.2 Mapping数据列表
  134. 6.1.3 Reducing数据列表
  135. 6.1.4 Mapper和Reducer如何工作
  136. 6.1.5 应用实例:词频统计
  137. 6.2 MapReduce框架结构
  138. 6.2.1 MapReduce模型
  139. 6.2.2 MapReduce框架组成
  140. 6.3 MapReduce运行原理
  141. 6.3.1 作业的提交
  142. 6.3.2 作业初始化
  143. 6.3.3 任务的分配
  144. 6.3.4 任务的执行
  145. 6.3.5 进度和状态的更新
  146. 6.3.6 MapReduce的进度组成
  147. 6.3.7 任务完成
  148. 6.4 MapReduce容错
  149. 6.4.1 任务失败
  150. 6.4.2 TaskTracker失败
  151. 6.4.3 JobTracker失败
  152. 6.4.4 子任务失败
  153. 6.4.5 任务失败反复次数的处理方法
  154. 6.5 Shuffle阶段和Sort阶段
  155. 6.5.1 Map端的Shuffle
  156. 6.5.2 Reduce端的Shuffle
  157. 6.5.3 Shuffle过程参数调优
  158. 6.6 任务的执行
  159. 6.6.1 推测执行
  160. 6.6.2 任务JVM重用
  161. 6.6.3 跳过坏的记录
  162. 6.6.4 任务执行的环境
  163. 6.7 作业调度器
  164. 6.7.1 先进先出调度器
  165. 6.7.2 容量调度器
  166. 6.7.3 公平调度器
  167. 6.8 自定义Hadoop调度器
  168. 6.8.1 Hadoop调度器框架
  169. 6.8.2 编写Hadoop调度器
  170. 6.9 YARN介绍
  171. 6.9.1 异步编程模型
  172. 6.9.2 YARN支持的计算框架
  173. 6.9.3 YARN架构
  174. 6.9.4 YARN工作流程
  175. 6.10 本章小结
  176. 第7章 Eclipse插件的应用
  177. 7.1 编译Hadoop源码
  178. 7.1.1 下载Hadoop源码
  179. 7.1.2 准备编译环境
  180. 7.1.3 编译common组件
  181. 7.2 Eclipse安装MapReduce插件
  182. 7.2.1 查找MapReduce插件
  183. 7.2.2 新建一个Hadoop location
  184. 7.2.3 Hadoop插件操作HDFS
  185. 7.2.4 运行MapReduce的驱动类
  186. 7.3 MapReduce的Debug调试
  187. 7.3.1 进入Debug运行模式
  188. 7.3.2 Debug调试具体操作
  189. 7.4 单元测试框架MRUnit
  190. 7.4.1 认识MRUnit框架
  191. 7.4.2 准备测试案例
  192. 7.4.3 Mapper单元测试
  193. 7.4.4 Reducer单元测试
  194. 7.4.5 MapReduce单元测试
  195. 7.5 本章小结
  196. 第8章 MapReduce编程开发
  197. 8.1 WordCount案例分析
  198. 8.1.1 MapReduce工作流程
  199. 8.1.2 WordCount的Map过程
  200. 8.1.3 WordCount的Reduce过程
  201. 8.1.4 每个过程产生的结果
  202. 8.1.5 Mapper抽象类
  203. 8.1.6 Reducer抽象类
  204. 8.1.7 MapReduce驱动
  205. 8.1.8 MapReduce最小驱动
  206. 8.2 输入格式
  207. 8.2.1 InputFormat接口
  208. 8.2.2 InputSplit类
  209. 8.2.3 RecordReader类
  210. 8.2.4 应用实例:随机生成100个小数并求最大值
  211. 8.3 输出格式
  212. 8.3.1 OutputFormat接口
  213. 8.3.2 RecordWriter类
  214. 8.3.3 应用实例:把首字母相同的单词放到一个文件里
  215. 8.4 压缩格式
  216. 8.4.1 如何在MapReduce中使用压缩
  217. 8.4.2 Map作业输出结果的压缩
  218. 8.5 MapReduce优化
  219. 8.5.1 Combiner类
  220. 8.5.2 Partitioner类
  221. 8.5.3 分布式缓存
  222. 8.6 辅助类
  223. 8.6.1 读取Hadoop配置文件
  224. 8.6.2 设置Hadoop的配置文件属性
  225. 8.6.3 GenericOptionsParser选项
  226. 8.7 Streaming接口
  227. 8.7.1 Streaming工作原理
  228. 8.7.2 Streaming编程接口参数
  229. 8.7.3 作业配置属性
  230. 8.7.4 应用实例:抓取网页的标题
  231. 8.8 本章小结
  232. 第9章 MapReduce高级应用
  233. 9.1 计数器
  234. 9.1.1 默认计数器
  235. 9.1.2 自定义计数器
  236. 9.1.3 获取计数器
  237. 9.2 MapReduce二次排序
  238. 9.2.1 二次排序原理
  239. 9.2.2 二次排序的算法流程
  240. 9.2.3 代码实现
  241. 9.3 MapReduce中的Join算法
  242. 9.3.1 Reduce端Join
  243. 9.3.2 Map端Join
  244. 9.3.3 半连接Semi Join
  245. 9.4 MapReduce从MySQL读写数据
  246. 9.4.1 读数据
  247. 9.4.2 写数据
  248. 9.5 Hadoop系统调优
  249. 9.5.1 小文件优化
  250. 9.5.2 Map和Reduce个数设置
  251. 9.6 本章小结
  252. 第10章 数据仓库工具Hive
  253. 10.1 认识Hive
  254. 10.1.1 Hive工作原理
  255. 10.1.2 Hive数据类型
  256. 10.1.3 Hive的特点
  257. 10.1.4 Hive下载与安装
  258. 10.2 Hive架构
  259. 10.2.1 Hive用户接口
  260. 10.2.2 Hive元数据库
  261. 10.2.3 Hive的数据存储
  262. 10.2.4 Hive解释器
  263. 10.3 Hive文件格式
  264. 10.3.1 TextFile格式
  265. 10.3.2 SequenceFile格式
  266. 10.3.3 RCFile文件格式
  267. 10.3.4 自定义文件格式
  268. 10.4 Hive操作
  269. 10.4.1 表操作
  270. 10.4.2 视图操作
  271. 10.4.3 索引操作
  272. 10.4.4 分区操作
  273. 10.4.5 桶操作
  274. 10.5 Hive 复合类型
  275. 10.5.1 Struct类型
  276. 10.5.2 Array类型
  277. 10.5.3 Map类型
  278. 10.6 Hive的JOIN详解
  279. 10.6.1 JOIN操作语法
  280. 10.6.2 JOIN原理
  281. 10.6.3 外部JOIN
  282. 10.6.4 Map端JOIN
  283. 10.6.5 JOIN中处理NULL值的语义区别
  284. 10.7 Hive优化策略
  285. 10.7.1 列裁剪
  286. 10.7.2 Map Join操作
  287. 10.7.3 Group By操作
  288. 10.7.4 合并小文件
  289. 10.8 Hive内置操作符与函数
  290. 10.8.1 字符串函数
  291. 10.8.2 集合统计函数
  292. 10.8.3 复合类型操作
  293. 10.9 Hive用户自定义函数接口
  294. 10.9.1 用户自定义函数UDF
  295. 10.9.2 用户自定义聚合函数UDAF
  296. 10.10 Hive的权限控制
  297. 10.10.1 角色的创建和删除
  298. 10.10.2 角色的授权和撤销
  299. 10.10.3 超级管理员权限
  300. 10.11 应用实例:使用JDBC开发Hive程序
  301. 10.11.1 准备测试数据
  302. 10.11.2 代码实现
  303. 10.12 本章小结
  304. 第11章 开源数据库HBase
  305. 11.1 认识HBase
  306. 11.1.1 HBase的特点
  307. 11.1.2 HBase访问接口
  308. 11.1.3 HBase存储结构
  309. 11.1.4 HBase存储格式
  310. 11.2 HBase设计
  311. 11.2.1 逻辑视图
  312. 11.2.2 框架结构及流程
  313. 11.2.3 Table和Region的关系
  314. 11.2.4 -ROOT-表和.META.表
  315. 11.3 关键算法和流程
  316. 11.3.1 Region定位
  317. 11.3.2 读写过程
  318. 11.3.3 Region分配
  319. 11.3.4 Region Server上线和下线
  320. 11.3.5 Master上线和下线
  321. 11.4 HBase安装
  322. 11.4.1 HBase单机安装
  323. 11.4.2 HBase分布式安装
  324. 11.5 HBase的Shell操作
  325. 11.5.1 一般操作
  326. 11.5.2 DDL操作
  327. 11.5.3 DML操作
  328. 11.5.4 HBase Shell脚本
  329. 11.6 HBase客户端
  330. 11.6.1 Java API交互
  331. 11.6.2 MapReduce操作HBase
  332. 11.6.3 向HBase中写入数据
  333. 11.6.4 读取HBase中的数据
  334. 11.6.5 Avro、REST和Thrift接口
  335. 11.7 本章小结
  336. 第12章 Mahout算法
  337. 12.1 Mahout的使用
  338. 12.1.1 安装Mahout
  339. 12.1.2 运行一个Mahout案例
  340. 12.2 Mahout数据表示
  341. 12.2.1 偏好Perference类
  342. 12.2.2 数据模型DataModel类
  343. 12.2.3 Mahout链接MySQL数据库
  344. 12.3 认识Taste框架
  345. 12.4 Mahout推荐器
  346. 12.4.1 基于用户的推荐器
  347. 12.4.2 基于项目的推荐器
  348. 12.4.3 Slope One推荐策略
  349. 12.5 推荐系统
  350. 12.5.1 个性化推荐
  351. 12.5.2 商品推荐系统案例
  352. 12.6 本章小结
  353. 附录A Hive内置操作符与函数
  354. A.1 关系运算
  355. 1.等值比较
  356. 2.不等值比较
  357. 3.小于比较
  358. 4.小于等于比较
  359. 5.大于比较
  360. 6.大于等于比较
  361. 7.空值判断
  362. 8.非空判断
  363. 9.LIKE比较
  364. 10.Java的LIKE操作
  365. 11.REGEXP操作
  366. A.2 逻辑运算与数学运算
  367. 1.加法操作
  368. 2.减法操作
  369. 3.乘法操作
  370. 4.除法操作
  371. 5.取余操作
  372. 6.位与操作
  373. 7.位或操作
  374. 8.位异或操作
  375. 9.位取反操作
  376. A.3 Hive逻辑运算
  377. 1.逻辑与操作
  378. 2.逻辑或操作
  379. 3.逻辑非操作
  380. A.4 数值运算
  381. 1.取整函数
  382. 2.指定精度取整函数
  383. 3.向下取整函数
  384. 4.向上取整函数
  385. 5.向上取整函数
  386. 6.取随机数函数
  387. 7.自然指数函数
  388. 8.自然对数函数
  389. 9.以10为底对数函数
  390. 10.以2为底对数函数
  391. 11.对数函数
  392. 12.幂运算函数
  393. 13.幂运算函数
  394. 14.开平方函数
  395. 15.二进制函数
  396. 16.十六进制函数
  397. 17.反转十六进制函数
  398. 18.进制转换函数
  399. 19.绝对值函数
  400. 20.正取余函数
  401. 21.正弦函数
  402. 22.反正弦函数
  403. 23.余弦函数
  404. 24.反余弦函数
  405. 25.positive函数
  406. 26.negative函数
  407. A.5 日期函数
  408. 1.UNIX时间戳转日期函数
  409. 2.获取当前UNIX时间戳函数
  410. 3.日期转UNIX时间戳函数
  411. 4.指定格式日期转UNIX时间戳函数
  412. 5.日期时间转日期函数
  413. 6.日期转年函数
  414. 7.日期转月函数
  415. 8.日期转天函数
  416. 9.日期转小时函数
  417. 10.日期转分钟函数
  418. 11.日期转秒函数
  419. 12.日期转周函数
  420. 13.日期比较函数
  421. 14.日期增加函数
  422. 15.日期减少函数
  423. A.6 条件函数
  424. 1.If函数
  425. 2.非空查找函数
  426. 3.条件判断函数
  427. A.7 字符串函数
  428. 1.字符串长度函数
  429. 2.字符串反转函数
  430. 3.字符串连接函数
  431. 4.带分隔符字符串连接函数
  432. 5.字符串截取函数
  433. 6.字符串截取函数
  434. 7.字符串转大写函数
  435. 8.字符串转小写函数
  436. 9.去空格函数
  437. 10.左边去空格函数
  438. 11.右边去空格函数
  439. 12.正则表达式替换函数
  440. 13.正则表达式解析函数
  441. 14.URL解析函数
  442. 15.JSON解析函数
  443. 16.空格字符串函数
  444. 17.重复字符串函数
  445. 18.首字符ASCII函数
  446. 19.左补足函数
  447. 20.右补足函数
  448. 21.分割字符串函数
  449. 22.集合查找函数
  450. A.8 集合统计函数
  451. 1.个数统计函数
  452. 2.总和统计函数
  453. 3.平均值统计函数
  454. 4.最小值统计函数
  455. 5.最大值统计函数
  456. A.9 符合类型构建操作
  457. 1.Map类型构建
  458. 2.Struct类型构建
  459. 3.Array类型构建
  460. A.10 复杂类型访问操作
  461. 1.Array类型访问
  462. 2.Map类型访问
  463. 3.Struct类型访问
  464. A.11 复杂类型长度统计函数
  465. 1.Map类型长度函数
  466. 2.Array类型长度函数
  467. 3.类型转换函数
  468. 附录B HBase默认配置解释
  469. 附录C Hadoop三个配置文件的参数含义说明
  470. C.1 常用的端口配置
  471. 1.HDFS端口
  472. 2.MR端口
  473. 3.其他端口
  474. C.2 集群目录配置
  475. 1.核心配置属性
  476. 2.HDFS属性配置?
  477. 3.MapReduce配置属性