hadoop 应用遇到的问题

1、java.lang.UnsupportedOperationException: Not implemented by the DistributedFileSystem FileSyste,这个错误我在maven依赖中本来是加了三个依赖:


	org.apache.hadoop
	hadoop-common
	2.6.0


	org.apache.hadoop
	hadoop-client
	2.6.0


	org.apache.hadoop
	hadoop-core
	1.2.1

然后很诡异的是,我直接在自己打包的hadoop工具类主函数中调用是不会有问题,但是放到springmvc项目中其他类中调用,就一直报这个错误,然后去掉了 hadoop-core 依赖之后,就没报这个错误了。



2、java.lang.NoSuchMethodError: org.eclipse.jdt.internal.compiler.CompilationResult.getProblems(),这个错误应该是有余是Hadoop相关jar中依赖jetty、servlet等第三方jar包和当前项目中的有冲突,自己的 maven 项目中把不需要的依赖去掉,减少不必要的麻烦



3、Hadoop Filesystem 多次close的问题:

然后我就查,为什么呢。我刚刚用final FileSystem dfs = FileSystem.get(getConf()); 得到它啊。后来发现,我是一个多线程的程序。FileSystem.get(getConf())返回的可能是一个cache中的结果,它并不是每次都创建一个新的实例。这就意味着,如果每个线程都自己去get一个文件系统,然后使用,然后关闭,就会有问题。因为你们关闭的可能是同一个对象。而别人还在用它!所以最好是在main函数中就创建好filesystem对象然后在不同函数之间来回传递吧。在main函数用用try…finally关闭它。多线程程序中,如果你确保在你的get和close之间不会有别人调用get,也没问题。


4、Name node is in safe mode  重启之后的hdfs可能会遇到这个问题,执行一下这句:

hadoop dfsadmin -safemode leave





持续更新。。。

你可能感兴趣的:(Web)