Modifique LD_LIBRARY_PATH e CLASSPATH no nó do cluster antes de executar um trabalho de hadoop

1

Eu preciso definir LD_LIBRARY_PATH e CLASSPATH antes de executar um trabalho em um cluster. Em LD_LIBRARY_PATH eu preciso adicionar a localização de alguns jars que são necessários durante a execução do trabalho, como esses jars estão disponíveis no meu cluster, semelhante ao CLASSPATH.

Eu tenho um cluster de 3 NODE, preciso modificar este LD_LIBRARY_PATH e CLASSPATH para todos os 3 nós de dados de forma que os jars disponíveis no meu nó de cluster sejam adicionados ao caminho de classe, para que o seguinte jar esteja disponível durante a execução do trabalho como eu estou evitando copiar distribuição jar durante a execução do trabalho para usar todo o jar disponível pronto em nós do cluster

    
por Ashish Sharma 30.11.2012 / 18:24

1 resposta

1

Para esclarecer alguns pontos da sua pergunta. Se você precisar adicionar jars ao classpath, poderá fazer isso de várias maneiras:

  • Dure os potes no frasco do seu trabalho (a chamada abordagem jar-in-jar), onde cada um dos jarros de dependência é colocado em uma pasta lib do jar do job principal
  • Faça o upload dos jars para o HDFS e altere sua configuração de trabalho para incluir esses jars no caminho de classe no mapa / reduzir o tempo de execução ( DistributedCache.addFileToClassPath(new Path("hdfs://namenode:8020/myapp/mylib.jar"), job); )
  • Como acima, mas faça o cliente do trabalho fazer o trabalho de fazer upload do jar para o HDFS e configurar o cache distribuído (supondo que você esteja usando o ToolRunner.run () para iniciar seu trabalho): hadoop jar myjar.jar org.MainClass -libjars dep1.jar,dep2.jar

LD_LIBRARY_PATH é usado para bibliotecas compartilhadas nativas (código C compilado). Se você quiser incluir as bibliotecas .so, pode usar a opção -files (semelhante ao exemplo anterior de libjars) para fazer com que o jobclient carregue o .so para o HDFS e configure cada tarefa de mapeamento / redução para incluí-lo no java .library.path propeerty: hadoop jar myjar.jar org.MainClass -files libIOProcs.so

    
por 01.12.2012 / 01:45