【问题标题】:Using the storm hdfs connector to write data into HDFS使用storm hdfs连接器将数据写入HDFS
【发布时间】:2014-11-07 12:42:55
【问题描述】:

可用于将数据写入 HDFS 的“storm-hdfs 连接器”的源代码。 github 网址是:https://github.com/ptgoetz/storm-hdfs 有一个特殊的拓扑:“HdfsFileTopology”用来写'|'分隔数据到 HDFS。 链接:https://github.com/ptgoetz/storm-hdfs/blob/master/src/test/java/org/apache/storm/hdfs/bolt/HdfsFileTopology.java

我对代码部分有疑问:

Yaml yaml = new Yaml();
        InputStream in = new FileInputStream(args[1]);
        Map<String, Object> yamlConf = (Map<String, Object>) yaml.load(in);
        in.close();
        config.put("hdfs.config", yamlConf);

        HdfsBolt bolt = new HdfsBolt()
                .withConfigKey("hdfs.config")
                .withFsUrl(args[0])
                .withFileNameFormat(fileNameFormat)
                .withRecordFormat(format)
                .withRotationPolicy(rotationPolicy)
                .withSyncPolicy(syncPolicy)
                .addRotationAction(new MoveFileAction().toDestination("/dest2/"));

这部分代码有什么作用,尤其是 YAML 部分?

【问题讨论】:

    标签: hadoop yaml hdfs apache-storm snakeyaml


    【解决方案1】:

    我认为代码很清楚。为了使HdfsBolt 能够写入 HDFS,它需要有关 HDFS 本​​身的信息,这就是您在创建 YAML 文件时所做的。

    要运行该拓扑,您需要提供该 YAML 文件的路径作为命令行参数。

    用法:HdfsFileTopology [拓扑名称] [yaml 配置文件]

    库的作者在这里做了很好的描述:Storm-HDFS Usage

    如果您阅读source code,您会发现 YAML 文件的内容将用于配置 HDFS。正确的可能是HDFS Defaults,但我不能确定。

    最好问问图书馆的作者。

    【讨论】:

    • 谢谢。解释没有谈到yaml文件。另外,关于用法,第一个参数不应该是hdfs url吗?此外,任何有关 yaml 配置文件的信息或要阅读的内容都将不胜感激。
    • 在哪里可以找到这个 yaml 配置文件?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-11
    • 1970-01-01
    • 2013-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多