[英]Mapr using Java
我是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。
任何信息都非常感謝。
謝謝
試試這個代碼。 但是,請確保在執行測試的節點中具有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目錄/共享記錄-1.0.4.jar:/opt/mapr/hadoop/hadoop-0.20 0.2 / LIB /動物園管理員-3.3.2.jar
上面的代碼中的此語句: System.setProperty( "java.library.path", "/opt/mapr/lib" );
如果在構建時從終端運行程序,則可以將其刪除並也可以使用-Djava.library.path
提供。
/ opt / 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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.