1

我是 Hadoop、Mapr 和 Pivotal 的新手。我已经编写了 java 代码来写入关键但在写入 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();
        }

    }

此代码适用于 pivoatal,但适用于 Mapr。

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

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

我已经停止了 iptables。

任何信息都非常感谢。

谢谢

标题

4

1 回答 1

1

试试这个代码。但请确保您在执行测试的节点中设置了 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/lib/commons-logging-1.0.4.jar:/opt/mapr/hadoop/hadoop-0.20 .2/lib/zookeeper-3.3.2.jar

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

/opt/mapr可能不是您指向 mapr 文件的路径。如果是这种情况,请在适用的地方相应地替换路径。

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

<dependency>
   <groupid>hadoop</groupid>
   <artifactid>hadoop</artifactid>
   <version>0.20.2</version>
   <scope>provided</scope>
</dependency> 
于 2013-07-31T13:27:08.497 回答