Билайн не может подключиться к удаленному компьютеру

Обновлено: 02.07.2024

Сервер Thrift JDBC/ODBC — Spark Thrift Server (STS)

Thrift JDBC/ODBC Server (также известный как Spark Thrift Server или STS) — это порт Spark SQL сервера HiveServer2 Apache Hive, который позволяет клиентам JDBC/ODBC выполнять запросы SQL через JDBC. и протоколы ODBC в Apache Spark.

С помощью Spark Thrift Server бизнес-пользователи могут работать со своими блестящими инструментами бизнес-аналитики (BI), например. Tableau или Microsoft Excel и подключитесь к Apache Spark с помощью интерфейса ODBC. Благодаря этому распределенные возможности механизма запросов Spark SQL в памяти (со всеми оптимизациями запросов Catalyst, которые вам наверняка очень нравятся) используются в средах, которые изначально были «отключены».

Кроме того, SQL-запросы в Spark Thrift Server используют один и тот же SparkContext, что помогает еще больше повысить производительность SQL-запросов с использованием одних и тех же источников данных.

Spark Thrift Server — это автономное приложение Spark, которое вы запускаете с помощью start-thriftserver.sh и прекращаете использовать сценарии оболочки stop-thriftserver.sh.

Spark Thrift Server имеет собственную вкладку в веб-интерфейсе — сервер JDBC/ODBC доступен по адресу /sqlserver URL.

spark thriftserver webui. jpg

Используйте инструмент командной строки beeline, SQL-клиент SQuirreL или Spark SQL DataSource API для подключения к Spark Thrift Server через интерфейс JDBC.

Spark Thrift Server расширяет параметры командной строки spark-submit с помощью --hiveconf [prop=value] .

Вы должны включить профиль сборки hive-thriftserver, чтобы включить Spark Thrift Server в свою сборку.

Включите уровни ведения журнала INFO или DEBUG для регистраторов org.apache.spark.sql.hive.thriftserver и org.apache.hive.service.server, чтобы видеть, что происходит внутри.

Добавьте следующую строку в conf/log4j.properties:

Запуск сервера Thrift JDBC/ODBC — start-thriftserver.sh

Вы можете запустить сервер Thrift JDBC/ODBC с помощью сценария оболочки ./sbin/start-thriftserver.sh.

При включенном уровне ведения журнала INFO при выполнении скрипта вы должны увидеть в журналах следующие сообщения INFO:

Внутренне сценарий start-thriftserver.sh отправляет на выполнение отдельное приложение org.apache.spark.sql.hive.thriftserver.HiveThriftServer2 (используя spark-submit).

Использование Beeline JDBC Client для подключения к серверу Spark Thrift

beeline — это инструмент командной строки, который позволяет получить доступ к Spark Thrift Server с помощью интерфейса JDBC в командной строке. Он включен в дистрибутив Spark в каталоге bin.

Вы можете подключиться к Spark Thrift Server с помощью команды подключения следующим образом:

При подключении в незащищенном режиме просто введите имя пользователя на своем компьютере и пустой пароль.

После подключения вы можете отправлять запросы SQL (как если бы Spark SQL был базой данных, совместимой с JDBC).

Подключение к Spark Thrift Server с помощью SQuirreL SQL Client 3.7.1

Spark Thrift Server обеспечивает удаленный доступ к Spark SQL с использованием протокола JDBC.

Клиент SQuirreL SQL — это клиент Java SQL для баз данных, совместимых с JDBC.

Запустите клиент с помощью java -jar squirrel-sql.jar .

spark thriftserver белка. jpg

Сначала необходимо настроить драйвер JDBC для Spark Thrift Server. Spark Thrift Server использует зависимость org.spark-project.hive:hive-jdbc:1.2.1.spark2, которая является драйвером JDBC (который также загружает транзитивные зависимости).

Сервер Spark Thrift

Дополнительный путь к классу

Все JAR-файлы вашего дистрибутива Spark

spark thriftserver белка adddriver.jpg

Определив драйвер Hive JDBC, вы можете подключиться к Spark SQL Thrift Server.

spark thriftserver белка addalias.jpg

Поскольку вы не указали базу данных для использования, используется Spark SQL по умолчанию.

spark thriftserver белка метаданные.jpg

Ниже показан SQL-запрос для отображения таблиц в SQuirrel SQL Client, выполненный в Spark SQL через Spark Thrift Server.

 Spark ThriftServer Squirrel Show Tables.jpg

Использование API Spark SQL DataSource для подключения к Spark Thrift Server

Поначалу может показаться довольно искусственной настройка доступа к Spark Thrift Server с использованием Spark SQL DataSource API, т. е. метода jdbc DataFrameReader.

При выполнении в локальном режиме Spark Thrift Server и spark-shell попытаются получить доступ к одному и тому же каталогу Hive Warehouse, что неизбежно приведет к ошибке.

Используйте spark.sql.warehouse.dir, чтобы указать другой каталог для spark-shell .

Вы также не должны использовать один и тот же домашний каталог между ними, так как metastore_db становится проблемой.

Apache Beeline — это клиент Hive, включенный в головные узлы вашего кластера HDInsight. В этой статье описывается, как подключиться к клиенту Beeline, установленному в вашем кластере HDInsight, через различные типы подключений. Также обсуждается, как установить клиент Билайн локально.

Типы соединений

Из сеанса SSH

При подключении из сеанса SSH к головному узлу кластера вы можете затем подключиться к адресу узла головного узла через порт 10001:

Через виртуальную сеть Azure

При подключении клиента к HDInsight через виртуальную сеть Azure необходимо указать полное доменное имя (FQDN) головного узла кластера. Поскольку это подключение осуществляется непосредственно к узлам кластера, для подключения используется порт 10001:

Замените полным доменным именем головного узла кластера. Чтобы найти полное доменное имя головного узла, используйте информацию в разделе Управление HDInsight с помощью документа Apache Ambari REST API.

В кластер HDInsight Enterprise Security Package (ESP) с помощью Kerberos

При подключении клиента к кластеру Enterprise Security Package (ESP), присоединенному к Azure Active Directory (AAD)-DS на компьютере в той же области кластера, необходимо также указать доменное имя и имя домена. учетная запись пользователя с разрешениями на доступ к кластеру:

Чтобы найти URL-адрес JDBC в Ambari:

Используйте буфер обмена, чтобы скопировать URL-адрес JDBC HiveServer2.

На общедоступных или частных конечных точках

или для частной конечной точки:

Частные конечные точки указывают на базовый балансировщик нагрузки, доступ к которому возможен только из виртуальных сетей, находящихся в том же регионе. См. дополнительные сведения об ограничениях глобального пиринга виртуальной сети и балансировщиков нагрузки. Вы можете использовать команду curl с параметром -v для устранения любых проблем с подключением к общедоступным или частным конечным точкам перед использованием beeline.

Используйте Beeline с Apache Spark

Apache Spark предоставляет собственную реализацию HiveServer2, которую иногда называют сервером Spark Thrift. Эта служба использует Spark SQL для разрешения запросов вместо Hive. И может обеспечить лучшую производительность в зависимости от вашего запроса.

Через общедоступные или частные конечные точки

или для частной конечной точки:

Частные конечные точки указывают на базовый балансировщик нагрузки, доступ к которому возможен только из виртуальных сетей, находящихся в том же регионе. См. дополнительные сведения об ограничениях глобального пиринга виртуальной сети и балансировщиков нагрузки. Вы можете использовать команду curl с параметром -v для устранения любых проблем с подключением к общедоступным или частным конечным точкам перед использованием beeline.

Из головы кластера или внутри виртуальной сети Azure с Apache Spark

При подключении напрямую из головного узла кластера или из ресурса в той же виртуальной сети Azure, что и кластер HDInsight, для сервера Spark Thrift следует использовать порт 10002 вместо 10001 . В следующем примере показано, как напрямую подключиться к головному узлу:

Установить клиент Билайн

Несмотря на то, что Beeline входит в состав головных узлов, вы можете установить его локально. Шаги установки для локального компьютера основаны на подсистеме Windows для Linux.

Обновление списков пакетов. Введите следующую команду в оболочке bash:

Установите Java, если она не установлена. Вы можете проверить это командой Java.

Если пакет Java не установлен, введите следующую команду:

Откройте файл bashrc (часто находится в ~/.bashrc): nano ~/.bashrc .

Внесите изменения в файл bashrc. Добавьте следующую строку в конец файла:

Затем нажмите Ctrl+X, затем Y и введите.

Скачайте архивы Hadoop и Beeline, введите следующие команды:

Распаковать архивы, ввести следующие команды:

Внесите дополнительные изменения в файл bashrc. Вам нужно будет указать путь, по которому были распакованы архивы. Если вы используете подсистему Windows для Linux и точно следовали инструкциям, ваш путь будет /mnt/c/Users/user/ , где user — ваше имя пользователя.

Откройте файл: nano ~/.bashrc

Измените приведенные ниже команды, указав соответствующий путь, а затем введите их в конце файла bashrc:

Затем нажмите Ctrl+X, затем Y и введите.

Закройте, а затем снова откройте сеанс bash.

Проверьте подключение. Используйте формат подключения из раздела «По общедоступным или частным конечным точкам» выше.

$ beeline -u jdbc:hive2://hostname:10000
сканирование завершается через 10 мс
Подключение к jdbc:hive2://hostname:10000
Ошибка: неверный URL-адрес: jdbc: hive2://hostname:10000 (state=08S01,code=0)
Beeline версии 0.10.0-cdh4.5.0 от Apache Hive
0: jdbc:hive2://hostname.c>

Возможно, вы уже подключились.

попробуйте команду показать базы данных;

Создано ‎07.02.2014, 06:48

  • Отметить как новое
  • Добавить в закладки
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу

Создано ‎07.02.2014, 08:40

  • Отметить как новое
  • Добавить в закладки
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу

Спасибо за помощь, Чжан.

Создано ‎09.04.2014, 10:28

  • Отметить как новое
  • Добавить в закладки
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу

также можно подключиться к билайн напрямую из bash

beeline -u "jdbc:hive2://hostname:10000/;principal=hive/_HOST@PRINCIPAL.COM"

Создано ‎10.11.2014, 11:32

  • Отметить как новое
  • Добавить в закладки
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу

Я могу подключиться к билайн вот так

Но когда я печатаю

!connect jdbc:hive2://hostname:10000/default org.apache.hive.jdbc.HiveDriver

или !connect jdbc:hive2://hostname:10000/default

После ввода имени пользователя и пароля
выдает ошибку

Я пытаюсь подключиться к Cognos с помощью этой строки подключения, но поскольку он не подключается к beeline с ip и портом, он не позволяет мне также подключиться в cognos, но без указания ip и порта, он отлично работает в beeline но по-прежнему выдает ошибку в cognos.


hive.server2.thrift.port
10000
Номер порта интерфейса HiveServer2 Thrift.
Можно переопределить, установив $HIVE_SERVER2_THRIFT_PORT


hive.server2.thrift.bind.host
Имя хоста
Привязать хост, на котором будет работать интерфейс HiveServer2 Thrift.
Можно переопределить, установив $HIVE_SERVER2_THRIFT_BIND_HOST


hive.metastore.uris
thrift://hostname:9083
Thrift uri для удаленного хранилища метаданных. Используется клиентом хранилища метаданных для подключения к удаленному хранилищу метаданных.


javax.jdo.option.ConnectionURL
jdbc:mysql://localmachineIP:3306/metastore
Строка подключения JDBC для хранилища метаданных JDBC


javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
Имя класса драйвера для хранилища метаданных JDBC

Создано ‎12.07.2018, 12:36

  • Отметить как новое
  • Добавить в закладки
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу

вы решили проблему

у меня такая же проблема, не могу написать пароль, сказали ошибка

пожалуйста, помогите мне, если ваш код работает, отправьте мне его

Создано 27.02.2019, 17:50

  • Отметить как новое
  • Добавить в закладки
  • Подписаться
  • Отключить звук
  • Отправить сообщение другу

Спасибо! У меня были проблемы с подключением к билайн, но мне помогло это решение

Hive поставляется с HiveServer2, который представляет собой серверный интерфейс и имеет собственный интерфейс командной строки (CLI) под названием Beeline, который используется для подключения к Hive, работающему на локальном или удаленном сервере, и выполнения запросов HiveQL. Beeline — клиент JDBC, основанный на SQLLine CLI. В этой статье вы узнаете, как подключиться к Hive с помощью Билайн на нескольких примерах.

С помощью Beeline мы можем подключиться к Hive, работающему на локальном или удаленном сервере, используя IP-адрес и порт.

Вам также может понравиться чтение

Запустите Beeline для подключения к Hive

Чтобы запустить Билайн, запустите оболочку beeline, которая находится в каталоге $HIVE_HOME/bin.

Это предложит вам перейти в интерактивную оболочку интерфейса командной строки Hive Beeline, где вы сможете запускать команды HiveQL.

Вы можете ввести !help в интерфейсе командной строки, чтобы получить все поддерживаемые команды.

Beeline может работать в режиме Embedded и удаленном режиме, во встроенном режиме он также запускает HiveServer2, встроенный внутри, аналогичный Hive CLI, а в удаленном режиме он подключается к удаленной службе HiveServer2 через Thrift.

Теперь давайте подключимся к HiveServer2 с помощью !connect и узнаем, как использовать встроенный и удаленный режимы на примерах.

Использование Beeline во встроенном режиме

Запуск во встроенном режиме — это быстрый способ подключиться к Hive с помощью Beeline и выполнить некоторые запросы HiveQL, это похоже на Hive CLI (более старая версия). Во встроенном режиме он запускает службу Hive (HiveServer2) внутри, поэтому его не рекомендуется использовать в рабочей среде.

Чтобы запустить Beeline во встроенном режиме и подключиться к Hive, используйте строку подключения !connect jdbc:hive2:// . При выполнении этой команды запрашивается имя пользователя и пароль. HiveServer2 по умолчанию предоставляет пользователя scott и пароль tiger, поэтому давайте воспользуемся этими учетными данными по умолчанию.

Примечание. Одно из основных различий между Hive CLI и HiveServer2 (HS2) заключается в том, что HS2 обеспечивает аутентификацию. Вы не можете подключиться к Hive без аутентификации.

Вы можете получить следующие ошибки

Кроме того, вы также можете указать встроенный URL-адрес и учетные данные в одном выражении.

Опция Beeline CLI -n используется для указания имени пользователя и -p для указания пароля.

Использование Beeline для подключения к Remote Hive

В удаленном режиме процесс HiveServer2 выполняется в удаленном кластере, и мы можем подключиться к удаленному Hive из Beeline, указав удаленный IP-адрес и порт в строке URL-адреса подключения JDBC.

Чтобы использовать подключение Beeline для удаления сервера, во-первых, вам необходимо запустить службу HiveServer2 на удаленном сервере, если она еще не запущена, запустите HiveServer2

Примечание. По умолчанию HiveServer2 работает на порту 10000.

Использование отдельной службы HiveSever2 позволяет нам настраивать различные типы аутентификации LDAP и Kerberos, поэтому для производства рекомендуется использовать подключение к Hive в удаленном режиме.

Это самый безопасный способ подключения к Hive и защиты производственных данных, поскольку пользователям не предоставляется доступ к кластеру.

Чтобы подключиться к Hive, работающему в удаленном кластере, просто передайте IP-адрес и порт в строке подключения JDBC.

Не предоставляя имя пользователя и пароль, он запрашивает учетные данные для ввода.

В случае, если вы работаете на ЛОКАЛЬНОМ, вы также можете попробовать использовать локальный хост, имя хоста или 127.0.0.1 вместо удаленного IP-адреса.

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

Вы также можете напрямую ввести команду Beeline из оболочки Unix. Дополнительные параметры команды см. в разделе Параметры Beeline

Читайте также: