Presto-CLI java.net.SocketException: соединение отказано в GCP - PullRequest
0 голосов
/ 06 декабря 2018

Я создал кластер dataproc, используя бета-версию gcloud с необязательным компонентом presto.

gcloud beta dataproc clusters create presto-test --optional-components=PRESTO --image-version=1.3-deb9

Когда я пытаюсь выполнить приведенную ниже команду для доступа к каталогу кустов, он может успешно открыть presto-cli.

./presto \
    --server presto-cluster-m-0:8080 \
    --socks-proxy localhost:1080 \
    --catalog hive \
    --schema default 

Но я получаю ошибку ниже, когда запрашиваю через presto-cli.

presto: default> show tables;

Ошибка при выполнении команды: java.net.SocketException: соединение отклонено (соединение отклонено)

Любая помощь в этом будет оценена

1 Ответ

0 голосов
/ 06 декабря 2018

Может потребоваться несколько незначительных исправлений в настройках соединения.

  • Presto работает на порте 8060 при работе в качестве дополнительного компонента
  • Команда создания кластера не создалакластеризация в режиме HA, поэтому имя хоста мастера просто -m, а не -m-0

Если ваш кластер называется presto-test, то команда должна выглядеть следующим образом:

./presto \
--server presto-test-m:8060 \
--socks-proxy localhost:1080 \
--catalog hive \
--schema default 

Если это не сработает, вы можете дважды проверить правильность работы прокси-серверов socks и Presto.

  1. Run curl -I -x socks5h://localhost:1080 presto-test-m:8088 - он должен вернуть HTTP 302.Если вы получили сообщение об отказе в соединении или хост не найден, ваш прокси-сервер socks работает неправильно.

  2. Запустите gcloud beta dataproc clusters describe presto-test и убедитесь, что в выходных данных отображаются следующие строки

    softwareConfig:
      optionalComponents:
      - PRESTO
    
  3. Ssh в главный узел кластера Presto и запустите which presto и sudo systemctl status presto, чтобы убедиться, что Presto установлен и работает.

Существует известная проблема, когда Presto может потерпеть неудачудолжен быть установлен, если указан как дополнительный компонент (в этом случае шаги 2 и 3 выше показывают, что Presto не активирован в кластере).Это должно быть исправлено в следующем выпуске Dataproc - если вы сейчас сталкиваетесь с этой проблемой, попробуйте использовать эту команду вместо этого для создания кластера:

gcloud beta dataproc clusters create presto-test --properties dataproc:dataproc.components.activate=presto --image-version=1.3-deb9
...