To pytanie nie dotyczy dystrybucji słoików w całym klastrze, aby pracownicy mogli z nich korzystać.Hadoop HADOOP_CLASSPATH issues
Odnosi się do określania liczby dodatkowych bibliotek na komputerze klienta. Aby być bardziej konkretne: Próbuję uruchomić następującą komendę w celu pobrania zawartości SequenceFile:
/path/to/hadoop/script fs -text /path/in/HDFS/to/my/file
To rzuca mi ten błąd: text: java.io.IOException: WritableName can't load class: util.io.DoubleArrayWritable
Mam zapisu klasy o nazwie DoubleArrayWritable. W rzeczywistości na innym komputerze wszystko działa dobrze.
Próbowałem ustawić, aby HADOOP_CLASSPATH
zawierał słoik zawierający tę klasę, ale bez wyników. W rzeczywistości podczas pracy:
/path/to/hadoop/script classpath
Wynik nie zawiera słoika dodanego do HADOOP_CLASSPATH.
Pytanie brzmi: w jaki sposób można określić dodatkowe biblioteki podczas uruchamiania Hadoop (za dodatkową znaczeniowych innych bibliotekach niż te, które skrypt Hadoop obejmuje automatycznie w ścieżce klasy)
Niektóre więcej informacji, które mogą pomóc:
- nie mogę zmodyfikować skrypt hadoop.sh (ani żadnych powiązanych skrypty)
- nie mogę skopiować moją bibliotekę do katalogu/lib w katalogu instalacyjnym Hadoop
- W hadoop-env.sh który jest ru n od hadoop.sh jest ta linia:
export HADOOP_CLASSPATH=$HADOOP_HOME/lib
która prawdopodobnie tłumaczy, dlaczego mój HADOOP_CLASSPATH env var jest ignorowany.
tak ale skrypt Hadoop robi to: export HADOOP_CLASSPATH = $ HADOOP_HOME/lib. To przepisuje moją HADOOP_CLASSPATH – Razvan
@Razvan zobacz moją zaktualizowaną odpowiedź –
jak już powiedziałem, nie chcę ustawiać "rozproszonej" ścieżki klas. Chcę tylko ustawić ścieżkę klas na komputerze klienta – Razvan