Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java的Mapr_Java_Hadoop_Mapr - Fatal编程技术网

使用Java的Mapr

使用Java的Mapr,java,hadoop,mapr,Java,Hadoop,Mapr,我是Hadoop、Mapr和Pivotal的新手。我已经编写了java代码来编写pivotal,但在编写Mapr时遇到了问题 public class HadoopFileSystemManager { private String url; public void writeFile(String filePath,String data) throws IOException, URISyntaxException { Path f

我是Hadoop、Mapr和Pivotal的新手。我已经编写了java代码来编写pivotal,但在编写Mapr时遇到了问题

  public class HadoopFileSystemManager {
        private String url;
        public void writeFile(String filePath,String data) throws IOException, URISyntaxException {
            Path fPath = new Path(filePath);
            String url = url = "hdfs://"+ip+":"+"8020";
            FileSystem fs = FileSystem.get(new URI(url),new Configuration());
            System.out.println(fs.getWorkingDirectory());
            FSDataOutputStream writeStream = fs.create(fPath);
            writeStream.writeChars(data);
            writeStream.close();
        }

    }
此代码在Pivotal上运行良好,但在Mapr上运行失败

对于Mapr,我使用端口=7222。 我得到以下错误 “远程主机已强制关闭现有连接”

请让我知道我是否使用了正确的端口,或者是否需要在特定于Mapr的代码中更改任何内容

我已经停止了iptables

任何信息都非常感谢

谢谢


Heading试试这个代码。但请确保在执行测试的节点中设置了MapR客户端

public class HadoopFileSystemManager {
        private String url;
        public void writeFile(String filePath,String data) throws IOException, URISyntaxException {
            System.setProperty( "java.library.path", "/opt/mapr/lib" );
            Path fPath = new Path(filePath);
            String url = url = "hdfs://"+ip+":"+"8020";
            FileSystem fs = FileSystem.get(new URI(url),new Configuration());
            System.out.println(fs.getWorkingDirectory());
            FSDataOutputStream writeStream = fs.create(fPath);
            writeStream.writeChars(data);
            writeStream.close();
        }

    }
将以下内容添加到类路径:

/opt/mapr/hadoop/hadoop-0.20.2/conf:/opt/mapr/hadoop/hadoop-0.20.2/lib/hadoop-0.20.2-dev-core.jar:/opt/mapr/hadoop/hadoop-0.20.2/lib/maprfs-0.1.jar::/opt/mapr/hadoop/hadoop-0.20.2/hadoop-1.0.4/lib/mapr/hadoop/hadoop-0.2/zokeeper-3.jar

上述代码中的这条语句:
System.setProperty(“java.library.path”,“/opt/mapr/lib”)可以删除,也可以使用
-Djava.library.path
提供,如果您在构建时从终端运行程序

/opt/mapr可能不是您访问mapr文件的路径。如果是这种情况,请在适用的情况下相应地更换路径

评论后: 如果您使用Maven构建项目,请尝试在pom.xml中使用以下内容:, 并提供范围。MapR也与普通的apachehadoop发行版兼容。因此,在构建时,您可以使用相同的。然后在运行程序时,在类路径中提供mapR jar

<dependency>
   <groupid>hadoop</groupid>
   <artifactid>hadoop</artifactid>
   <version>0.20.2</version>
   <scope>provided</scope>
</dependency> 

hadoop
hadoop
0.20.2
假如

试试这段代码。但请确保在执行测试的节点中设置了MapR客户端

public class HadoopFileSystemManager {
        private String url;
        public void writeFile(String filePath,String data) throws IOException, URISyntaxException {
            System.setProperty( "java.library.path", "/opt/mapr/lib" );
            Path fPath = new Path(filePath);
            String url = url = "hdfs://"+ip+":"+"8020";
            FileSystem fs = FileSystem.get(new URI(url),new Configuration());
            System.out.println(fs.getWorkingDirectory());
            FSDataOutputStream writeStream = fs.create(fPath);
            writeStream.writeChars(data);
            writeStream.close();
        }

    }
将以下内容添加到类路径:

/opt/mapr/hadoop/hadoop-0.20.2/conf:/opt/mapr/hadoop/hadoop-0.20.2/lib/hadoop-0.20.2-dev-core.jar:/opt/mapr/hadoop/hadoop-0.20.2/lib/maprfs-0.1.jar::/opt/mapr/hadoop/hadoop-0.20.2/hadoop-1.0.4/lib/mapr/hadoop/hadoop-0.2/zokeeper-3.jar

上述代码中的这条语句:
System.setProperty(“java.library.path”,“/opt/mapr/lib”)可以删除,也可以使用
-Djava.library.path
提供,如果您在构建时从终端运行程序

/opt/mapr可能不是您访问mapr文件的路径。如果是这种情况,请在适用的情况下相应地更换路径

评论后: 如果您使用Maven构建项目,请尝试在pom.xml中使用以下内容:, 并提供范围。MapR也与普通的apachehadoop发行版兼容。因此,在构建时,您可以使用相同的。然后在运行程序时,在类路径中提供mapR jar

<dependency>
   <groupid>hadoop</groupid>
   <artifactid>hadoop</artifactid>
   <version>0.20.2</version>
   <scope>provided</scope>
</dependency> 

hadoop
hadoop
0.20.2
假如

您是如何运行java程序的。从终端?运行Junit测试用例:@test public void writeFileTest3(){HadoopFileSystemManager fs=new HadoopFileSystemManager();try{fs.writeFile(“/tmp/dummy”,“这是测试字符串”);}catch(异常e){e.printStackTrace();assertEquals(0,1);}您是如何运行java程序的。从终端?运行Junit测试用例:@test public void writeFileTest3(){HadoopFileSystemManager fs=new HadoopFileSystemManager();try{fs.writeFile(“/tmp/dummy”,“这是测试字符串”);}catch(异常e){e.printStackTrace();assertEquals(0,1);}我仍然得到同样的错误。可能是我错误地配置了系统。在我的项目的pom.xml中,我添加了这两个依赖项。hadoop common 2.0.5-alpha和hadoop hdfs 2.0.5-alpha,我从某个站点了解到core-site.xml也需要配置。所以我改为fs.default.name hdfs://:8020。我正在从我的工作机器上运行测试程序。@user608020:您能从您的测试机器上执行MapR作业吗?我已经创建了两个项目,一个用于Pivotal,另一个用于MapR 1。Mapr pom.xml具有hadoop核心(1.0.3-Mapr-2.1.2.1)依赖关系,该项目仅写入Mapr,并在pivotal 2中失败。Pivotal pom.xml具有hadoop hdfs(2.0.2-alpha)和hadoop common(2.0.2-alpha)依赖关系。此项目仅写入Pivotal,使用MapR失败。两个项目中使用相同的代码。请让我知道如何在单个项目中编写Pivotal和MapR。合并pom.xml不起作用,我不知道Pivotal,但MapR可以与普通的Apache Hadoop API一起工作(MapR这么说)-因此,当您使用pom.xml中提供的scope=时,我想保留它应该可以用于编译。运行时,请确保在类路径中使用了MapR jar。我仍然收到相同的错误。可能是我错误地配置了系统。在我的项目的pom.xml中,我添加了这两个依赖项。hadoop common 2.0.5-alpha和hadoop hdfs 2.0.5-alpha,我从某个站点了解到core-site.xml也需要配置。所以我改为fs.default.name hdfs://:8020。我正在从我的工作机器上运行测试程序。@user608020:您能从您的测试机器上执行MapR作业吗?我已经创建了两个项目,一个用于Pivotal,另一个用于MapR 1。Mapr pom.xml具有hadoop核心(1.0.3-Mapr-2.1.2.1)依赖关系,该项目仅写入Mapr,并在pivotal 2中失败。Pivotal pom.xml具有hadoop hdfs(2.0.2-alpha)和hadoop common(2.0.2-alpha)依赖关系。此项目仅写入Pivotal,使用MapR失败。两个项目中使用相同的代码。请让我知道如何在单个项目中编写Pivotal和MapR。合并pom.xml不起作用,我不知道Pivotal,但MapR可以与正常的Apache Hadoop API一起工作(MapR这么说)-因此,当您执行scope=provided时