Hezbollah has fired a barrage of rockets at Israel, destroying houses near Tel Aviv, after Israel killed at least 29 people in Beirut.