public void start ( ) throws IOException { Preconditions . checkState ( ! isStarted ( ) , "JN already running" ) ; journalNodes = getJournalHttpAddresses ( conf ) ; // crash the JournalNode if the DFS_JOURNALNODE_HOSTS is not configured. if ( journalNodes . isEmpty ( ) ) { String msg = JournalConfigKeys . DFS_JOURNALNODE_HOSTS + " is not present in the configuration." ; LOG . fatal ( msg ) ; throw new IOException ( msg ) ; } LOG . info ( "JournalNode hosts: " + journalNodes ) ; validateAndCreateJournalDir ( localDir ) ; LOG . info ( "JournalNode storage: " + localDir . getAbsolutePath ( ) ) ; InetSocketAddress socAddr = JournalNodeRpcServer . getAddress ( conf ) ; // TODO serverId has to be set correctly metrics = new JournalNodeMetrics ( conf , socAddr . toString ( ) ) ; httpServer = new JournalNodeHttpServer ( conf , this ) ; httpServer . start ( ) ; rpcServer = new JournalNodeRpcServer ( conf , this ) ; rpcServer . start ( ) ; journalSyncer = new JournalNodeJournalSyncer ( journalNodes , httpServer . getAddress ( ) , conf ) ; journalSyncerThread = new Thread ( journalSyncer , "Thread-JournalSyncer" ) ; journalSyncerThread . start ( ) ; }
Start listening for edits via RPC .