storm:如何使用ha hdfs在hdfsbolt()中定义hdfs uri

os8fio9y  于 2021-06-21  发布在  Storm
关注(0)|答案(2)|浏览(304)

我试着用 HdfsBolt 将storm拓扑的输出写入支持ha的hdfs。拓扑定义如下:

// Use pipe as record boundary
RecordFormat format = new DelimitedRecordFormat().withFieldDelimiter("|");
//Synchronize data buffer with the filesystem every 1000 tuples
SyncPolicy syncPolicy = new CountSyncPolicy(1000);
// Rotate data files when they reach five MB
FileRotationPolicy rotationPolicy = new FileSizeRotationPolicy(5.0f, FileSizeRotationPolicy.Units.MB);
// Use default, Storm-generated file names
FileNameFormat fileNameFormat = new DefaultFileNameFormat().withPath("/foo");

HdfsBolt hdfsBolt = new HdfsBolt()
      .withFsUrl("hdfs://devhdfs")
      .withFileNameFormat(fileNameFormat)
      .withRecordFormat(format)
      .withRotationPolicy(rotationPolicy)
      .withSyncPolicy(syncPolicy);

问题是 HdfsBolt 没有意识到 hdfs://devhdfs 这就触发了 java.net.UnknownHostException :

Caused by: java.lang.IllegalArgumentException: java.net.UnknownHostException: prehdfs

我有原始的core-site.xml,其中包含该定义,但我不知道如何将其传递给 HdfsBolt . 有什么提示吗?

kuhbmx9i

kuhbmx9i1#

似乎 core-site.xml 以及 hdfs-site.xml 进入 src/main/resources 方法是:)
我现在遇到了一些其他问题,但它们似乎与ha有关,而不是与风暴有关。

4sup72z8

4sup72z82#

storm无法在网络中找到主机“devhdfs”。通过ping检查主机是否可用,并检查hdfsurl是否有端口“hdfs://devhdfs:port“并传递相同的

相关问题