2017-09-15 3 views
1

Cette question peut sembler répétée, en fait, j'ai vu quelques questions liées à cela mais pas exactement avec la même erreur, donc je demande à voir si quelqu'un a un indice.Configuration ODBC pour se connecter au serveur Spark Thrift

J'ai configuré un serveur Spark Thrift Server avec les paramètres par défaut. La version Spark est 2.1 et fonctionne sur YARN (Hadoop 2.7.3)

Le fait est que je ne peux pas installer le pilote ODBC de la ruche Simba ni celui de Microsoft afin que le test dans l'installation ODBC réussisse.

C'est la config que je utilise pour le pilote ODBC Microsoft Hive:

enter image description here

Lorsque je clique sur le bouton de test, le message d'erreur affiché est le suivant:

enter image description here

Alors que dans les journaux du serveur Spark Thrift Server, on voit ce qui suit:

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)) 

Si je me connecte à l'aide du pilote JDBC au moyen de Beeline (qui fonctionne bien), ce sont les journaux:

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 "[email protected]" 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 

Répondre

0

Eh bien, je réussi à se connecter avec succès par l'installation du pilote ODBC Spark Microsoft au lieu de la Ruche . Il semblait que le problème était dû au fait que le pilote refusait de se connecter à Spark Thrift Server lorsqu'il découvrait que ce n'était pas un serveur Hive2 basé sur certaines propriétés du serveur. Je doute qu'il existe des différences réelles au niveau du câblage entre Hive2 et Spark Thrift Server car ce dernier est un port du premier sans changements au niveau du protocole (Thrift), mais dans tous les cas, la solution est de passer à ce pilote et de configurer de la même manière que le Ruche2:

Microsoft® Spark ODBC Driver