Modifique LD_LIBRARY_PATH e CLASSPATH no nó do cluster antes de executar uma tarefa hadoop

1

Preciso definir LD_LIBRARY_PATH e CLASSPATH antes de executar um trabalho em um cluster. No LD_LIBRARY_PATH, preciso adicionar a localização de alguns frascos necessários durante a execução do trabalho. Como esses frascos estão disponíveis no meu cluster, semelhante ao CLASSPATH.

Eu tenho um cluster 3 NODE, preciso modificar esse LD_LIBRARY_PATH e CLASSPATH para todos os 3 nós de dados, de modo que os jarros disponíveis no nó do cluster sejam adicionados ao caminho de classe, para que o jar a seguir esteja disponível durante a execução da tarefa como i estou evitando copiar a distribuição do jar durante a execução do trabalho para usar todo o jar disponível disponível nos nós do cluster

Ashish Sharma
fonte

Respostas:

1

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

  • Coloque os frascos com força em seu jar de trabalho (a chamada abordagem jar-in-jar), onde cada um dos frascos de dependência é colocado em uma pasta lib do jar de trabalho principal
  • Carregue os jars no HDFS e altere a configuração do trabalho para incluí-los 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 com que o cliente faça o trabalho de carregar o jar no 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ê deseja incluir as bibliotecas .so, pode usar a opção -files (semelhante ao exemplo anterior -libjars) para obter o jobclient para carregar o .so no HDFS e configurar cada tarefa de mapa / redução para incluí-lo no java .library.path propeerty:hadoop jar myjar.jar org.MainClass -files libIOProcs.so

Chris White
fonte