Is cannibal an adjective?

No, the word cannibal is a noun, a singular, common, abstract noun; a word for one that eats the flesh of its own kind, a word for a person or thing.