DFSInotifyEventInputStream
これに使用できるHadoop 2.6 が導入されました。からインスタンスを取得し、 orをHdfsAdmin
呼び出してすべてのイベントを取得できます。イベントの種類には、探しているものをカバーする削除、追加、および作成が含まれます。.take()
.poll()
これが基本的な例です。hdfs
管理インターフェイスには HDFS ルートが必要なため、必ずユーザーとして実行してください。
public static void main( String[] args ) throws IOException, InterruptedException, MissingEventsException
{
HdfsAdmin admin = new HdfsAdmin( URI.create( args[0] ), new Configuration() );
DFSInotifyEventInputStream eventStream = admin.getInotifyEventStream();
while( true ) {
EventBatch events = eventStream.take();
for( Event event : events.getEvents() ) {
System.out.println( "event type = " + event.getEventType() );
switch( event.getEventType() ) {
case CREATE:
CreateEvent createEvent = (CreateEvent) event;
System.out.println( " path = " + createEvent.getPath() );
break;
default:
break;
}
}
}
}
詳細については、次のブログ記事を参照してください。
http://johnjianfang.blogspot.com/2015/03/hdfs-6634-inotify-in-hdfs.html?m=1