উত্তর নির্ভর করে ... আমি সবেমাত্র হ্যাডোপ ২.6 ইনস্টল করে টার্বল থেকে 64৪-বিট সেন্টোস .6..6 এ রেখেছি। হ্যাডোপ ইনস্টলটি সত্যই একটি প্রাক-বিল্ট 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 পরিবেশের পরিবর্তনশীল ব্যবহার করে লাইব্রেরির পথ সরবরাহ করার জন্য সমস্ত জবাব দিয়েছি। সুতরাং আমি উত্স কোড তাকান। ত্রুটি উত্পন্ন মডিউলটি আপনাকে ইঙ্গিতটি জানায় ( Use.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
তারপরে আমি একটি কমান্ড চালিয়েছি যা স্টপ- 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)
আমার কাছে জি এল এল বি সি এর কোন সংস্করণ আছে? এটি জানার জন্য এখানে সহজ কৌশল:
[hadoop@VMWHADTEST01 hadoop]$ ldd --version
ldd (GNU libc) 2.12
সুতরাং, আমার ওএসটি 2.14 এ আপডেট করতে পারবেন না। কেবলমাত্র সমাধানটি হ'ল আমার ওএসের উত্স থেকে নেটিভ গ্রন্থাগারগুলি তৈরি করা বা সতর্কতা দমন করা এবং আপাতত এটিকে উপেক্ষা করুন। আমি আপাতত বিরক্তিকর সতর্কবার্তাটি দমন করতে চেয়েছি (তবে ভবিষ্যতে উত্সগুলি থেকে তৈরি করার পরিকল্পনা করুন) একই লগিং অপশনগুলি ব্যবহার করে কিনুন যা আমরা ডিবাগ বার্তাটি পাওয়ার জন্য ব্যবহার করি, এখন বাদে, কেবল এটির স্তর তৈরি করুন।
log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR
আমি আশা করি এটি অন্যকে দেখতে সহায়তা করে যে ওপেন সোর্স সফ্টওয়্যারটির একটি বড় সুবিধা হ'ল আপনি যদি কিছু সাধারণ যৌক্তিক পদক্ষেপ গ্রহণ করেন তবে আপনি এই জিনিসটি বের করতে পারেন।