java - 使用 Java 的 map

标签 java hadoop mapr

我是 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/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> 

关于java - 使用 Java 的 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17952416/

相关文章:

mysql - export sqoop 命令出错

mysql - 全文搜索最快的方法是什么?

hadoop - LDAP 的色调不适用于某些用户(WebHdfsException at/)

java - JPA:查询未获取最新数据

java - 为什么不能从子类访问 protected 方法?

java - 如何以独立于比例的方式检查 BigDecimal 是否在 Set 或 Map 中?

java - MapR Streams Kafka API 的批量大小问题

java - 如何演示 Java 指令重新排序问题?

hadoop - 客户端计算机上的mapred-site.xml必须与hadoop集群中的mapred-site.xml相同吗?

java - 分析hadoop集群中被杀死的java进程