我对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。
任何信息都非常感谢。
谢谢
1条答案
按热度按时间h7wcgrx31#
试试这个代码。但要确保在执行测试的节点中设置了mapr客户机。
将以下内容添加到类路径:
/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。