Конфигурация ODBC для подключения к Spark Thrift Server

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

Я настроил Spark Thrift Server, работающий с настройками по умолчанию. Версия Spark 2.1 и работает на YARN (Hadoop 2.7.3)

Дело в том, что я не могу настроить ни драйвер ODBC для Simba Hive, ни драйвер Microsoft, чтобы успешно выполнить тест в настройке ODBC.

Вот конфигурацию, которую я использую для драйвера ODBC для Microsoft Hive:

Когда я нажимаю кнопку "Тест", отображается следующее сообщение об ошибке:

В журналах Spark Thrift Server видно следующее:

17/09/15 17:31:36 INFO ThriftCLIService: Client protocol version: HIVE_CLI_SERVICE_PROTOCOL_V1
17/09/15 17:31:36 INFO SessionState: Created local directory: /tmp/00abf145-2928-4995-81f2-fea578280c42_resources
17/09/15 17:31:36 INFO SessionState: Created HDFS directory: /tmp/hive/test/00abf145-2928-4995-81f2-fea578280c42
17/09/15 17:31:36 INFO SessionState: Created local directory: /tmp/vagrant/00abf145-2928-4995-81f2-fea578280c42
17/09/15 17:31:36 INFO SessionState: Created HDFS directory: /tmp/hive/test/00abf145-2928-4995-81f2-fea578280c42/_tmp_space.db
17/09/15 17:31:36 INFO HiveSessionImpl: Operation log session directory is created: /tmp/vagrant/operation_logs/00abf145-2928-4995-81f2-fea578280c42
17/09/15 17:31:36 INFO SparkExecuteStatementOperation: Running query 'set -v' with 82d7f9a6-f2a6-4ebd-93bb-5c8da1611f84
17/09/15 17:31:36 INFO SparkSqlParser: Parsing command: set -v
17/09/15 17:31:36 INFO SparkExecuteStatementOperation: Result Schema: StructType(StructField(key,StringType,false), StructField(value,StringType,false), StructField(meaning,StringType,false))

Если я подключаюсь с помощью драйвера JDBC с помощью Beeline (который работает нормально), это журналы:

17/09/15 17:04:24 INFO ThriftCLIService: Client protocol version: HIVE_CLI_SERVICE_PROTOCOL_V8
17/09/15 17:04:24 INFO SessionState: Created HDFS directory: /tmp/hive/test
17/09/15 17:04:24 INFO SessionState: Created local directory: /tmp/c0681d6f-cc0f-40ae-970d-e3ea366aa414_resources
17/09/15 17:04:24 INFO SessionState: Created HDFS directory: /tmp/hive/test/c0681d6f-cc0f-40ae-970d-e3ea366aa414
17/09/15 17:04:24 INFO SessionState: Created local directory: /tmp/vagrant/c0681d6f-cc0f-40ae-970d-e3ea366aa414
17/09/15 17:04:24 INFO SessionState: Created HDFS directory: /tmp/hive/test/c0681d6f-cc0f-40ae-970d-e3ea366aa414/_tmp_space.db
17/09/15 17:04:24 INFO HiveSessionImpl: Operation log session directory is created: /tmp/vagrant/operation_logs/c0681d6f-cc0f-40ae-970d-e3ea366aa414
17/09/15 17:04:24 INFO SparkSqlParser: Parsing command: use default
17/09/15 17:04:25 INFO HiveMetaStore: 1: get_database: default
17/09/15 17:04:25 INFO audit: ugi=vagrant   ip=unknown-ip-addr  cmd=get_database: default   
17/09/15 17:04:25 INFO HiveMetaStore: 1: Opening raw store with implemenation class:org.apache.hadoop.hive.metastore.ObjectStore
17/09/15 17:04:25 INFO ObjectStore: ObjectStore, initialize called
17/09/15 17:04:25 INFO Query: Reading in results for query "org.datanucleus.store.rdbms.query.SQLQuery@0" since the connection used is closing
17/09/15 17:04:25 INFO MetaStoreDirectSql: Using direct SQL, underlying DB is DERBY
17/09/15 17:04:25 INFO ObjectStore: Initialized ObjectStore

1 ответ

Решение

Мне удалось успешно подключиться, установив драйвер Microsoft Spark ODBC вместо Hive. Похоже, проблема была в том, что драйвер отказывался подключаться к Spark Thrift Server, когда обнаружил, что это не сервер Hive2, основанный на каком-либо свойстве сервера. Я сомневаюсь, что существуют реальные различия на уровне проводов между Hive2 и экономичным сервером Spark, поскольку последний является портом первого без изменений на уровне протокола (Thrift), но в любом случае решение состоит в том, чтобы перейти к этому драйверу и настроить это так же, как Hive2:

Драйвер Microsoft® Spark ODBC

Другие вопросы по тегам