java大作业_R Hadoop 大数据的完美匹配

当人们谈论大数据分析和Hadoop时,他们会考虑使用Pig,Hive和Impala等技术作为数据分析的核心工具。但是,如果您与数据科学家或数据分析师讨论这些工具,他们会说,当与大数据源和Hadoop一起工作时,它们的主要工具是开源统计建模语言– R. R编程语言是数据中的首选。分析师和数据科学家,因为其丰富的生态系统可满足大数据项目的基本要素-数据准备,分析和关联任务。

R和Hadoop并不是天生的朋友,但是随着Rhadoop,RHIVE和RHIPE等新颖软件包的出现,这两种看似不同的技术为大数据分析和可视化提供了互补。Hadoop是用于以经济成本存储大量数据的大数据技术,R编程语言是用于统计数据分析和可视化的数据科学工具。事实证明,R和Hadoop结合使用对于某些严肃的大数据业务分析而言是无与伦比的数据处理工具。

4bde8f7c043910e3492b279d75e0d6bd.png

大多数Hadoop用户经常提出这个问题–“将R和Hadoop集成在一起以进行大数据分析的最佳方法是什么?” 答案取决于各种因素,例如数据集的大小,技能,预算,治理限制等。本文总结了使用R和Hadoop共同执行大数据分析以实现可伸缩性,稳定性和速度的各种方法。

为什么在Hadoop上使用R?

R的分析能力+ Hadoop的存储能力和处理能力=大数据分析的理想解决方案

R是一个了不起的数据科学编程工具,可以对模型进行统计数据分析,并将分析结果转换为彩色图形。毫无疑问,R是统计学家,数据科学家,数据分析师和数据架构师最喜欢的编程工具,但是在处理大型数据集时,R不足。R编程语言的一个主要缺点是所有对象都被加载到一台机器的主存储器中。无法将大小为PB的大型数据集加载到RAM内存中。这是Hadoop与R语言集成的理想解决方案。为了适应R编程语言在内存中的单机限制,数据科学家必须将其数据分析限制为来自大型数据集的数据样本。R编程语言的这种限制成为处理大数据时的主要障碍。由于R的可伸缩性不是很高,因此核心R引擎只能处理有限数量的数据。

相反,像Hadoop这样的分布式处理框架可扩展用于大型数据集(PB范围)上的复杂操作和任务,但没有强大的统计分析功能。由于Hadoop是大数据处理的流行框架,因此将R与Hadoop集成是下一步的逻辑步骤。在Hadoop上使用R将提供高度可扩展的数据分析平台,可以根据数据集的大小对其进行扩展。将Hadoop与R集成可让数据科学家在大型数据集上并行运行R,因为R语言中的任何数据科学库都无法在大于其内存的数据集上工作。具有R和Hadoop的大数据分析可与商品硬件集群提供的成本价值回报进行垂直扩展竞争。

将R和Hadoop集成在一起的方法

使用Hadoop的数据分析师或数据科学家可能拥有用于数据处理的R包或R脚本。要将这些R脚本或R包与Hadoop一起使用,它们需要用Java编程语言或实现Hadoop MapReduce的任何其他语言重写这些R脚本。这是一个繁重的过程,并可能导致不必要的错误。为了将Hadoop与R编程语言集成,我们需要使用已经为R语言编写的软件,并且该数据存储在分布式存储Hadoop中。有许多使用R语言执行大型计算的解决方案,但是所有这些解决方案都要求在将数据分发到计算节点之前将其加载到内存中。对于大型数据集,这不是理想的解决方案。

1)RHADOOP –在工作站上安装R并连接到Hadoop中的数据

将R编程语言与Hadoop集成在一起的最常用的开源分析解决方案是RHadoop。Revolution Analytics开发的RHadoop使用户可以直接从HBase数据库子系统和HDFS文件系统中提取数据。Rhadoop软件包具有简单性和成本优势,是在Hadoop上使用R的“首选”解决方案。Rhadoop是5个不同软件包的集合,这些软件包允许Hadoop用户使用R编程语言管理和分析数据。RHadoop软件包与开源Hadoop以及流行的Hadoop发行版-Cloudera,Hortonworks和MapR兼容。

  1. rhbase – rhbase软件包使用Thrift服务器为R中的HBase提供数据库管理功能。该软件包需要安装在将运行R客户端的节点上。使用rhbase,数据工程师和数据科学家可以从R内部读取,写入和修改存储在HBase表中的数据。

  2. rhdfs –rhdfs软件包为R程序员提供了与Hadoop分布式文件系统的连接,以便他们读取,写入或修改Hadoop HDFS中存储的数据。

  3. plyrmr –该软件包支持对由Hadoop管理的大型数据集的数据处理操作。Plyrmr(MapReduce的plyr)提供了流行的软件包(如reshape2和plyr)中存在的数据操作操作。该软件包依赖Hadoop MapReduce来执行操作,但抽象了大多数MapReduce详细信息。

  4. ravro –此软件包使用户可以从本地和HDFS文件系统读取和写入Avro文件。

  5. rmr2(在Hadoop MapReduce中执行R)–使用此软件包,R程序员可以对存储在Hadoop集群中的数据进行统计分析。使用rmr2可能是将R与Hadoop集成的繁琐过程,但是许多R程序员发现使用rmr2比依赖基于Java的Hadoop映射器和简化器要容易得多。rmr2可能有点乏味,但它消除了数据移动并有助于并行化计算以处理大型数据集。

2)RHIPE –在Hadoop Map Reduce中执行R

RHIPE(“ R和Hadoop集成编程环境”)是一个R库,允许用户在R编程语言中运行Hadoop MapReduce作业。R程序员只需编写R map和R reduce函数,RHIPE库将转移它们并调用相应的Hadoop Map和Hadoop Reduce任务。RHIPE使用协议缓冲区编码方案来传输映射并减少输入。与其他并行R软件包相比,使用RHIPE的优势在于,它与Hadoop集成良好,并且使用HDFS跨机器集群提供了一种数据分发方案-提供了容错能力并优化了处理器的使用。

3)R和Hadoop流

Hadoop Streaming API允许用户使用任何可执行脚本运行Hadoop MapReduce作业,该脚本从标准输入读取数据并将数据作为映射器或化简器写入标准输出。因此,Hadoop Streaming API可以与地图中的R编程脚本一起使用或简化阶段。这种集成R,Hadoop的方法不需要任何客户端集成,因为流作业是通过Hadoop命令行启动的。所提交的MapReduce作业通过UNIX标准流和序列化进行数据转换,以确保Java投诉输入到Hadoop,而与程序员提供的输入脚本的语言无关。

4)RHIVE –在工作站上安装R并连接到Hadoop中的数据

如果您希望从R接口启动Hive查询,那么RHIVE是首选软件包,其功能包括从Apache Hive检索元数据,例如数据库名称,列名称和表名称。RHIVE通过使用R语言功能扩展HiveQL,从而为R Hadoop中存储的数据提供了丰富的R编程语言统计库和算法。RHIVE功能允许用户将R统计学习模型应用于已使用Apache Hive进行分类的Hadoop集群中存储的数据。使用RHIVE进行Hadoop R集成的优势在于,它可以并行化操作并避免数据移动,因为数据操作被下推到Hadoop中。

5)ORCH – Oracle Connector for Hadoop

ORCH可以在非Oracle Hadoop集群或任何其他Oracle大设备上使用。Mappers和Reducers用R编程语言编写,并且MapReduce作业通过高级界面从R环境中执行。借助ORCH for R Hadoop集成,R程序员不必学习像Java这样的新编程语言就可以了解诸如Hadoop Cluster硬件或软件之类的Hadoop环境的细节。ORCH连接器还允许用户在将其部署到Hadoop集群之前,通过相同的函数调用在本地测试MapReduce程序的功能。

用于使用R和Hadoop执行大数据分析的开源选项的数量正在不断扩大,但是对于简单的Hadoop MapReduce作业,R和Hadoop Streaming仍然被证明是最佳的解决方案。R和Hadoop的结合是一个必备工具包,适用于处理大数据的专业人员来创建快速的,预测性的分析,并结合了所需的性能,可伸缩性和灵活性。

大多数Hadoop用户声称使用R编程语言的优点是它详尽地列出了用于统计和数据可视化的数据科学库。但是,R语言的数据科学库本质上是非分布式的,这使得数据检索成为一件费时的事情。但是,这是R编程语言的一个固有限制,但是如果我们只是忽略它,那么R和Hadoop一起可以使大数据分析成为一种狂喜!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值