2016-04-14 51 views
0

Bir Storm topolojisinin çıkışını HA özellikli bir HDFS'ye yazmak için HdfsBolt kullanmayı deniyorum. şöyle topolojisi tanımı:Fırtına: HDFS URI'yi HA HDFS ile HdfsBolt() içinde tanımlayın

// 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); 

sorun HdfsBolthdfs://devhdfs değerinin farkında değildir ve bu tetikleyen bir java.net.UnknownHostException:

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

özgün çekirdek site.xml dosyasını sahip Bu tanımın bulunduğu, ancak HdfsBolt'a nasıl geçeceğimi bilmiyorum. Herhangi bir ipucu?

cevap

0

Fırtına, ağdaki "devhdfs" sunucusunu bulamadı. ev sahibi ping bulunup bulunmadığına kontrol edip hdfsurl liman "HDF'ler: // devhdfs: port" olacak kontrol etmek ve aynı geçmek ve

+0

Tek bir ana bilgisayar adı veremiyorum, çünkü HA özelliği etkin bir HDFS'dir. Tek bir ana bilgisayar adı verirsem, bu ana makine adı etkin NameNode ise çalışır. – Jander

0

src/main/resources içine core-site.xml ve hdfs-site.xml koyarak gitmek yol olduğunu görünüyor denemek:

Şu anda başka sorunlara da rastlıyorum, ancak HA ile ilgili ve Fırtına ile ilgili değiller.