Hadoop para o conjunto de dados de números de páginas do Wikipedia

eu quero construir um Hadoop-Job que basicamente toma o wikipedia pagecount-statistic como entrada e cria uma lista como

en-Articlename: en:count de:count fr:count
Para isso, preciso dos diferentes nomes relacionados com cada língua-ou seja, Bruges (EN, fr), Brügge( de), que a MediaWikiApi query articlewise(http://en.wikipedia.org/w/api.php?action=query&titles=Bruges&prop=langlinks&lllimit=500).

A minha pergunta é encontrar a abordagem certa para resolver este problema.

a minha abordagem esboçada seria:

  • processar o número de páginas linha por linha (exemplo de linha 'de Brugge 2 48824')
  • consulta O MediaApi e escreve sth. como 'en-Articlename: process-language-key: count'
  • agregar todos os valores en-Articlename a uma linha (talvez num segundo emprego?)

agora parece pouco inteligente questionar o MediaAPI para cada linha, mas atualmente não pode colocar a minha cabeça em torno de uma solução melhor.

Achas que a abordagem actual é viável ou você pode pensar em um diferente?

numa nota: a cadeia de empregos criada será usada para medir o tempo no meu (pequeno) Hadoop-Cluster, por isso alterar a tarefa ainda está bem

Editar: Aqui está uma discussão semelhante que acabei de encontrar..

Author: MVO, 2012-10-14

1 answers

Acho que não é boa ideia consultar o MediaApi durante o processamento do lote devido a:

  • latência da rede (o seu processamento será consideravelmente mais lento)
  • um único ponto de falha (se a api ou a sua ligação à internet falhar o seu cálculo será interrompido)
  • dependência externa (é difícil repetir o cálculo e obter o mesmo resultado)
  • Questões jurídicas e possibilidade de proibição

A solução possível para o seu problema é: obter o 'dump' inteiro da Wikipédia . Cada artigo contém links para esse artigo em outras línguas em um formato predefinido, para que você possa facilmente escrever um mapa/reduzir o trabalho que coleta essa informação e constrói uma correspondência entre o nome do artigo inglês eo resto.

Então você pode usar a correspondência em um mapa / reduzir o processamento de trabalho pagecount-statistic. Se você fizer isso, você vai se tornar independente para a api do mediawiki, acelerar o seu processamento de dados e melhorar a depuração.

 2
Author: rystsov, 2012-10-15 11:47:55