mapr

mfuanj7w  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(405)

我对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,我使用port=7222。我收到以下错误“现有连接被远程主机强制关闭”
请让我知道如果我使用正确的端口或任何需要在特定于mapr的代码中更改。
我已经停止了iptables。
任何信息都非常感谢。
谢谢

航向

h7wcgrx3

h7wcgrx31#

试试这个代码。但要确保在执行测试的节点中设置了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也与普通的apachehadoop发行版兼容。所以,在建筑的时候你可以用同样的。然后在运行程序时,在类路径中提供mapr jar。

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

相关问题