Hadoop คำเตือน“ ไม่สามารถโหลดไลบรารี native-hadoop สำหรับแพลตฟอร์มของคุณ”


269

ฉันกำลังกำหนดค่า Hadoop บนเซิร์ฟเวอร์ที่ใช้CentOS เมื่อฉันเรียกใช้start-dfs.shหรือstop-dfs.shฉันได้รับข้อผิดพลาดต่อไปนี้:

WARN util.NativeCodeLoader: ไม่สามารถโหลดไลบรารี native-hadoop สำหรับแพลตฟอร์มของคุณ ... โดยใช้คลาส builtin-java ในกรณีที่เกี่ยวข้อง

ฉันใช้Hadoop 2.2.0

การค้นหาออนไลน์นำมาสู่ลิงก์นี้: http://balanceandbreath.blogspot.ca/2013/01/utilnativecodeloader-unable-to-load.html

อย่างไรก็ตามเนื้อหาของ/native/ไดเรกทอรีบน hadoop 2.x ดูเหมือนจะแตกต่างกันดังนั้นฉันไม่แน่ใจว่าต้องทำอย่างไร

ฉันได้เพิ่มตัวแปรสภาพแวดล้อมทั้งสองนี้ในhadoop-env.sh:

ส่งออก HADOOP_OPTS = "$ HADOOP_OPTS -Djava.library.path = / usr / local / hadoop / lib /"

ส่งออก HADOOP_COMMON_LIB_NATIVE_DIR = "/ usr / local / hadoop / lib / native /"

ความคิดใด ๆ


3
สำหรับความสามารถในการค้นหา: ปัญหานี้ใช้อย่างน้อยกับ Hadoop 2.4.0, Hadoop 2.4.1 และรุ่นอื่น ๆ
Greg Dubicki

เอกสารสำหรับวิธีการใช้ไลบรารี่ดั้งเดิมได้
James Moore

คำตอบ:


227

ฉันคิดว่าคุณกำลังใช้ Hadoop บน CentOS 64 บิต เหตุผลที่คุณเห็นคำเตือนนั้นก็คือห้องสมุด Hadoop ดั้งเดิม$HADOOP_HOME/lib/native/libhadoop.so.1.0.0นั้นถูกรวบรวมไว้ที่ 32 บิต

อย่างไรก็ตามมันเป็นเพียงคำเตือนและจะไม่ส่งผลกระทบต่อฟังก์ชั่นของ Hadoop

นี่คือวิธีถ้าคุณต้องการกำจัดคำเตือนนี้ดาวน์โหลดซอร์สโค้ดของ Hadoop และคอมไพล์ใหม่libhadoop.so.1.0.0ในระบบ 64 บิตจากนั้นแทนที่ 32 บิตหนึ่ง

ขั้นตอนเกี่ยวกับวิธีการคอมไพล์ซอร์สโค้ดใหม่รวมไว้ที่นี่สำหรับ Ubuntu:

โชคดี.


7
ใช้งานไม่ได้สำหรับฉัน ให้ฉันเหมือนกันไม่สามารถโหลดไลบรารี่ native-hadoop สำหรับข้อผิดพลาดแพลตฟอร์มของคุณ
Akshay Hazari

7
แม้ว่าสิ่งนี้จะไม่ได้ผล แต่ก็ยังมีประโยชน์ ดังนั้นสิ่งนี้จะส่งผลกระทบต่อประสิทธิภาพหรือไม่?
WattsInABox

1
ฉันใช้ hadoop 2.5.0 tar เดียวกันบน Centos 7 และ Centos 6.5 ทั้งสองเป็นระบบปฏิบัติการ 64 บิต ไม่มีคำเตือนบน Centos7 แต่ Centos 6.5 ให้คำเตือนนี้กับฉันทำไม?
sandip divekar

ขอบคุณ ฉันไม่ได้ตระหนักว่ามันเป็นคำเตือน ที่จริงแล้วพูดว่า "เริ่มต้น namenode" และประโยคสุดท้ายคือ "ไม่สามารถโหลด native-hadoop .. " ซึ่งทำให้เกิดความกลัว
Kaushik Lele

โปรดทราบว่าคุณไม่จำเป็นต้องรวบรวม Hadoop ทั้งหมดตามคำแนะนำที่แนะนำ - hadoop-common-project/hadoop-commonและhadoop-hdfs-project/hadoop-hdfsก็เพียงพอแล้ว
Greg Dubicki

152

เพียงแค่ต่อท้ายคำพื้นเมืองที่คุณHADOOP_OPTSเช่นนี้

export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=$HADOOP_HOME/lib/native"

PS: ขอบคุณเซียร์รีน


สิ่งนี้ทำเพื่อฉันด้วย บน Ubuntu ที่มี Hadoop 2.6, เส้นทางคือ
/home/user/hadoop-2.6.0/lib/native

25
ส่งออก HADOOP_OPTS = "- Djava.library.path = $ HADOOP_HOME / lib / native"
Searene

1
ฉันคิดว่าการแก้ปัญหาทั้งสองเหมือนกัน จากเอกสาร doc , java.library.pathเป็นรายการพา ธ ที่จะค้นหาเมื่อโหลดไลบรารี ดังนั้นคุณสามารถส่งออกLD_LIBRARY_PATHหรือใช้ตัวเลือก-Dในบรรทัดคำสั่ง java ในบรรทัดคำสั่ง java และ-D <property> = valueอนุญาตให้เราตั้งค่าคุณสมบัติระบบ
Hoai-Thu Vuong

54

คำตอบขึ้นอยู่กับ ... ฉันเพิ่งติดตั้ง Hadoop 2.6 จาก tarball บน CentOS 64 บิต 64 การติดตั้ง Hadoop นั้นมาพร้อมกับไลบรารี่ 64 บิตที่สร้างไว้ล่วงหน้า สำหรับการติดตั้งของฉันมันอยู่ที่นี่:

/opt/hadoop/lib/native/libhadoop.so.1.0.0

และฉันรู้ว่ามันเป็น 64- บิต:

[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)

แต่น่าเสียดายที่ฉันมองข้ามคำตอบอย่างโง่ ๆ ทันทีที่จ้องมองฉันในขณะที่ฉันกำลังมุ่งเน้นไปที่ "ห้องสมุดนี้ 32 บิต 64 บิตหรือไม่":

`GLIBC_2.14' not found (required by ./libhadoop.so.1.0.0)

บทเรียนได้เรียนรู้ อย่างไรก็ตามที่เหลือก็ทำให้ฉันสามารถที่จะระงับคำเตือนได้ ดังนั้นฉันจึงดำเนินการต่อและทำทุกอย่างที่แนะนำในคำตอบอื่น ๆ เพื่อให้เส้นทางไลบรารีโดยใช้ตัวแปรสภาพแวดล้อม HADOOP_OPTS ไม่มีประโยชน์ ดังนั้นฉันจึงดูซอร์สโค้ด โมดูลที่สร้างข้อผิดพลาดจะบอกคุณคำแนะนำ ( 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

ดังนั้นออกไปที่นี่เพื่อดูว่าทำอะไร:

http://grepcode.com/file/repo1.maven.org/maven2/com.ning/metrics.action/0.2.6/org/apache/hadoop/util/NativeCodeLoader.java/

อ่ามีการบันทึกระดับดีบัก - ลองเปิดดูว่าเราได้รับความช่วยเหลือเพิ่มเติมไหม สิ่งนี้ทำได้โดยการเพิ่มบรรทัดต่อไปนี้ลงในไฟล์ $ HADOOP_CONF_DIR / log4j.properties:

log4j.logger.org.apache.hadoop.util.NativeCodeLoader=DEBUG

จากนั้นฉันก็รันคำสั่งที่สร้างคำเตือนดั้งเดิมเช่น stop-dfs.sh และได้รับสิ่งที่ดี:

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)

และคำตอบนั้นถูกเปิดเผยในตัวอย่างของข้อความดีบั๊กนี้ (เช่นเดียวกับที่คำสั่ง ldd ก่อนหน้านี้ 'พยายาม' เพื่อบอกฉัน:

`GLIBC_2.14' not found (required by opt/hadoop/lib/native/libhadoop.so.1.0.0)

ฉันมี GLIBC รุ่นใด นี่คือเคล็ดลับง่ายๆในการค้นหา:

[hadoop@VMWHADTEST01 hadoop]$ ldd --version
ldd (GNU libc) 2.12

ดังนั้นไม่สามารถอัปเดตระบบปฏิบัติการเป็น 2.14 ได้ ทางออกเดียวคือการสร้างไลบรารี่เนทีฟจากแหล่งต่าง ๆ บนระบบปฏิบัติการของฉันหรือระงับคำเตือนและไม่สนใจมันในตอนนี้ ฉันเลือกที่จะระงับการเตือนที่น่ารำคาญในตอนนี้ (แต่วางแผนที่จะสร้างจากแหล่งที่มาในอนาคต) ซื้อโดยใช้ตัวเลือกการบันทึกเดียวกันกับที่เราใช้เพื่อรับข้อความดีบั๊กยกเว้นตอนนี้เพียงแค่ทำให้ระดับข้อผิดพลาด

log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR

ฉันหวังว่าสิ่งนี้จะช่วยให้ผู้อื่นเห็นว่าประโยชน์ที่ยิ่งใหญ่ของซอฟต์แวร์โอเพนซอร์ซคือคุณสามารถเข้าใจสิ่งนี้ได้หากคุณทำตามขั้นตอนง่ายๆ


4
ขอบคุณมากครับสำหรับคำตอบที่ละเอียดอย่างนี้ ฉันได้รับคำตอบและเรียนรู้สิ่งที่มีค่า (สักครู่) ในกระบวนการ
dogwynn

26

ฉันมีปัญหาเดียวกัน มันแก้ไขได้โดยการเพิ่มบรรทัดต่อไปนี้ใน.bashrc:

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

5
ฉันต้องเพิ่ม "/ native" ในค่า HADOOP_OPTS
Ala 'Alnajjar

21

ในกรณีของฉันหลังจากที่ฉันสร้าง hadoop บนระบบปฏิบัติการ Linux 64 บิตของฉันฉันได้เปลี่ยนhadoop/libไลบรารี่ดั้งเดิม ยังคงมีปัญหาอยู่ แล้วผมก็คิดออกชี้ Hadoop เพื่อไม่ให้hadoop/lib hadoop/lib/nativeดังนั้นฉันเพิ่งย้ายเนื้อหาทั้งหมดจากไลบรารีดั้งเดิมไปที่ระดับบนสุด และคำเตือนก็หายไป


ฉันเพิ่งลองทำทุกอย่างในเน็ต ฉันรู้สึกเหนื่อยและเพิ่งลบไฟล์ทั้งหมดในโฟลเดอร์ lib นั่นคือไฟล์ที่รวบรวมโดยใช้ลิงก์ที่ให้ไว้ในคำตอบข้างต้น ในที่สุดฉันก็ไม่รู้ว่าทำไมแม้จะมี downvote ที่คุณได้รับฉันพยายามทำตามคำแนะนำของคุณและมันก็ทำงานหลังจากการต่อสู้ที่ยิ่งใหญ่ที่ฉันวางไว้หนึ่งวันหลังทั้งหมดนี้มันไม่สำคัญว่าฉันจะเปลี่ยนตำแหน่งห้องสมุดท้องถิ่นใน. bashrc หรือ hadoop-env.sh ขอบคุณตัน
Akshay Hazari

ฉันเหนื่อยและเพิ่งเทไฟล์โฟลเดอร์เนทีฟทั้งหมดในโฟลเดอร์ lib นั่นคือไฟล์ที่คอมไพล์โดยใช้ลิงก์ที่ให้ไว้ในคำตอบข้างต้น (โฟลเดอร์เนทีฟใน hadoop-2.4.0-src.tar.gz ใหม่)
Akshay Hazari

15

สิ่งนี้จะใช้งานได้:

export LD_LIBRARY_PATH=/usr/lib/hadoop/lib/native

1
ขอบคุณ หากคุณแทนที่ LD_LIBRARY_PATH เพื่อใช้ tomcat apr ให้ต่อท้าย native hadop เป็น `export LD_LIBRARY_PATH = $ LD_LIBRARY_PATH: / usr / lib / hadoop / lib / native
Eric

นี่ใช้งานได้กับฉันเท่านั้น (ลองคำตอบอื่น ๆ ทั้งหมด)
sailfish009

13

หลังจากการวิจัยอย่างต่อเนื่องตามที่แนะนำโดย KotiI ได้แก้ไขปัญหาแล้ว

hduser@ubuntu:~$ cd /usr/local/hadoop

hduser@ubuntu:/usr/local/hadoop$ ls

bin  include  libexec      logs        README.txt  share
etc  lib      LICENSE.txt  NOTICE.txt  sbin

hduser@ubuntu:/usr/local/hadoop$ cd lib

hduser@ubuntu:/usr/local/hadoop/lib$ ls
native

hduser@ubuntu:/usr/local/hadoop/lib$ cd native/

hduser@ubuntu:/usr/local/hadoop/lib/native$ ls

libhadoop.a       libhadoop.so        libhadooputils.a  libhdfs.so
libhadooppipes.a  libhadoop.so.1.0.0  libhdfs.a         libhdfs.so.0.0.0

hduser@ubuntu:/usr/local/hadoop/lib/native$ sudo mv * ../

ไชโย


11

สำหรับผู้ที่อยู่บน OSX ที่ติดตั้ง Hadoop ผ่าน Homebrew ให้ทำตามขั้นตอนเหล่านี้เพื่อแทนที่พา ธ และรุ่น Hadoop ตามความเหมาะสม

wget http://www.eu.apache.org/dist/hadoop/common/hadoop-2.7.1/hadoop-2.7.1-src.tar.gz
tar xvf hadoop-2.7.1-src.tar.gz
cd hadoop-2.7.1-src
mvn package -Pdist,native -DskipTests -Dtar
mv lib /usr/local/Cellar/hadoop/2.7.1/

จากนั้นอัปเดต hadoop-env.sh ด้วย

export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true -Djava.security.krb5.realm= -Djava.security.krb5.kdc= -Djava.library.path=/usr/local/Cellar/hadoop/2.7.1/lib/native"

ขอบคุณ Philip วิธีนี้ใช้ได้ผลสมบูรณ์แบบ ในกรณีของฉันสิ่งที่ฉันต้องการคือตัวเลือก Djava.library.path นั่นคือสิ่งที่ฉันกำลังมองหา ขอบคุณ !!!
arcee123

ขอบคุณมากฉันมี bzip2: false, openssl: บิลด์เท็จไม่สนับสนุน openssl คนอื่นมีเส้นทางที่ปรากฏขึ้น ข้อเสนอแนะใด ๆ
ggorantl

11
export JAVA_HOME=/home/hadoop/software/java/jdk1.7.0_80
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_COMMON_LIB_NATIVE_DIR"

8

@zhutoulala - FWIW ลิงก์ของคุณใช้ได้กับฉันด้วย Hadoop 2.4.0 โดยมีข้อยกเว้นประการหนึ่งฉันต้องบอกให้ Maven ไม่สร้าง javadocs ฉันใช้แพทช์ในลิงค์แรกเป็น 2.4.0 และใช้งานได้ดี นี่คือคำสั่ง maven ที่ฉันต้องออก

mvn package -Dmaven.javadoc.skip=true -Pdist,native -DskipTests -Dtar

หลังจากสร้างสิ่งนี้และย้ายห้องสมุดอย่าลืมอัพเดท hadoop-env.sh :)

คิดว่านี่อาจช่วยคนที่วิ่งเข้าไปในสิ่งกีดขวางบนถนนเดียวกันกับฉัน


5

ย้ายไฟล์ไลบรารีดั้งเดิมที่รวบรวมไว้ไปยัง$HADOOP_HOME/libโฟลเดอร์

จากนั้นตั้งค่าตัวแปรสภาพแวดล้อมของคุณโดยแก้ไข.bashrcไฟล์

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib  
export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=$HADOOP_HOME/lib"

ตรวจสอบให้แน่ใจว่าไฟล์ไลบรารีเนทีฟที่คอมไพล์อยู่ใน$HADOOP_HOME/libโฟลเดอร์

มันควรจะทำงาน


2
export HADOOP_HOME=/home/hadoop/hadoop-2.4.1  
export PATH=$HADOOP_HOME/bin:$PATH  
export HADOOP_PREFIX=$HADOOP_HOME  
export HADOOP_COMMON_HOME=$HADOOP_PREFIX  
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_PREFIX/lib/native  
export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop  
export HADOOP_HDFS_HOME=$HADOOP_PREFIX  
export HADOOP_MAPRED_HOME=$HADOOP_PREFIX  
export HADOOP_YARN_HOME=$HADOOP_PREFIX  
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH

ใช่คุณควรคอมไพล์ 64 บิต lib / native ผ่านทรัพยากร hadoop
KunBetter

2

บรรทัดนี้ตรงนี้:

export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH

จากคำตอบของ KunBetter ทำงานให้ฉัน เพียงแค่ต่อท้ายไฟล์. bashrc และโหลดเนื้อหา. bashrc อีกครั้ง

$ source ~/.bashrc

ฉันใช้รุ่น hadoop-2.6.0 ในระบบท้องถิ่นของฉัน ฉันกำลังเผชิญกับปัญหาเดียวกัน จากนั้นฉันดาวน์โหลด hadoop-2.7.1-src และสร้างไบนารี่และไลบรารี่เนทีฟและแทนที่ไลบรารี่ดั้งเดิม hadoop-2.6.0 ด้วยภาษาพื้นเมืองที่เพิ่งสร้างใหม่ แต่ถึงกระนั้นฉันก็ได้รับข้อผิดพลาดเดียวกัน จากนั้นฉันexport JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATHและมันใช้งานได้สำหรับฉัน
ParagFlume

1

บรรทัดนี้ตรงนี้:

export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH

จากคำตอบของ KunBetter คือเงินอยู่ที่ไหน


ในกรณีของฉันฉันต้องการทั้ง: export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH และ export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native:$LD_LIBRARY_PATH
borice

1

ฉันมีปัญหาเดียวกันกับ JDK6 ฉันเปลี่ยน JDK เป็น JDK8 ปัญหาได้รับการแก้ไข ลองใช้ JDK8 !!!


1

นอกเหนือจาก @zhutoulala คำตอบที่ยอมรับแล้วนี่คือการอัปเดตเพื่อให้สามารถใช้งานได้กับเวอร์ชันเสถียรล่าสุดจนถึงปัจจุบัน (2.8) บนแพลตฟอร์ม ARMHF (รุ่น Raspberry Pi 3 B) ก่อนอื่นฉันสามารถยืนยันได้ว่าคุณต้องคอมไพล์ไลบรารี่ดั้งเดิมเป็น ARM 64 บิตคำตอบอื่น ๆ ที่นี่ขึ้นอยู่กับการตั้งค่าตัวแปรสภาพแวดล้อมบางอย่างจะไม่ทำงาน ตามที่ระบุในเอกสารประกอบ Hadoop ไลบรารีดั้งเดิมที่สร้างไว้ล่วงหน้าคือ 32 บิต

ขั้นตอนระดับสูงในลิงก์กำปั้น ( http://www.ercoppa.org/posts/how-to-compile-apache-hadoop-on-ubuntu-linux.htmlลิงก์ถูกต้อง) ใน URL นี้http://www.instructables.com/id/Native-Hadoop-260-Build-on-Pi/คุณจะได้รับรายละเอียดเพิ่มเติมเฉพาะกับ Raspberry Pi แต่ไม่ใช่สำหรับ Hadoop เวอร์ชัน 2.8

นี่คือข้อบ่งชี้ของฉันเท Hadoop 2.8:

  • ยังไม่มีแพ็คเกจ protobuf สำหรับ Raspbian ล่าสุดดังนั้นคุณต้องรวบรวมด้วยตัวคุณเองและเวอร์ชั่นจะต้องเป็น protobuf 2.5 ( https://protobuf.googlecode.com/files/protobuf-2.5.0.tar.gz )
  • วิธีการแก้ไขไฟล์ CMake ต้องมีการเปลี่ยนแปลง ยิ่งกว่านั้นไฟล์ที่จะแก้ไขไม่เหมือนกัน น่าเสียดายที่ไม่มีแพทช์ที่ยอมรับบน JIRA เฉพาะสำหรับ 2.8 ใน URL นี้ ( https://issues.apache.org/jira/browse/HADOOP-9320 ) คุณต้องคัดลอกและวาง Andreas Muttscheller แพทช์ที่เสนอในชื่อของคุณ:

    :hadoop-2.8.0-src/hadoop-common-project/hadoop-common $ touch HADOOP-9320-v2.8.patch
    :hadoop-2.8.0-src/hadoop-common-project/hadoop-common $ vim HADOOP-9320-v2.8.patch
    #copy and paste proposed patch given here : https://issues.apache.org/jira/browse/HADOOP-9320?focusedCommentId=16018862&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16018862
    :hadoop-2.8.0-src/hadoop-common-project/hadoop-common $ patch < HADOOP-9320-v2.8.patch
    patching file HadoopCommon.cmake
    patching file HadoopJNI.cmake
    :hadoop-2.8.0-src/hadoop-common-project/hadoop-common $ cd ../..
    :hadoop-2.8.0-src $ sudo mvn package -Pdist,native -DskipTests -Dtar

เมื่อสร้างสำเร็จแล้ว:

    :hadoop-2.8.0-src/hadoop-dist/target/hadoop-2.8.0/lib/native $ tar -cvf nativelibs.tar *

และแทนที่เนื้อหาของไดเร็กทอรี lib / native ของการติดตั้ง Hadoop ด้วยเนื้อหาของไฟล์เก็บถาวรนี้ ข้อความคำเตือนเมื่อเรียกใช้ Hadoop ควรหายไป


0

สำหรับการติดตั้ง Hadoop มันง่ายมาก ๆ ในการติดตั้งเวอร์ชั่นฟรีจาก Cloudera มันมาพร้อมกับ GUI ที่ดีที่ทำให้ง่ายต่อการเพิ่มโหนดไม่มีการรวบรวมหรือการบรรจุด้วยการพึ่งพามันมาพร้อมกับสิ่งต่าง ๆ เช่นรังหมู ฯลฯ

http://www.cloudera.com/content/support/en/downloads.html

ขั้นตอนคือ: 1) ดาวน์โหลด 2) เรียกใช้ 3) ไปที่เว็บ GUI (1.2.3.4:7180) 4) เพิ่มโหนดเพิ่มเติมใน web gui (อย่าติดตั้งซอฟต์แวร์ cloudera บนโหนดอื่นมันทำเพื่อคุณทั้งหมด) 5) ภายในเว็บ GUI ไปที่หน้าแรกคลิกฮิวและฮิว Web UI สิ่งนี้ช่วยให้คุณเข้าถึง Hive, Pig, Sqoop ฯลฯ


Cloudera ดิสทริบิวชันอยู่หลายครั้งหลังรุ่นปัจจุบันที่มีให้สำหรับหลาย ๆ แพ็คเกจ ถ้าคุณต้องการ "ล่าสุดและยิ่งใหญ่" Apache Hadoop เป็นวิธีที่จะไป
Nerrve

0

ยืนยันการแก้ไขจากการโพสต์ก่อนหน้า:

1) ตรวจสอบว่าการlibhadoop.so.1.0.0จัดส่งที่มีการกระจาย Hadoop ได้รับการรวบรวมสำหรับสถาปัตยกรรมเครื่องของฉันซึ่งก็คือ x86_64:

[nova]:file /opt/hadoop-2.6.0/lib/native/libhadoop.so.1.0.0
/opt/hadoop-2.6.0/lib/native/libhadoop.so.1.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=3a80422c78d708c9a1666c1a8edd23676ed77dbb, not stripped

2) เพิ่ม-Djava.library.path=<path>ไปHADOOP_OPTในhadoop-env.sh:

export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true -Djava.library.path=/opt/hadoop-2.6.0/lib/native"

นี่ทำให้การเตือนที่น่ารำคาญหายไปแน่นอน


0

ประการแรก: คุณสามารถแก้ไข glibc version.CentOS ให้โปรแกรมที่ปลอดภัยตามปกติมันยังหมายถึงรุ่นเก่าเช่น glibc, protobuf ...

ldd --version
ldd /opt/hadoop/lib/native/libhadoop.so.1.0.0

คุณสามารถเปรียบเทียบรุ่นของ glibc ปัจจุบันกับ glibc ที่ต้องการ

ประการที่สอง: หากเวอร์ชันของ glibc ปัจจุบันเก่าคุณสามารถอัปเดต glibc ได้ DownLoad Glibc

หากเวอร์ชัน glibc id ปัจจุบันถูกต้องคุณสามารถต่อท้ายคำดั้งเดิมกับ HADOOP_OPTS ของคุณ

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

0

ฉันไม่ได้ใช้ CentOS นี่คือสิ่งที่ฉันมีใน Ubuntu 16.04.2, hadoop-2.7.3, jdk1.8.0_121 เรียกใช้ start-dfs.sh หรือ stop-dfs.sh สำเร็จโดยไม่มีข้อผิดพลาด:

# JAVA env
#
export JAVA_HOME=/j01/sys/jdk
export JRE_HOME=/j01/sys/jdk/jre

export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:${PATH}:.

# HADOOP env
#
export HADOOP_HOME=/j01/srv/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

แทนที่ / j01 / sys / jdk, / j01 / srv / hadoop ด้วยพา ธ การติดตั้งของคุณ

ฉันได้ทำสิ่งต่อไปนี้สำหรับการตั้งค่าครั้งเดียวบน Ubuntu ซึ่งไม่จำเป็นต้องป้อนรหัสผ่านหลายครั้งเมื่อใช้งาน start-dfs.sh:

sudo apt install openssh-server openssh-client
ssh-keygen -t rsa
ssh-copy-id user@localhost

แทนที่ผู้ใช้ด้วยชื่อผู้ใช้ของคุณ


0

โดยทั่วไปมันไม่ใช่ข้อผิดพลาดมันเป็นคำเตือนในคลัสเตอร์ Hadoop ที่นี่เพียงเราอัพเดตตัวแปรสภาพแวดล้อม

ส่งออก HADOOP_OPTS = "$ HADOOP_OPTS" -Djava.library.path = / usr / local / hadoop / lib
 ส่งออก HADOOP_COMMON_LIB_NATIVE_DIR = "/ usr / local / hadoop / lib / native"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.