Версия My Hive - 1.1.0, а spark - 1.6.0. Нет проблем с подключением.Я могу сделать соединение успешным.
После подключения при импорте данных или создании канала передачи данных с использованием подключения куста я вижу имя базы данных и принадлежащие ей таблицы, но получаю ошибку (java.lang.IllegalArgumentException: java.net.UnknownHostException: xxx-nameservice
) при извлечении данных из таблицы.Ниже приведен мой код:
val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc)
hiveContext.setConf("hive.metastore.uris", prop.getProperty("hive.metastore.uris"))
hiveContext.setConf("hive.metastore.sasl.enabled", prop.getProperty("hive.metastore.sasl.enabled"))
hiveContext.setConf("hive.security.authorization.enabled", prop.getProperty("hive.security.authorization.enabled"))
hiveContext.setConf("hive.metastore.kerberos.principal", prop.getProperty("hive.metastore.kerberos.principal"))
hiveContext.setConf("hive.metastore.execute.setugi", prop.getProperty("hive.metastore.execute.setugi"))
hiveContext.sql("use abc")
hiveContext.sql("show tables").show(4) // This is working
hiveContext.sql("select * from abc.tab1 limit 10").show(2)
Ниже приводится проблема:
java.lang.IllegalArgumentException: java.net.UnknownHostException: xxx-nameservice на org.apache.hadoop.security.SecurityUtil.buildTokenService (SecurityUtil.java:406) в org.apache.hadoop.hdfs.NameNodeProxies.createNonHAProxy (NameNodeProxies.java:310) в org.apache.hadoop.hdfs.NameNodeProxies.createProxy: имя_узла или в узле NameNodeapache.hadoop.hdfs.DFSClient. (DFSClient.java:728) в org.apache.hadoop.hdfs.DFSClient. (DFSClient.java:671) в org.apache.hadoop.hdfs.DistributedFileSystem.initialize (DistributedFileSystem.ystem).155) в org.apache.hadoop.fs.FileSystem.createFileSystem (FileSystem.java:2800) в org.apache.hadoop.fs.FileSystem.access $ 200 (FileSystem.java:98) в org.apache.hadoop.fs.FileSystem $ Cache.getInternal (FileSystem.java:2837) в org.apache.hadoop.fs.FileSystem $ Cache.get (FileSystem.java:2819) в org.apache.hadoop.fs.FileSystem.get (FileSystem.java:387) в org.apache.hadoop.fs.Path.getFileSystem (Path.java: 296) в org.apache.hadoop.mapreduce.security.TokenCache.obtainTokensForNamenodesInternal (TokenCache.java:97) в org.apache.hadoop.mapreduce.security.TokenCache.obtainTokensForNamenodes (Tokenapache.g.hadoop.mapred.FileInputFormat.listStatus (FileInputFormat.java:206) на org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat.listStatus (AvroContainerInputFormat.java:42) на org.apache.hadoopInputgetSplits (FileInputFormat.java:315) в org.apache.spark.rdd.HadoopRDD.getPartitions (HadoopRDD.scala: 202) в org.apache.spark.rdd.RDD $$ anonfun $ разделов $ 2.apply (RDD.scala:239) в org.apache.spark.rdd.RDD $$ anonfun $ partitions $ 2.apply (RDD.scala: 237) в scala.Option.getOrElse (Option.scala: 120) в org.apache.spark.rdd.RDD.partitions (RDD.scala: 237) в org.apache.spark.rdd.MapPartitionsRDD.getPartitions (MapPartitionsRDD.scala: 35) в org.apache.spark.rdd.RDD $$ anonfun $ partitions $ 2.apply (RDD.scala: 239)