2016-08-04 8 views
0

В моем кластере CDH5.4 у меня есть шлюзовый узел, который находится в частной и общедоступной сети. Кластер находится в частной сети. Я хочу использовать sqoop для получения данных из сервера базы данных, который находится в общедоступной сети. Когда я выполняю команду на карте задаче не в состоянииКак включить datanode для доступа за пределы своей частной сети?

Error: java.lang.RuntimeException: java.lang.RuntimeException: java.sql.SQLRecoverableException: IO Error: Unknown host specified

Я понимаю, что узлы кластера не могут получить доступ к серверу БД по сети общего пользования.

Учитывая, что эта общедоступная сетевая архитектура довольно распространена в отрасли, что является правильным способом включения данных для доступа к серверу в общедоступной сети?

Любая помощь очень ценится ....

Шлюзовой узел

$>route -v 
Kernel IP routing table 
    Destination  Gateway   Genmask   Flags Metric Ref Use Iface 
    10.248.200.0 *    255.255.255.0 U  0  0  0 bond_internal 
    192.168.196.0 *    255.255.252.0 U  0  0  0 bond_external 
    link-local  *    255.255.0.0  U  1007 0  0 bond_external 
    link-local  *    255.255.0.0  U  1008 0  0 bond_internal 
    default   192.168.196.1 0.0.0.0   UG 0  0  0 bond_external 

DataNode

$>route -v 
Kernel IP routing table 
Destination  Gateway   Genmask   Flags Metric Ref Use Iface 
10.248.200.0 *    255.255.255.0 U  0  0  0 bond0 
link-local  *    255.255.0.0  U  1008 0  0 bond0 
+0

Возможно прокси через узел шлюза или с помощью Sentry –

+0

Не совсем проблема с хаосом, похоже, как проблема сетевой маршрутизации. Вы можете добавить таблицу маршрутизации узла, на котором вы работаете sqoop. Используйте 'route -v'. – ViKiG

+0

@vkgade - спасибо за ваш ответ. Я добавил информацию о таблице маршрутизации. – scott

ответ

0

Вещи, которые вы должны проверить.

Узел, на котором работает Sqoop, имеет правильный узел шлюза. Вы можете проверить, что с помощью таблиц маршрутизации и изменить его с помощью команды route

route add default gw IP_OF_GATEWAY_NODE NETWORK_INTERFACE_NAME_ON_THIS_NODE #the device name is basically what your ifconfig shows 

Далее вам нужно проверить, является ли узел шлюза фактически пересылки пакетов. Для этого вам необходимо отредактировать файл /etc/sysctl.conf (этот файл находится в другом пути по мере изменения вашего дистрибутива Linux). Чтобы окончательно установить IP Forwarding on, вам придется изменить значение

net.ipv4.ip_forward=1 # if it '0' set as '1' and restart the network. 

Для временного настройки IP вперед on, вы можете запустить (будет вернуться к старому значению после перезагрузки)

sysctl -w net.ipv4.ip_forward=1 

 Смежные вопросы

  • Нет связанных вопросов^_^