Como posso executar o nutch no kernel do Linux?

4

Eu quero executar o nutch no kernel do linux, eu fiz o login como um usuário root, Eu configurei toda a configuração do arquivo de variável de ambiente e nutch. Eu criei um arquivo url.txt que contém o URL para rastrear, Quando estou tentando executar o nutch usando o seguinte comando,

bin/nutch crawl urls -dir pra

gera a seguinte exceção.

crawl started in: pra
rootUrlDir = urls
threads = 10
depth = 5
Injector: starting
Injector: crawlDb: pra/crawldb
Injector: urlDir: urls
Injector: Converting injected urls to crawl db entries.
Exception in thread "main" java.io.IOException: Failed to get the current user's information.
        at org.apache.hadoop.mapred.JobClient.getUGI(JobClient.java:717)
        at org.apache.hadoop.mapred.JobClient.configureCommandLineOptions(JobClient.java:592)
        at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:788)
        at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1142)
        at org.apache.nutch.crawl.Injector.inject(Injector.java:160)
        at org.apache.nutch.crawl.Crawl.main(Crawl.java:113)
Caused by: javax.security.auth.login.LoginException: Login failed: Cannot run program "whoami": java.io.IOException: error=12, Cannot allocate memory
        at org.apache.hadoop.security.UnixUserGroupInformation.login(UnixUserGroupInformation.java:250)
        at org.apache.hadoop.security.UnixUserGroupInformation.login(UnixUserGroupInformation.java:275)
        at org.apache.hadoop.mapred.JobClient.getUGI(JobClient.java:715)
        ... 5 more

O servidor tem espaço suficiente para executar qualquer aplicativo java. Anexei a estática ...

            total       used       free  
Mem:        524320     194632     329688 
-/+ buffers/cache:     194632     329688
Swap:      2475680          0    2475680
Total:     3000000     194632    2805368

É espaço de memória suficiente para nutch? Por favor, alguém me ajude, eu sou novo com kernel linux e nutch. Obrigado antecipadamente.

    
por prakash.panjwani 28.12.2009 / 15:18

4 respostas

2

Leia a saída:

Cannot run program "whoami": java.io.IOException: error=12, Cannot allocate memory

Parece que você não tem RAM suficiente ou nenhum arquivo de swap / partição.

    
por 28.12.2009 / 16:05
2

Chamadas para executáveis (como whoami) em Java requerem primeiro uma cópia inteira do processo Java. Você desejará diminuir seu tamanho de heap máximo (-Xmx256m) para o local em que você pode ter duas cópias na RAM ao mesmo tempo.

    
por 14.01.2010 / 15:41
1

Na instalação de 32 bits de um sistema operacional, a JVM (Java Virtual Machine) não pode manipular memória maior que 4 GB. Se você quiser usar a JVM para ter mais de 4 GB, terá que usar a versão de 64 bits da JVM, o que também significa que o sistema operacional também deve ser a versão de 64 bits. Eu presumo que é por isso que você está recebendo esse erro. Você tem 5GB de memória e esse pode ser o problema. Você deve informar ao seu aplicativo para usar apenas 75% da memória disponível ou tentar reduzir a RAM para 4 GB e verificar. Eu tive o mesmo problema na solução Zimbra Messaging, que usa o Java para a interface da Web.

    
por 16.01.2010 / 10:18
0

É possível que seu servidor tenha desativado / proc / sys / vm / overcommit_memory. Sem comprometer excessivamente, uma chamada de sistema "fork" requer que seu servidor tenha RAM suficiente ou troque por uma segunda cópia completa do processo Java. Isso pode ser muita memória RAM.

    
por 09.01.2010 / 07:21