在我最近在谷歌实习期间了解了MapReduce解决计算机视觉问题之后,我感觉自己是一个开明的人。我一直在使用R进行文本挖掘。我想使用R进行大规模文本处理和主题建模实验。我开始阅读教程并研究其中的一些。我现在将理解每个工具:
1)R文本挖掘工具箱:用于本地(客户端)文本处理,它使用XML库
2)Hive:Hadoop interative,提供调用map / reduce的框架,并提供用于在DFS上存储文件的DFS接口。
3)RHIPE:R Hadoop集成环境
4)带有R的弹性MapReduce:一个没有自己的集群的MapReduce框架
5)使用R进行分布式文本挖掘:尝试从R-tm到R-distributed-tm进行本地到服务器端处理的无缝移动
我对上述软件包有以下疑问和疑惑
1)Hive和RHIPE以及分布式文本挖掘工具箱需要您拥有自己的集群。正确?
2)如果我只有一台计算机,那么在HIVE的情况下DFS如何工作
3)我们是否面临上述套餐重复劳动的问题?
我希望在接下来的几天内能够对上述问题有所了解
答案 0 :(得分:2)
(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只有一些额外的功能(我还没有完全完成)..当我看到我认为他们已经将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等软件包
答案 1 :(得分:0)
我不熟悉使用R应用程序的分布式文本挖掘,但是Hive可以在本地群集或单节点群集上运行。这可以在实验中或在实践中完成,但确实破坏了使用分布式文件系统进行认真工作的目的。就重复工作而言,Hive意味着在Hadoop之上是一个完整的SQL实现,所以尽管SQL和R都可以处理文本数据,但是两者都不是特定的工具,因此存在重复。具有不同的优势。