Ahead of the powerful storm -- which was packing maximum sustained winds of 115 mph -- government officials ordered the evacuation of 15,000 people from low-lying areas.
Officials said residents would be evacuated from low-lying areas by force if necessary, and hotels were sending foreign tourists home, Reuters reported.
"We are evacuating everyone," Mithza Velazquez, concierge at the beachfront Hilton hotel in Los Cabos, told Reuters.
One visitor didn't have to be convinced to leave.
"I've messed enough with hurricanes," said Curtis Bickers of Houston, Texas, who told the news agency he postponed his wedding planned for Saturday. "I'm not going to take any chances whatsoever."
But others said they would still not cut their vacations short.
"I wouldn't go anywhere else," Hilton guest Ed Feaser of Rancho Santa Margarita, California, told The Associated Press.
John already has caused heavy flooding on Mexico's mainland between the popular tourist destination of Acapulco and the city of Manzanillo to the northwest.
In its 5 a.m. ET advisory, the U.S. National Hurricane Center said the storm was about 110 miles (175 kilometers) southeast of the southern tip of Baja California and about 155 miles (250 km) west of Las Islas Marias, Mexico.
"Preparations to protect life and property should be rushed to completion," the National Hurricane Center said.
Hurricane John had been downgraded from a Category 3 storm to Category 2 Thursday afternoon, when its top winds weakened from 125 mph to 105 mph.
According to the Saffir-Simpson scale of hurricane intensity, Category 2 storms have top sustained winds between 96 and 110 mph and can cause some damage to buildings and trees.
A Category 3 storm has winds of 111-130 mph and can cause structural damage to small residences. Large trees may be blown down.
A hurricane warning remained in effect for the southern Baja peninsula from San Everisto southward on the east coast and from Bahia Magdalena southward on the west coast.
A tropical storm warning remained in effect for the central Baja California peninsula from Punta Abreojos southward to Bahia Magdalena on the west coast, and northward from San Everisto to Loreto on the east coast.
A hurricane warning means hurricane conditions are expected within the warning area within 24 hours; a tropical storm warning means tropical storm conditions are expected within 24 hours.
In the fishing mecca of Cabo San Lucas, at the tip of Baja California, authorities said they were preparing shelters for the possible evacuation of 30,000 people. All flights from that area to the United States were nearly sold out, officials said.
The storm was moving to the northwest at near 13 mph, a motion that was expected to continue for at least 24 hours. The center will move near or over southern Baja California on Friday, forecasters said.
Hurricane-force winds extended outward up to 30 miles from John's center. Tropical storm-force winds extended outward up to 105 miles.
Rainfall amounts of 6 to 10 inches, with isolated totals up to 18 inches, were possible along the western coast of Mexico within the warning areas. These amounts could cause life-threatening flash floods and mudslides over areas of mountainous terrain, the hurricane center said.
Coastal storm surge flooding of up to 5 feet above normal tide levels along with large and dangerous battering waves can be expected on the shores near the path of the center of the hurricane, it said.
John is the 10th named storm of the season in the eastern Pacific. Storms in the eastern Pacific are named separately from those in the Atlantic, the central Pacific or the western Pacific.
Last October, Hurricane Wilma pounded Mexico's Yucatan Peninsula with 125 mph winds and heavy rains. The Category 3 storm dealt a heavy blow to the tourism industry in Cancun, Cozumel and Playa de Carmen.
Meanwhile, Tropical Storm Ernesto's maximum sustained winds were at 65 mph early Friday, hours after it made landfall near Long Beach, North Carolina.
CNN's Chad Myers, Keith Oppenheim and Harris Whitbeck contributed to this report.