《R与Hadoop大数据分析实战》一2.5 在R环境中编写Hadoop MapReduce程序的方式

2.5 在R环境中编写Hadoop MapReduce程序的方式

我们知道对将R工具用于分析的统计学家、网络分析师以及产品经理来说,用MapReduce进行Hadoop大数据处理是一件非常重要的事,因为补充MapReduce的编程知识对于用Hadoop将分析整合到MapReduce来说是必要的。并且,我们知道R是一个一直以来普及程度逐步提升的工具;为了整合R,有许多程序包和函数库一直在改进。因此为了研发基于R和Hadoop计算能力运行的MapReduce算法程序,我们需要R和Hadoop的中间软件。RHadoop、RHIPE以及Hadoop streaming是帮助在R中开发和执行HadoopMapReduce的中间接口软件。在最后一部分,我们将会讨论RHadoop、RHIPE并且介绍Hadoop streaming,并且直到最后一章节为止,我们将用这些程序包开发MapReduce。

2.5.1 RHadoop

Rhadoop是一个的很棒的R开源软件框架,用于通过R函数用Hadoop平台执行数据分析。Revolution Analytics研发了Rhadoop,它是基于开源R项目用于统计计算的软件和服务的主要商业供应商。RHadoop项目有3个R程序包:rhdfs、rmr以及rhbase。所有的这些程序包的应用和测试是在Cloudera Hadoop分配的CDH3、CDH4以及R 2.15.0上执行的。并且,这些是用Revolution Analytics分配的R4.3版本、5.0版本以及6.0版本测试的。
这3个不同的R程序包是在Hadoop的两个主要功能HDFS以及MapReduce上设计而成的:
rhdfs:这是一个用于向R提供所有Hadoop HDFS接口的R程序包。所有分配的文件可以用R函数进行管理。
rmr:这是一个用于向R提供所有Hadoop MapReduce开发接口的R程序包。在这个程序包的帮助下,研发Map执行单元和Reduce执行单元变得很容易。
rhbase:这是一个通过R用于在HBase分布式数据库里处理数据的R程序包。

2.5.2 RHIPE

R和Hadoop综合程序设计环境(RHIPE)是一项免费、开源的项目。RHIPE广泛用于大数据的分析和D&R分析。D&R分析用于将大型数据分类,同时在分布式的网络中并行处理数据,产生中间结果,最后将中间所有的输出数据组成一组。RHIPE在Hadoop平台上进行D&R复杂的大数据分析。RHIPE是由SaptarshiJoy Guha(Mozilla公司的数据分析员)和她的团队根据她在普渡大学统计学的博士论文开发出来的。

2.5.3 Hadoop streaming

Hadoop streaming能实现Hadoop分配。你可以像Map执行单元或是Reduce执行单元一样根据任何可执行的脚本来开发和运行一个MapReduce作业。R、Python、Ruby、Bash、Perl等软件均支持这项工作。我们使用R语言执行bash脚本。
同时,一种叫HadoopStreaming的R程序包被研发出来,用于在R脚本的帮助下,在Hadoop集群上进行数据分析,这是R和Hadoop streaming进行数据传输的接口。另外,MapReduce任务可以在没有Hadoop的情况下运行。David Rosenberg开发了这个程序包,他是SenseNetworks的首席科学家。他在机器学习和数据建模方面是专家。

时间: 2024-11-16 09:37:42

《R与Hadoop大数据分析实战》一2.5 在R环境中编写Hadoop MapReduce程序的方式的相关文章

《Spark与Hadoop大数据分析》一一1.4 实际环境中的用例

1.4 实际环境中的用例 让我们来看看大数据分析用例的不同类型.总体而言,大数据分析用例可以分为以下 5 类:客户分析:数据驱动的客户分析对于深化客户关系和提高收入很有必要.运营分析:性能和高质量服务是维持客户的关键,从制造业到健康服务业,任何行业都是如此.数据驱动的产品和服务:与不断增长的业务需求相匹配的新产品和服务.企业数据仓库(Enterprise Data Warehouse,EDW)优化:早期的数据仓库架构至今已经有 20 年历史了.企业需要让 EDW 架构实现现代化,以处理海量数据.

《R与Hadoop大数据分析实战》一导读

前 言 组织获得的数据量每一天都在成倍增加.现在组织可以存储大量信息在低成本平台上,例如Hadoop. 如今这些组织面临的难题是如何处理这些数据以及如何从这些数据中获取关键的见解.于是R应运而生.R是一个令人惊讶的工具,它是一个在数据中能够运行先进统计模型的单元,它将原始模型翻译成丰富多彩的图形和可视化视图,而且它有很多和数据科学相关的功能. 然而,R的一个主要缺点是它的可扩展性较差.R的核心技术引擎可以加工和处理非常有限的数据量.正因为在大数据处理中Hadoop十分流行,所以为了可扩展性,下一

《R与Hadoop大数据分析实战》一第2章 编写Hadoop MapReduce程序

第2章 编写Hadoop MapReduce程序 在第1章中,我们学习了如何搭建R和Hadoop开发环境.既然我们对大数据分析感兴趣,接下来就学习如何使用Hadoop MapReduce进行大数据处理.在本章中,我们要讨论MapReduce的基础概念,为何它是不可或缺的,以及如何在Apache Hadoop上进行MapReduce编程等内容.本章节将会涉及如下内容:MapReduce基础概念Hadoop MapReduce技术Hadoop MapReduce原理编写Hadoop MapReduc

《R与Hadoop大数据分析实战》一1.1 安装R

1.1 安装R 可以通过访问R的官方网站下载相应的版本.这里提供了对应三种不同操作系统的下载步骤,包括在Windows.Linux和Mac上安装R.下载最新版本的R,其中包括所有最新的补丁和错误解决方案.对于Windows操作系统,请执行以下步骤: 访问www.r-project.org. 点击CRAN,选择CRAN镜像(CRAN mirror),并选择你的Windows操作系统(捆绑到Linux:Hadoop通常在Linux环境下运行). 从镜像中下载最新的R版本. 执行下载的.exe程序,安

《R与Hadoop大数据分析实战》一2.1 MapReduce基础概念

2.1 MapReduce基础概念 如果没有使用过集群或信息传递接口(Message Passing Interface,MPI),那么理解MapReduce基础概念将不会是一件容易的事.更多的实际应用是数据不存放在一个硬盘中而是存放于分布式文件系统中(Distributed File System,DFS),或存放于由Hadoop技术实现的分布式软件中.MapReduce同时也是一个编程模型,它以一种分布式方法进行工作.其中包括信息传递接口(MPI)和同步并行计算模型(Bulk Synchro

《R与Hadoop大数据分析实战》一1.4 Hadoop的安装

1.4 Hadoop的安装 现在假定你已经了解了R语言,知道它是什么,如何安装它,它的主要特点是什么,以及为什么要使用它.现在,我们需要知道R的局限性(这样能更好地引入对Hadoop的介绍).在处理数据前,R需要将数据加载到随机存取存储器(RAM).因此,数据应该小于现有机器内存.对于数据比机器内存还要大的,我们将其看做大数据(由于大数据还有许多其他定义,这只适用于我们现在所说的例子). 为了避免这类大数据问题,我们需要扩展硬件配置,但这只是一个临时解决方案.为了解决这一问题,我们需要使用一个H

《R与Hadoop大数据分析实战》一2.4 编写Hadoop MapReduce示例程序

2.4 编写Hadoop MapReduce示例程序 现在要通过一个很简单且普通的单词统计(word count)来学习MapReduce.该例子的目标是统计每个单词在文章中出现的次数.这些文章作为MapReduce的输入文件. 在该例中,已经准备了一些文本文件,我们希望计算所有单词在这些文件中出现的频率.我们通过Hadoop MapReduce来进行设计. 本节中,将使用旧版API接口学习Hadoop MapReduce编程.假设读者已经配置了Hadoop的环境变量(请参考第1章的内容).同时

《R与Hadoop大数据分析实战》一2.3 Hadoop MapReduce原理

2.3 Hadoop MapReduce原理 为了更好地理解MapReduce的工作原理,我们将会: 学习MapReduce对象. MapReduce中实现Map阶段的执行单元数目. MapReduce中实现Reduce阶段的执行单元数目. 理解MapReduce的数据流. 深入理解Hadoop MapReduce. 2.3.1 MapReduce对象 由Hadoop的MapReduce技术可以引申出如下3个主要对象: Mapper:它主要用于实现MapReduce的Map阶段的操作.该对象在M

《R与Hadoop大数据分析实战》一1.5 Hadoop的特点

1.5 Hadoop的特点 Hadoop是围绕两个核心概念专门设计的:HDFS和MapReduce.这两者都与分布式计算相关.MapReduce被认为是Hadoop的核心并对分布式数据执行并行处理.Hadoop的特点如下:HDFSMapReduce 1.5.1 HDFS简介 HDFS是Hadoop自带的机架感知文件系统,这是Hadoop中的一个基于UNIX的数据存储层.HDFS起源于Google文件系统概念.Hadoop的一个重要特征是数据分区和通过许多(成千的)主机的计算以及以并行.接近它们的