本书出版后在Amazon上获得了极高的关注度,因为它是当时全球仅有的一本讲述R语言同Hadoop技术结合的权威书籍。我于当年年末拿到此书并仔细研读,在此过程中便萌发出把此书翻译为中文版本的想法。而机械工业出版社以极快的速度同我敲定此事,可见他们独到的眼光和敏锐的市场洞察力。
本书由10余位小伙伴共同翻译而成,整个翻译过程充分体现了当下互联网的合作精神。首先我在个人博客以及豆瓣同城上发布了想翻译此书的想法,并迅速得到了几十名同学的报名响应。之后我制定并发布了整套书籍的术语以及译稿的样式。在接下来的1个月中小伙伴们陆续完成翻译工作。最后由我挑选出较好的译稿,并进行后期整合以及校验工作。
当下互联网甚至整个社会都在谈论大数据概念,而大数据之所以可以为互联网企业所推崇,其中一个重要原因是提出了Hadoop技术。它使可处理的数据量不再局限于某台单机的性能,而是通过计算机集群的方式极大地提高了可处理的数据量。而R语言则是另一款算法全面、易学易用的数据统计开源语言。它使得数据分析师以及数据挖掘人员可以把精力更多地放在算法本身,而非程序语言的繁琐语法上。但是R语言较大的缺点就是它只能在单机上运行,这就使其数据处理能力受限于本机的内存。所以如何使R语言处理大数据就成了当下新的研究热点。而现阶段较好的方式就是把Hadoop同R语言结合,实现在集群上运行R语言。
本书的阐述主要围绕如何实现Hadoop与R语言的结合,主要分为4个部分。
第一部分(基础概念),包括第1~2章,主要讲解R语言以及Hadoop的计算原理以及概念。
第二部分(初级应用),包括第3~4章,主要讲解RHIPE、RHadoop以及streaming三种实现方案。
第三部分(高级实例),包括第5~6章,主要以RHadoop为技术背景,讲解多个实际应用案例。
第四部分(数据库连接),包括第7章,主要讲解在RHadoop下如何同各类数据库进行连接。
相信书中大量的实际案例以及作者的精妙阐述可以帮助各位读者把RHadoop这项技术真正应用到实际工作中。
最后我要感谢我的老婆刘慧,如果没有她,我将失去做任何事情的动力。并把此书送给我刚出生的侄女李沐瑶,愿她健康快乐成长。
封面图
目录
- 译者序
- 前言
- 审校者简介
- 致谢
- 第1章R和Hadoop入门1
- 1.1安装R2
- 1.2安装RStudio3
- 1.3R语言的功能特征3
- 1.3.1使用R程序包3
- 1.3.2执行数据操作3
- 1.3.3日渐增多的社区支持4
- 1.3.4R语言数据建模4
- 1.4Hadoop的安装5
- 1.4.1不同的Hadoop模式6
- 1.4.2Hadoop的安装步骤6
- 1.5Hadoop的特点12
- 1.5.1HDFS简介13
- 1.5.2MapReduce简介13
- 1.6HDFS和MapReduce架构14
- 1.6.1HDFS架构14
- 1.6.2MapReduce架构15
- 1.6.3通过图示了解HDFS和MapReduce架构15
- 1.7Hadoop的子项目16
- 1.8小结19
- 第2章编写Hadoop MapReduce程序20
- 2.1MapReduce基础概念20
- 2.2Hadoop MapReduce技术简介22
- 2.2.1MapReduce中包含的实体22
- 2.2.2MapReduce中的主要执行进程23
- 2.2.3MapReduce的局限25
- 2.2.4MapReduce 可以解决的问题26
- 2.2.5使用Hadoop编程时用到不同的Java概念26
- 2.3Hadoop MapReduce原理27
- 2.3.1MapReduce对象27
- 2.3.2MapReduce中实现Map阶段的执行单元数目28
- 2.3.3MapReduce中实现Reduce阶段的执行单元数目28
- 2.3.4MapReduce的数据流28
- 2.3.5深入理解HadoopMapReduce30
- 2.4编写Hadoop MapReduce示例程序32
- 2.4.1MapReduce job运行的步骤33
- 2.4.2MapReduce可解决的商业问题38
- 2.5在R环境中编写Hadoop MapReduce程序的方式39
- 2.5.1RHadoop39
- 2.5.2RHIPE40
- 2.5.3Hadoop streaming40
- 2.6小结40
- 第3章集成R和Hadoop41
- 3.1RHIPE42
- 3.1.1安装RHIPE42
- 3.1.2RHIPE架构44
- 3.1.3RHIPE实例45
- 3.1.4RHIPE参考函数48
- 3.2RHadoop51
- 3.2.1RHadoop架构51
- 3.2.2安装RHadoop52
- 3.2.3RHadoop案例53
- 3.2.4RHadoop参考函数56
- 3.3小结58
- 第4章Hadoop Streaming中使用R59
- 4.1Hadoop Streaming基础概念59
- 4.2使用R运行Hadoop streaming62
- 4.2.1MapReduce应用程序基础63
- 4.2.2如何编写MapReduce应用程序65
- 4.2.3如何运行MapReduce应用程序67
- 4.2.4如何浏览MapRecuce应用程序的输出69
- 4.2.5Hadoop MapReduce脚本的基础R函数70
- 4.2.6管理Hadoop MapReduce任务71
- 4.3R语言扩展包HadoopStreaming介绍72
- 4.3.1hsTableReader函数73
- 4.3.2hsKeyValReader函数75
- 4.3.3hasLineReader函数75
- 4.3.4运行Hadoop streaming任务78
- 4.3.5执行Hadoop Streaming任务79
- 4.4小结79
- 第5章利用R和Hadoop学习数据分析80
- 5.1数据分析项目生命周期80
- 5.1.1问题定义81
- 5.1.2设计数据需求81
- 5.1.3数据预处理81
- 5.1.4数据分析82
- 5.1.5数据可视化82
- 5.2数据分析问题83
- 5.2.1展示网页分类 83
- 5.2.2计算股市变动频率92
- 5.2.3案例研究:预测推土机售价98
- 5.3小结107
- 第6章应用机器学习做大数据分析108
- 6.1机器学习介绍108
- 6.2有监督机器学习算法109
- 6.2.1线性回归109
- 6.2.2logistic回归115
- 6.3无监督机器学习算法118
- 6.4推荐算法123
- 6.4.1在R中产生推荐商品的步骤125
- 6.4.2使用R和Hadoop产生推荐商品128
- 6.5小结131
- 第7章从各种数据库中导入与导出数据132
- 7.1文件型数据库134
- 7.1.1不同类型的文件134
- 7.1.2安装R包134
- 7.1.3将数据导入R134
- 7.1.4从R导出数据135
- 7.2MySQL135
- 7.2.1安装MySQL135
- 7.2.2安装RMySQL136
- 7.2.3列出数据表及其结构136
- 7.2.4导入数据进R136
- 7.2.5数据操纵137
- 7.3Excel137
- 7.3.1安装Excel138
- 7.3.2导入数据进R138
- 7.3.3R和Excel的数据操纵138
- 7.3.4导出数据到Excel138
- 7.4MongoDB138
- 7.4.1安装MongoDB139
- 7.4.2安装rmongodb141
- 7.4.3导入数据进R141
- 7.4.4数据操纵142
- 7.5SQLite143
- 7.5.1SQLite的特性143
- 7.5.2安装SQLite144
- 7.5.3安装RSQLite144
- 7.5.4将数据导师入R144
- 7.5.5数据操纵145
- 7.6PostgreSQL145
- 7.6.1PostgreSQL的特性145
- 7.6.2安装PostgreSQL145
- 7.6.3安装RPostgreSQL146
- 7.6.4从R导出数据146
- 7.7Hive147
- 7.7.1Hive的特性147
- 7.7.2安装Hive147
- 7.7.3安装RHive149
- 7.7.4RHive操作149
- 7.8HBase150
- 7.8.1HBase的特性150
- 7.8.2安装HBase151
- 7.8.3安装Thrift152
- 7.8.4安装RHBase153
- 7.8.5导入数据进R153
- 7.8.6数据操纵153
- 7.9小结154
- 附录参考资源155