Как запустить Drillbit локально в распределенном режиме?

Я скачал Apache Drill v1.8, отредактировал conf/drill-override.conf, чтобы внести следующие изменения:

drill.exec: {
  cluster-id: "drillbits1",
  zk.connect: "10.178.23.140:2181,10.178.23.140:2182,10.178.23.140:2183,10.178.23.140:2184"
}

.. кластер Zookeeper фактически состоит из 4 экземпляров Zookeeper, запущенных на одном компьютере, на котором я пытаюсь запустить Drill. (т. е. я использую только одну машину для кластера Apache Drill и Zookeeper, IP-адрес машины 10.178.23.140)

Поэтому я продолжаю получать эту ошибку:

Exception in thread "main" org.apache.drill.exec.exception.DrillbitStartupException: Failure during initial startup of Drillbit.
    at org.apache.drill.exec.server.Drillbit.start(Drillbit.java:295)
    at org.apache.drill.exec.server.Drillbit.start(Drillbit.java:271)
    at org.apache.drill.exec.server.Drillbit.main(Drillbit.java:267)
Caused by: org.apache.drill.exec.exception.DrillbitStartupException: Drillbit is disallowed to bind to loopback address in distributed mode.
    at org.apache.drill.exec.service.ServiceEngine.checkLoopbackAddress(ServiceEngine.java:186)
    at org.apache.drill.exec.service.ServiceEngine.start(ServiceEngine.java:146)
    at org.apache.drill.exec.server.Drillbit.run(Drillbit.java:119)
    at org.apache.drill.exec.server.Drillbit.start(Drillbit.java:291)
    ... 2 more

Почему Drillbit жалуется на привязку к петлевому адресу?!

  1. Я не настроил IP-адрес для привязки Drillbit!
  2. И поскольку я запускаю процесс Drillbit на своей машине, к какому другому IP-адресу моя машина будет пытаться привязаться?!

person Muhammad Gelbana    schedule 09.11.2016    source источник


Ответы (1)


Проблема заключалась в том, что в моем файле /etc/hosts была эта запись

127.0.1.1   mgelbana-machine

Это сделало мое имя хоста разрешимым в петлевом адресе. Чтобы решить эту проблему, вы можете выполнить одно из следующих действий.

  • Удаление этой строки решило мою проблему.
  • Разрешение моего имени хоста на IP-адрес без обратной связи.

Источник

private void checkLoopbackAddress(String address) throws DrillbitStartupException, UnknownHostException {
  if (isDistributedMode && InetAddress.getByName(address).isLoopbackAddress()) {
    throw new DrillbitStartupException("Drillbit is disallowed to bind to loopback address in distributed mode.");
  }
}

Причина, по которой Drill отказывается запускаться при привязке к петлевому адресу, заключается в том, чтобы различить узлы Drill. зарегистрирован в Zookeeper.

person Muhammad Gelbana    schedule 13.11.2016