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

运行环境

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:<clinit>(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:
【hadoop】eclipse中运行hadoop相关程序出现Unable to load native-hadoop library for your platform解决方法_第1张图片
如上图,依次选择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解决方法_第2张图片

你可能感兴趣的:(Java,数据库,IDE相关,hadoop,eclipse,hdfs)