hadoop编程实现hdfs java api时老是报错

「已注销」 2018-06-03 09:46:11
错误提示如下
Exception in thread "main" java.lang.NoClassDefFoundError: com/ctc/wstx/io/InputBootstrapper
at Chapter3.main(Chapter3.java:12)
Caused by: java.lang.ClassNotFoundException: com.ctc.wstx.io.InputBootstrapper
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
完整代码如下
import java.io.BufferedReader;
import java.io.InputStreamReader;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class Chapter3 {
public static void main(String [] args) {
try {
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);
Path filename = new Path("hdfs://localhost:9000/user/hadoop/test.txt");
FSDataInputStream is = fs.open(filename);
BufferedReader d = new BufferedReader(new InputStreamReader(is));
String content = d.readLine(); //读取文件一行
System.out.println("读取文件:/user/hadoop/test.txt");
System.out.println(content);
System.out.println("读取完成");
d.close();//关闭文件
fs.close();//关闭hdfs
}catch(Exception e) {
e.printStackTrace();
}
}
}
我成功安装了伪分布式hadoop,版本2.9.0,jdk1.8.0_171,jps查看各项启动正常
/user/hadoop/test.txt是创建在hdfs上的文件,想编程实现读取这个文件
之前编一些其他的hdfs java api时涉及到Configuration也会出现这种问题
据说Configuration在创建对象的时候会把配置文件夹在进来,也有把
core-site.xml和hdfs.site.xml拷贝到工程目录下的/bin文件夹,也有把hadoop-common-2.9.0.jar和
hadoop-hdfs-2.9.0.jar这两个包导入工程
也试过这样定义
conf.set("fs.defaultFS","hdfs://localhost:9000");
conf.set("fs.hdfs.impl","org.apache.hadoop.hdfs.DistributedFileSystem");
也没用
报错说找不到类com/ctc/wstx/InputBootstrapper,也不知道这个类在哪个包,是干啥用的
求解答 求解答 求解答
...全文
1953 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_40775841 2018-06-10
  • 打赏
  • 举报
回复
题主,问题解决了,我最近也遇到同样问题,试了一个简单的hadoop去重示例程序,在eclipse提交也报这个错误,还木有找到解决办法
weixin_40775841 2018-06-10
  • 打赏
  • 举报
回复
题主,今天我又研究了一下午,终于把这个解决了,我之前也是报错: java.lang.noclassdefFounderror com/ctc/wstx/io/inputbootstrapper 创建工程时,选择New-—>project --->Map/Reduce project ,配置hadoop Map/reduce libobrary installation path ,会自动加入所需的library 如果没有自动加入referrence libraries,通过 build path手动添加 external libraries ,添加hadoop安装路径下hadoop/share/下 及各子目录下的所有jar包。 问题解决
「已注销」 2018-06-06
  • 打赏
  • 举报
回复
难道是hadoop版本太高?最近装了hbase,发现版本有很大问题,hmaster和hregionserver启动后居然自动关闭!
「已注销」 2018-06-05
  • 打赏
  • 举报
回复
我忽然有一个大胆的想法······
「已注销」 2018-06-04
  • 打赏
  • 举报
回复
据说Configuration在创建对象的时候会自动把配置文件夹加载进来
「已注销」 2018-06-03
  • 打赏
  • 举报
回复
我这是按照林子雨的大数据技术原理与应用打的代码,究竟错在哪里了

20,808

社区成员

发帖
与我相关
我的任务
社区描述
Hadoop生态大数据交流社区,致力于有Hadoop,hive,Spark,Hbase,Flink,ClickHouse,Kafka,数据仓库,大数据集群运维技术分享和交流等。致力于收集优质的博客
社区管理员
  • 分布式计算/Hadoop社区
  • 涤生大数据
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧