赞
踩
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:
如上图,依次选择Arguments -> VM arguments,然后输入如下指令:
-Djava.library.path=/usr/local/hadoop/lib/native
注意,等于号=
后面的是你自己安装的hadoop的native的路径
之后点击 Apply -> Run,就可以发现错误解决了:
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。