Cevap ... Hadoop 2.6'yı tarball'dan 64 bit CentOS 6.6'ya kurdum. Hadoop kurulumu gerçekten de önceden oluşturulmuş 64 bit yerel kütüphaneyle birlikte geldi. Yüklemem için burada:
/opt/hadoop/lib/native/libhadoop.so.1.0.0
Ve 64 bit olduğunu biliyorum:
[hadoop@VMWHADTEST01 native]$ ldd libhadoop.so.1.0.0
./libhadoop.so.1.0.0: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./libhadoop.so.1.0.0)
linux-vdso.so.1 => (0x00007fff43510000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f9be553a000)
libc.so.6 => /lib64/libc.so.6 (0x00007f9be51a5000)
/lib64/ld-linux-x86-64.so.2 (0x00007f9be5966000)
Ne yazık ki, "Bu kütüphane 32 pr 64 bit mi?"
`GLIBC_2.14' not found (required by ./libhadoop.so.1.0.0)
Böylece, ders öğrenildi. Her neyse, geri kalanlar en azından uyarıyı bastırmamı sağladı. Bu yüzden devam ettim ve diğer cevaplarda önerilen her şeyi boşuna HADOOP_OPTS ortam değişkenini kullanarak kütüphane yolunu sağlamak için yaptım. Bu yüzden kaynak koduna baktım. Hatayı oluşturan modül size ipucunu söyler ( util.NativeCodeLoader ):
15/06/18 18:59:23 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Yani, ne yaptığını görmek için buraya:
http://grepcode.com/file/repo1.maven.org/maven2/com.ning/metrics.action/0.2.6/org/apache/hadoop/util/NativeCodeLoader.java/
Ah, bazı hata ayıklama seviyesi günlüğü var - hadi ek yardım alıp almadığımızı görelim. Bu işlem $ HADOOP_CONF_DIR / log4j.properties dosyasına aşağıdaki satırı ekleyerek yapılır:
log4j.logger.org.apache.hadoop.util.NativeCodeLoader=DEBUG
Sonra stop-dfs.sh gibi orijinal uyarıyı üreten bir komut çalıştırdım ve bu hediyeyi aldım:
15/06/18 19:05:19 DEBUG util.NativeCodeLoader: Failed to load native-hadoop with error: java.lang.UnsatisfiedLinkError: /opt/hadoop/lib/native/libhadoop.so.1.0.0: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /opt/hadoop/lib/native/libhadoop.so.1.0.0)
Ve bu hata ayıklama iletisinin snippet'inde ortaya çıkıyor (önceki ldd komutunun bana söylemeye çalıştığı şeyle aynı şey:
`GLIBC_2.14' not found (required by opt/hadoop/lib/native/libhadoop.so.1.0.0)
Hangi GLIBC sürümüne sahibim? Öğrenmek için basit bir numara:
[hadoop@VMWHADTEST01 hadoop]$ ldd --version
ldd (GNU libc) 2.12
Bu yüzden işletim sistemimi 2,14 olarak güncelleyemiyorum. Tek çözüm, yerel kütüphaneleri işletim sistemimdeki kaynaklardan oluşturmak veya uyarıyı bastırmak ve şimdilik görmezden gelmektir. Şimdilik sadece can sıkıcı uyarıyı bastırmayı seçtim (ancak gelecekte kaynaklardan inşa etmeyi planlıyorum), hata ayıklama mesajını almak için kullandığımız aynı günlük seçeneklerini kullanarak satın alın, şimdi hariç, sadece HATA düzeyi yapın.
log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR
Umarım bu, diğerlerine açık kaynaklı yazılımların büyük bir faydasının, bazı basit mantıklı adımlar atarsanız bu şeyleri anlayabilmenizdir.