我试着用 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
. 有什么提示吗?
2条答案
按热度按时间kuhbmx9i1#
似乎
core-site.xml
以及hdfs-site.xml
进入src/main/resources
方法是:)我现在遇到了一些其他问题,但它们似乎与ha有关,而不是与风暴有关。
4sup72z82#
storm无法在网络中找到主机“devhdfs”。通过ping检查主机是否可用,并检查hdfsurl是否有端口“hdfs://devhdfs:port“并传递相同的