【hadoop】eclipse中运行hadoop相关程序出现Unable to load native-hadoop library for your platform解决方法

【hadoop】eclipse中运行hadoop相关程序出现Unable to load native-hadoop library for your platform解决方法

码农世界 2024-05-15 前端 62 次浏览 0个评论

运行环境

hadoop 2.6.0

ubuntu18.04.6

eclipse2020.6

问题

在eclipse中执行如下代码向hadoop中写入test文件时出现错误:

package test;
import org.apache.hadoop.conf.Configuration;  
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.Path;
public class WriteFile {   
	public static void main(String[] args) { 
		try {
	    	Configuration conf = new Configuration();  
	        conf.set("fs.defaultFS","hdfs://localhost:9000");
	        conf.set("fs.hdfs.impl","org.apache.hadoop.hdfs.DistributedFileSystem");
	        FileSystem fs = FileSystem.get(conf);
            byte[] buff = "Hello world".getBytes(); // 要写入的内容
            String filename = "test"; //要写入的文件名
            FSDataOutputStream os = fs.create(new Path(filename));
            os.write(buff,0,buff.length);
            System.out.println("Create:"+ filename);
            os.close();
            fs.close();
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
	}  
}

运行结果:

2022-10-22 00:18:00,576 WARN  [main] util.NativeCodeLoader (NativeCodeLoader.java:(62)) - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Create:test

我在网上找了很多博客,他们的情况都是说在terminal中输入命令hadoop fs -ls /出现这种错误是因为没有配置好native的路径,然而当我在terminal中输入命令之后,我的结果是这样的:

好吧,我的配置没问题,那么也就是说是eclipse与hadoop之间没有连接好,即eclipse找不到hadoop中native的路径,因此我们可以这样做:

解决方法

在eclipse程序中右键点击 Run As -> Run Configurations:

如上图,依次选择Arguments -> VM arguments,然后输入如下指令:

-Djava.library.path=/usr/local/hadoop/lib/native

注意,等于号=后面的是你自己安装的hadoop的native的路径

之后点击 Apply -> Run,就可以发现错误解决了:

转载请注明来自码农世界,本文标题:《【hadoop】eclipse中运行hadoop相关程序出现Unable to load native-hadoop library for your platform解决方法》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,62人围观)参与讨论

还没有评论,来说两句吧...

Top