使用 R 理解 R-Hive、Elastic MapReduce、RHIPE 和分布式文本挖掘

Posted

技术标签:

【中文标题】使用 R 理解 R-Hive、Elastic MapReduce、RHIPE 和分布式文本挖掘【英文标题】:Making sense of R-Hive, Elastic MapReduce, RHIPE and Distrubted Text mining with R 【发布时间】:2010-10-23 01:31:13 【问题描述】:

在我最近在 Google 实习时了解了 MapReduce 解决计算机视觉问题后,我感觉自己是一个开明的人。我已经在使用 R 进行文本挖掘了。我想将 R 用于大规模文本处理和主题建模实验。我开始阅读教程并研究其中的一些。我现在将我对每个工具的理解写下来:

1) R 文本挖掘工具箱:用于本地(客户端)文本处理,它使用 XML 库

2) Hive:Hadoop交互,提供调用map/reduce的框架,也提供DFS接口,用于在DFS上存储文件。

3) RHIPE:R Hadoop 集成环境

4) 带有 R 的 Elastic MapReduce:为没有自己的集群的用户提供的 MapReduce 框架

5) 使用 R 进行分布式文本挖掘:尝试从本地无缝移动到服务器端处理,从 R-tm 到 R-distributed-tm

我对上述软件包有以下疑问和困惑

1) Hive 和 RHIPE 以及分布式文本挖掘工具箱需要您拥有自己的集群。对吧?

2) 如果我只有一台计算机,在 HIVE 的情况下 DFS 将如何工作

3) 我们是否面临使用上述软件包的重复劳动问题?

我希望在接下来的几天内对上述问题有所了解

【问题讨论】:

【参考方案1】:

(1) Hive 和 Rhipe 不需要集群,你可以在单节点集群上运行它们。 RHipe 基本上是一个框架(在 R 语言中是一个包),它集成了 R 和 Hadoop,您可以在 Hadoop 上利用 R 的强大功能。对于使用 Rhipe,您不需要集群,您可以以任何一种方式运行,即集群模式或伪模式。即使您拥有超过 2 个节点的 Hadoop 集群,您仍然可以通过指定属性 mapered.job.tracker='local' 在本地模式下使用 Rhipe。

您可以访问我的网站(搜索)“Bangalore R 用户组”,您可以看到我是如何尝试使用 Rhipe 解决问题的,希望您能得到一个公平的想法

(2)Hive 是指 R 中的 hive 包吗?因为这个包有点误导 Hive(hadoop 数据仓库)。

R 中的 hive 包与 Rhipe 相似,只是有一些额外的功能(我还没有完全完成)。当我看到 hive 包时,我以为他们已经将 R 与 Hive 集成,但在看到功能后它不是喜欢 dat。

Hadoop 数据仓库是 HIVE,基本上是如果您对应该通过数据子集运行的某些结果子集感兴趣,您通常使用 SQL 查询来执行这些操作。 HIVE 中的查询也与 SQL 查询非常相似。 给你一个非常简单的例子:假设你有过去 10 年各种股票的 1TB 股票数据。现在您要做的第一件事是将存储在 HDFS 上,然后在其上创建一个 HIVE 表。就是这样...现在触发您想要的任何查询。您可能还想做一些复杂的计算,比如找到简单移动平均线 (SMA),在这种情况下,您可以编写 UDF(用户定义函数)。除此之外,您还可以使用UDTF(用户定义的表生成函数)

(3) 如果您有一个系统,这意味着您正在以伪模式运行 Hadoop。此外,您不必担心 Hadoop 是在伪模式还是集群模式下运行,因为 Hive 只需要安装在 NameNode 上,而不需要安装在数据节点上。完成正确配置后,hive 将负责在集群上提交作业。 与 Hive 不同,您需要在包括 NameNode 在内的所有数据节点上安装 R 和 Rhipe。但是在任何时候,如果你只想在 NameNode 中运行作业,你可以按照我上面提到的那样做。

(4) Rhipe 仅用于批处理作业的另一件事,这意味着 MR 作业将在整个数据集上运行,而 Hive 可以在数据子集上运行。

(5)我想了解您在文本挖掘中到底在做什么,您是否正在尝试使用 HMM(隐马尔可夫模型)、CRF(条件随机字段)、特征进行名称实体识别等 NLP 之王向量或 SVM(支持向量机)。 或者你简单地尝试做文档聚类、索引等 嗯,有 tm、openNLP、HMM、SVM 等软件包

【讨论】:

【参考方案2】:

我不熟悉使用 R 应用程序进行分布式文本挖掘,但 Hive 可以在本地集群或单节点集群上运行。这可以在实验或实践中完成,但确实违背了将分布式文件系统用于严肃工作的目的。就重复工作而言,Hive 旨在成为 Hadoop 之上的完整 SQL 实现,因此在 SQL 和 R 都可以处理文本数据的情况下存在重复,但由于两者都是特定工具,所以存在重复具有不同的优势。

【讨论】:

以上是关于使用 R 理解 R-Hive、Elastic MapReduce、RHIPE 和分布式文本挖掘的主要内容,如果未能解决你的问题,请参考以下文章

无法使用模式 r 打开:fopen():AWS Elastic Beanstalk

手把手教学:使用Elastic search和Kibana进行数据探索(Python语言)

R - 删除具有相同值的行和具有相同值组合的行

Elasticsearch:理解 Elastic Maps 中的 geohash 及其聚合

Elasticsearch:理解 Elastic Maps 中的 geohash 及其聚合

Elasticsearch 概念理解