This is a mere coincidence of convergent phonological evolution, not of common etymons.
Cannibal has nothing to do with the Great Khan nor with dogs, let alone with meat. Rather, it’s about the Caribbean autochthons.
Carnival has nothing to do with saying farewell although it does have a meat-meaning etymon.
Of Xanadu and meat’s goodbye
The OED makes clear that cannibal and carnival have nothing to do with one another. They also provide some notes about longstanding but erroneous folk etymologies.
For example, Columbus even thought cannibals were related in name to the Great Khan of Asia, or at least, wanted others to think that: he wrote that Caniba was nothing but the people of the Great Khan.
Another fanciful folk etymology from the 1500s was to try to connect cannibal to Latin canis meaning ‘dog’. The OED writes:
Etymology: In 16th cent. plural Canibales, < Spanish Canibales, originally one of the forms of the ethnic name Carib or Caribes, a fierce nation of the West Indies, who are recorded to have been anthropophagi, and from whom the name was subsequently extended as a descriptive term.
Professor J. H. Trumbull, of Hartford, has pointed out that l, n, r interchange dialectally in American languages, whence the variant forms Caniba, Caribe, Galibi: and that Columbus’s first representation of the name as he heard it from the Cubans was Canibales, explained as ‘los de Caniba or Canima’; when he landed on Hayti, he heard the name of the people as Caribes and their country Carib ; the latter was afterwards identified with Puerto Rico, named by the Spaniards ‘Isla de Carib’, ‘which in some islands’, Columbus says, ‘they call Caniba, but in Hayti Carib’. Apparently, however, it was only foreigners who made a place-name out of that of the people: according to Oviedo (Hist. Gen. ɪɪ. viii.) caribe signifies ‘brave and daring’, with which Prof. Trumbull compares the Tupi caryba ‘superior man, hero, vir’. Calib- (in Caliban n.) is apparently another variant = carib-an; compare Galibi above-mentioned.
Columbus’s notion on hearing of Caniba was to associate the name with the Grand Khan, whose dominions he believed to be not far distant; he held ‘que Caniba no es otra cosa sino la gente del Gran Can’. To connect the name with Spanish can, Italian cane, Latin canis dog, was a later delusion, entertained by Geraldini, Bp. of San Domingo, 1521–5; it naturally tickled the etymological fancy of the 16th cent., and may have helped to perpetuate the particular form canibal in association with the sense anthropophagi. See Prof. Trumbull's article, in Notes & Queries 5th Ser. IV. 171.
The Spanish cognate caníbal with unnatural stress is one of those r/n/l phonological swaps that the OED mentions: the DRAE says it’s from caríbal, and that from caribe.
So there is no legitimate etymon behind cannibal that is in any way related to the Latin word for meat: caro/carnis, the one we get words like carnal and incarnate from.
Of incarnate matters
However, in the case of carnival, there indeed is such. Just not in the way the folk etymologies would have it. This word has enjoyed a variety of spellings in English, starting with carnoval, carnevale during the 1500s, then all of carnevall, carnivale, carnivall, carnaval, carnival during the 1600s. Of those five, only the last two survived into the 1700s, and after that only carnival alone.
Well, in English. Spanish, Portuguese, Catalan, and French all still spell it carnaval, while Italian has carnevale, about which Wiktionary says it is:
From Latin carnem levāre ("take away/remove meat"). Compare Old Italian carnasciale ("carnival") from carnem laxāre, Romanian cârneleagă from carnem ligat, and Spanish carnestolendas (“three days preceding the beginning of Lent”) from carnis tollendus. Other theories suggest it comes from Latin carnealis ("meaty") or carnualis ("feast").
Indeed, Spanish still uses carnestolendas to mean Shrovetide(s), which are the three days immediately preceding Lent: Shrove Sunday, Shrove Monday, and Shrove Tuesday, where Lent begins on Ash Wednesday. The Spanish carnaval is said to be from the Italian, where we learn that the old carne + levare was originally a calque of the Greek ἀπόκρεως apókreōs. The Diccionario de la Real Academia Española says:
Del it. carnevale, haplología del ant. carnelevare, de carne ‘carne¹’ y levare ‘quitar’, calco del gr. ἀπόκρεως apókreōs.
We get a bit more translation of the postclassical Greek apókreōs meaning ‘meat abstinence’ in the Spanish Wiktionary entry for carnaval:
Del italiano carnevale, contracción de carnelevale, y este de carne levare ("dejar la carne"), siguiendo el modelo del latín medieval carnelevarium, carnilevamen, y este calcando el griego postclásico ἀπόκρεως (apókreōs, "abstinente de carne"). Compárese carnestolendas o el italiano carnasciale, que muestran evoluciones análogas, así como el francés carnaval, el inglés carnival o el portugués carnaval, tomados del italiano. La versión que lo deriva de un supuesto latín carnem vale (‘adiós a la carne’) carece de sustento histórico y etimológico.
The sentence at the end that I’ve set in bold says that the folk etymology is, in effect, completely bogus. So everybody agrees this came from Italian, and that it has nothing to do with saying See ya! to meat.
However it is spelled, the OED consigns attempts to connect carnival to Latin vale for ‘farewell’ to the realm of ‘popular etymology’:
Etymology: < Italian carnevale, carnovale (whence French carnaval), evidently related to the medieval Latin (11–12th cent.) names carnelevārium, carnilevāria, carnilevāmen, cited by Carpentier in additions to Du Cange. These appear to originate in a Latin *carnem levāre, or Italian *carne levare (with infinitive used substantively as in il levar del sole sunrise), meaning ‘the putting away or removal of flesh (as food)’, the name being originally proper to the eve of Ash Wednesday. The actual Italian carnevale appears to have come through the intermediate carnelevale, cited by Carpentier from a document of 1130.
The history of the word is illustrated by the parallel medieval Latin name carnem laxare (cited by Carpentier from a charter of 1050), corresponding to Italian *carne lasciare ‘leaving or forsaking flesh’, whence, apparently by contraction, the modern carnasciale = carnevale. *Carnem laxare, *carne lasciare, *carnelasciale, carnasciale, form a series exactly parallel to *carnem levare, *carne levare, carnelevale, carnevale. Other names having a similar reference are, for Shrove Tuesday, carnicapium ‘flesh-taking’, and carnivora [dies]; for Lent or its beginning, carniprivium, carnisprivium, privicarnium, < privare to deprive. In all these, ‘flesh’ means meat, and that it was understood to mean the same in carnelevare is shown by many early quotations in Du Cange; e.g. in a MS. of beg. of 13th cent. ‘De ludo Carnelevar. In Dominica dimissionis carnis,’ etc. Also ‘Dominica ad vel ante carnes tollendas’; with which compare the Spanish carnes tolendas, ‘shrove-tide’. We must therefore entirely reject the suggestion founded on another sense of levare, ‘to relieve, ease’, that carnelevarium meant ‘the solace of the flesh (i.e. body)’ before the austerities of Lent. The explanations ‘farewell flesh, farewell to flesh’ (from Latin vale) found already in Florio, and ‘down with flesh!’ (from French aval), belong to the domain of popular etymology. (Compare Dr. Chance in Notes & Queries s. 7 IV. 82.)
Notice how there’s another folk myth in French about meaning ‘down with flesh!’. Larousse says that the etymology of its carnaval is from:
(italien carnevale, mardi gras, du latin médiéval carnelevare, ôter la viande)
(Where ôter there means ‘abstain’ from Latin obstare, obstain, abstain.)
The Portuguese carnaval derives from the Italian by way of the French, if anyone cares:
(francês carnaval, do italiano carnevale, de carnelevare, retirar a carne)
— "carnaval", in Dicionário Priberam da Língua Portuguesa [em linha], 2008-2013, https://www.priberam.pt/dlpo/carnaval [consultado em 26-08-2018].
Dutch also has the carnaval spelling via French, while German spells it Karneval via Italian.
Cannibal has nothing to do with the Great Khan nor with dogs. Rather, it’s about the Caribbean autochthons.
Carnival has nothing to do with saying farewell although it does have an etymon meaning meat or flesh.