У меня есть сеть с каким-то странным (как я понимаю) DNS-сервером, который вызывает сбои в работе Hadoop или HBase.
Это разрешает мое имя хоста по некоторому адресу, о котором моя машина не знает (т.е. такого интерфейса нет).
Hadoop работает, если у меня есть следующие записи в / etc / hosts:
127.0.0.1 localhost
127.0.1.1 myhostname
Если запись "127.0.1.1 myhostname" отсутствует, загрузка файла в HDFS завершается неудачно и жалуется, что он может реплицировать файл только на 0 датододов вместо 1.
Но в этом случае HBase не работает: создание таблицы из оболочки HBase вызывает исключение NotAllMetaRegionsOnlineException (фактически вызванное попыткой HMaster связать неправильный адрес, возвращенный сервером DNS для myhostname).
В другой сети я использую следующий файл / etc / hosts:
127.0.0.1 localhost
192.168.1.1 myhostname
И Hadoop, и HBase работают.
Проблема в том, что во второй сети адрес является динамическим, и я не могу перечислить его в / etc / hosts для переопределения результата, возвращаемого странным DNS.
Hadoop запускается в псевдораспределенном режиме. HBase также работает на одном узле.
Изменение поведения DNS-сервера недоступно.
Изменение "localhost" на 127.0.0.1 в hbase / conf / regionservers ничего не меняет.
Может кто-нибудь предложить способ, как я могу переопределить его поведение при сохранении подключения к интернету (на самом деле я работаю на компьютере клиента через Teamviewer). Или каким-то образом настроить HBase (или Zookeeper, которым он управляет), чтобы не использовать имя хоста для определения адреса для привязки?