Java Hadoop库已导入,但无法设置;获得;FyleSystem中的方法

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

我正在尝试设置对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) 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
for
import java.net.URI
解决
.create
部分,但仍然.get()给了我相同的错误消息抱歉,我犯了一个错误,@eestero请查看我编辑的解决方案。我更改了您提到的方式,但仍然是相同的错误,我认为这一定与库有关,就像第一种情况一样。如果没有
new
,您应该会遇到不同的编译错误。我没有看到,您需要更改库
import org.apache.commons.httpclient.URI
for
import java.net.URI
解决
.create
部分,但仍然.get()给了我相同的错误消息抱歉,我犯了一个错误,@eestero请查看我编辑的解决方案。我更改了您提到的方式,但仍然是相同的错误,我认为这一定与库有关,就像第一种情况一样。如果没有
new
,你应该得到不同的编译错误。我没看到,你明白了