1610s, "a cannon," from spit (v.) + fire (n.); c. 1600 as an adjective. Meaning "irascible, passionate person" is from 1670s. Replaced earlier shitfire (similar formation in Florentine cacafuoco).
spit
Spitalfields
spitball
spite
spiteful
spitfire
spittle
spittoon
Spitz
spiv
splanchnic