Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wikipedia pagecount数据集的Hadoop_Hadoop_Mapreduce_Wikipedia_Concept_Wikimedia - Fatal编程技术网

Wikipedia pagecount数据集的Hadoop

Wikipedia pagecount数据集的Hadoop,hadoop,mapreduce,wikipedia,concept,wikimedia,Hadoop,Mapreduce,Wikipedia,Concept,Wikimedia,我想构建一个Hadoop作业,它基本上以wikipedia作为输入,并创建一个类似 en-Articlename: en:count de:count fr:count 为此,我需要与每种语言相关的不同文章名,即Bruges(en,fr),Brügge(de),MediaWikiApi查询articlewise(http://en.wikipedia.org/w/api.php?action=query&titles=Bruges&prop=langlinks&lllimit=500) en-

我想构建一个Hadoop作业,它基本上以wikipedia作为输入,并创建一个类似

en-Articlename: en:count de:count fr:count
为此,我需要与每种语言相关的不同文章名,即Bruges(en,fr),Brügge(de),MediaWikiApi查询articlewise(http://en.wikipedia.org/w/api.php?action=query&titles=Bruges&prop=langlinks&lllimit=500)

en-Articlename: en:count de:count fr:count
我的问题是找到解决这个问题的正确方法

en-Articlename: en:count de:count fr:count
我的大致做法是:

en-Articlename: en:count de:count fr:count
  • 逐行处理pagecount文件(行示例“de Brugge 2 48824”)
  • 查询MediaApi并编写类似“en-Articlename:process language key:count”的内容
  • 将所有en Articlename值聚合到一行(可能在第二个作业中?)
现在,查询每一行的MediaAPI似乎有点不方便,但目前还无法找到更好的解决方案

en-Articlename: en:count de:count fr:count
你认为目前的方法可行吗?或者你能想出一个不同的方法吗

en-Articlename: en:count de:count fr:count
附带说明:创建的作业链将用于在我的(小型)Hadoop集群上进行一些时间测量,因此更改任务仍然可以

en-Articlename: en:count de:count fr:count
编辑:
是我刚刚发现的一个非常类似的讨论。

我认为在批处理过程中查询MediaApi不是一个好主意,因为:

en-Articlename: en:count de:count fr:count
  • 网络延迟(您的处理速度将大大降低)
  • 单点故障(如果api或internet连接中断,您的计算将中止)
  • 外部依赖性(很难重复计算并得到相同的结果)
  • 法律问题和禁止的可能性
解决您的问题的可能方法是下载整个。每篇文章都包含以预定义格式以其他语言指向该文章的链接,因此您可以轻松编写一个map/reduce作业来收集这些信息,并在英文文章名和其他文章名之间建立对应关系

en-Articlename: en:count de:count fr:count

然后,您可以在map/reduce作业处理页面计数统计中使用对应关系。如果这样做,您将独立于mediawiki的api,加快数据处理并改进调试。

您可以使用一个mediawiki api查询!谢谢,很高兴知道!但整个方法会是“Hadoop式”的吗?
en-Articlename: en:count de:count fr:count