Я использую службу просмотра файлов hdfs для загрузки файла конфигурации, как только он будет изменен в моей работе потоковой передачи flink.
Источник для службы наблюдателей: Наблюдатель файлов HDFS
Проблема, с которой я здесь сталкиваюсь, заключается в том, что служба наблюдателей реагирует на изменения во всех hdf, а не только в каталоге I Прохожу.
Мой код:
public static void main( String[] args ) throws IOException, InterruptedException, MissingEventsException
{
HdfsAdmin admin = new HdfsAdmin( URI.create("hdfs://stage.my-org.in:8020/tmp/anurag/"), new Configuration() );
DFSInotifyEventInputStream eventStream = admin.getInotifyEventStream();
while( true ) {
EventBatch events = eventStream.take();
for( Event event : events.getEvents() ) {
switch( event.getEventType() ) {
case CREATE:
System.out.print( "event type = " + event.getEventType() );
CreateEvent createEvent = (CreateEvent) event;
System.out.print( " path = " + createEvent.getPath() + "\n");
break;
default:
break;
}
}
}
}
Вывод из программы:
event type = CREATE path = /tmp/anurag/newFile.txt
event type = CREATE path = /tmp/newFile2.txt
Пожалуйста, помогите мне решить эту проблему, чтобы я мог просматривать файлы в конкретный каталог, переданный как URI
Спасибо в ожидании
Примечание: если вы попытаетесь запустить эту программу, , пожалуйста, запустите как пользователь hdfs , иначе вы получите орг. apache .had oop .security.AccessControlException