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..
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.