Recentemente ho abilitato kerberos nel mio cluster, tutto funziona alla grande fino a quando il mio login kerberos scade, per esempio, 12 ore. A quel punto tutte le connessioni che ho creato, tutte le tabelle create con quelle connessioni ecc. Verranno lanciate quando le uso. Questo potrebbe potenzialmente mandare in crash la mia app a seconda di come la gestisco.Strategia di rinnovo della connessione Kerberos HBase
Non mi preoccupo di crashing enormemente perché la mia app è gestita da slider che farà risorgere l'app se e quando va giù, tuttavia questo accadrà solo quando HBase è "usato" (cioè chiamo un metodo su un tavolo con una connessione ormai obsoleta) che sarà probabilmente causata da un'interazione dell'utente e questo porterebbe a UX scadente.
Non voglio che i dettagli di implementazione dell'autenticazione pervadano la mia applicazione e inoltre non voglio creare oggetti di connessione più spesso del necessario perché è un'operazione costosa che fa un gran numero di chiamate RPC (posizione dei metadati del guardiano zoografico verso iniziare con).
Esiste una strategia comune (preferibilmente integrata nel client HBase) per la gestione della scadenza dell'autenticazione Kerberos e il rinnovo delle connessioni/tabelle HBase quando ciò accade?
Se questo è automatizzato, raccomando vivamente di usare i keytabs al posto di username/password. –
Sì, sto usando i keytabs. I keytab si aggiornano, ma qualsiasi connessione di Hbase (e qualsiasi altra cosa che usi uno di questi) verrà lanciata dopo la scadenza del keytab. Sto cercando una strategia per gestirla senza fare affidamento su guasti periodici e senza reinventare la ruota. – richardstartin
Il keytab non scade. La password dell'account potrebbe essere eseguita dopo alcuni mesi. Il modulo Kerberos di Oracle ha un flag 'renewTGT'. Ci hai provato? Più oltre, puoi mostrare lo stack delle eccezioni? –