Java Hadoop库已导入,但无法设置;获得;FyleSystem中的方法
我正在尝试设置对HDFS的调用,以便使用文件系统从中获取文件:Java Hadoop库已导入,但无法设置;获得;FyleSystem中的方法,java,maven,hadoop,Java,Maven,Hadoop,我正在尝试设置对HDFS的调用,以便使用文件系统从中获取文件: FileSystem fs=newfilesystem.get(newuri.create(URI),conf) 但是我得到了这两个错误,所以我调用了所有的库 Error:(46, 39) java: cannot find symbol symbol: class get location: class org.apache.hadoop.fs.FileSystem Error:(46, 47
FileSystem fs=newfilesystem.get(newuri.create(URI),conf)代码>
但是我得到了这两个错误,所以我调用了所有的库
Error:(46, 39) java: cannot find symbol
symbol: class get
location: class org.apache.hadoop.fs.FileSystem
Error:(46, 47) java: cannot find symbol
symbol: method create(java.lang.String)
location: class org.apache.commons.httpclient.URI
这是针对hadoop 2.7.7版本的。我已经试过导入洞库了
org.apache.hadoop.fs.*代码>
但是当我试图在以下行中使用它们时,仍然没有方法get
和create
:
FileSystem fs=new FileSystem.get(URI.create(usi),conf)
这是我的POM.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.boeing.bedl</groupId>
<artifactId>IngestionData</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.7.7</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-yarn-common</artifactId>
<version>2.7.7</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-core</artifactId>
<version>2.7.7</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-common</artifactId>
<version>2.7.7</version>
</dependency>
</dependencies>
</project>
4.0.0
com.boeing.bedl
摄取数据
1.0-快照
org.apache.hadoop
hadoop通用
2.7.7
org.apache.hadoop
hadoop普通纱线
2.7.7
org.apache.hadoop
hadoop mapreduce客户端核心
2.7.7
org.apache.hadoop
hadoop mapreduce客户端公用程序
2.7.7
我想说,问题是您已经导入了import org.apache.commons.httpclient.URI
而不是java.net.URI
这就是为什么缺少.create方法(它是java.net.URI的一部分)会出现错误,而.get方法会出现错误,因为传递的URI类型错误
(我猜是IDE的一些自动导入?:)我想说的问题是您已经导入了import org.apache.commons.httpclient.URI
而不是java.net.URI
这就是为什么缺少.create方法(它是java.net.URI的一部分)会出现错误,而.get方法会出现错误,因为传递的URI类型错误
(我猜IDE的一些自动导入?:)您有两个问题。根据@Veselin Davidov的回答,您必须将导入更改为java.net.URI
:
import org.apache.commons.httpclient.URI;
到
第二,使用新运算符和静态工厂方法:
FileSystem fs = new FileSystem.get(new URI.create(uri), conf);
因此,您必须使用工厂:
FileSystem fs = FileSystem.get(URI.create(uri), conf);
你有两个问题。根据@Veselin Davidov的回答,您必须将导入更改为java.net.URI
:
import org.apache.commons.httpclient.URI;
到
第二,使用新运算符和静态工厂方法:
FileSystem fs = new FileSystem.get(new URI.create(uri), conf);
因此,您必须使用工厂:
FileSystem fs = FileSystem.get(URI.create(uri), conf);
是的,你说得对,我解决了部分问题,更改库java.net.URI
,但是'get()`方法仍然会给我一个错误。是从IDE自动导入的,大多数情况下是正确的。仅对于get()方法部分,.create的错误在于解决了导入正确库的问题请检查我的答案,您必须从FileSystem fs=new FileSystem.get(new URI.create(URI),conf)中删除这两个new
代码>是的,你说得对,我解决了部分问题,更改库java.net.URI
,但是'get()'方法仍然会给我一个错误。是从IDE自动导入的,大多数情况下是正确的。仅对于get()方法部分,.create的错误在于解决了导入正确库的问题请检查我的答案,您必须从FileSystem fs=new FileSystem.get(new URI.create(URI),conf)中删除这两个new
代码>更改库导入org.apache.commons.httpclient.URI
forimport java.net.URI
解决.create
部分,但仍然.get()给了我相同的错误消息抱歉,我犯了一个错误,@eestero请查看我编辑的解决方案。我更改了您提到的方式,但仍然是相同的错误,我认为这一定与库有关,就像第一种情况一样。如果没有new
,您应该会遇到不同的编译错误。我没有看到,您需要更改库import org.apache.commons.httpclient.URI
forimport java.net.URI
解决.create
部分,但仍然.get()给了我相同的错误消息抱歉,我犯了一个错误,@eestero请查看我编辑的解决方案。我更改了您提到的方式,但仍然是相同的错误,我认为这一定与库有关,就像第一种情况一样。如果没有new
,你应该得到不同的编译错误。我没看到,你明白了