A highly knowledgeable person; expert.
Synonym of know-it-all
A self-assertive and arrogant person; a know-it-all or smart aleck.