More than 21,000 people have been evacuated in Johor after continuous rains, causing what officials say are the worst floods in years.