Bu soru, çalışanların kullanması için tüm kümedeki kavanozların dağıtımı anlamına gelmez.Hadoop HADOOP_CLASSPATH sayıları
İstemci makinede bir dizi ek kitaplığın belirtilmesiyle ilgilidir. Daha spesifik olmak gerekirse: Bir SequenceFile içeriğini almak için aşağıdaki komutu çalıştırmak çalışıyorum:
/path/to/hadoop/script fs -text /path/in/HDFS/to/my/file
Bana bu hatayı atar:
text: java.io.IOException: WritableName can't load class: util.io.DoubleArrayWritable
Ben DoubleArrayWritable denilen yazılabilir sınıf var. Aslında, başka bir bilgisayarda her şey iyi çalışıyor.
HADOOP_CLASSPATH
ayarını, bu sınıfı içeren bir kavanozu dahil etmek için hiçbir sonuç vermeden ayarlamaya çalıştım. Aslında çalıştırırken:
/path/to/hadoop/script classpath
sonuç ben HADOOP_CLASSPATH eklenen kavanoz içermez.
soru şudur:
: yardımcı olabilecekBiraz daha bilgi (Hadoop komut sınıf yolunda otomatik içeren olanlardan daha fazla anlam diğer kütüphaneler tarafından) Hadoop çalıştırırken ekstra kütüphaneleri belirtebilirim nasıl
- ben hadoop-env.sh olarak Hadoop yükleme dizininde
- altında/lib dizinine Kitaplığımı kopyalayamazsınız
- hadoop.sh komut (ne de herhangi bir ilişkili komut) değiştiremezsiniz hangi ru hadoop.sh dosyasından şu satır var:
export HADOOP_CLASSPATH=$HADOOP_HOME/lib
, muhtemelen HADOOP_CLASSPATH env varmamın neden ihmal edildiğini açıklıyor. EğerHADOOP_CLASSPATH
sonraexport HADOOP_CLASSPATH=/path/to/jar/myjar.jar:$HADOOP_CLASSPATH; \ hadoop fs -text /path/in/HDFS/to/my/file
iş yapacak ayarlamak için izin verilirse
evet ama Hadoop komut yapar: ihracat HADOOP_CLASSPATH = $ HADOOP_HOME/lib. HADOOP_CLASSPATH – Razvan
@Razvan'ımın güncellenmiş cevabımı –
'a tekrar yazdığımda, "dağıtılmış" sınıf yolunu ayarlamak istemiyorum. İstemci makinede sınıf yolunu ayarlamak istiyorum. – Razvan