[ https://issues.apache.org/jira/browse/HIVE-14380?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16052223#comment-16052223 ]
Mithun Radhakrishnan commented on HIVE-14380: --------------------------------------------- bq. I have a related fix on the metastore server-side. Looks like my fix for the {{HiveMetaStore}} is obviated by HIVE-14688. I'll leave my fix out. > Queries on tables with remote HDFS paths fail in "encryption" checks. > --------------------------------------------------------------------- > > Key: HIVE-14380 > URL: https://issues.apache.org/jira/browse/HIVE-14380 > Project: Hive > Issue Type: Bug > Components: Encryption > Reporter: Mithun Radhakrishnan > Assignee: Mithun Radhakrishnan > Fix For: 2.2.0 > > Attachments: HIVE-14380.1.patch > > > If a table has table/partition locations set to remote HDFS paths, querying > them will cause the following IAException: > {noformat} > 2016-07-26 01:16:27,471 ERROR parse.CalcitePlanner > (SemanticAnalyzer.java:getMetaData(1867)) - > org.apache.hadoop.hive.ql.metadata.HiveException: Unable to determine if > hdfs://foo.ygrid.yahoo.com:8020/projects/my_db/my_table is encrypted: > java.lang.IllegalArgumentException: Wrong FS: > hdfs://foo.ygrid.yahoo.com:8020/projects/my_db/my_table, expected: > hdfs://bar.ygrid.yahoo.com:8020 > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.isPathEncrypted(SemanticAnalyzer.java:2204) > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.getStrongestEncryptedTablePath(SemanticAnalyzer.java:2274) > ... > {noformat} > This is because of the following code in {{SessionState}}: > {code:title=SessionState.java|borderStyle=solid} > public HadoopShims.HdfsEncryptionShim getHdfsEncryptionShim() throws > HiveException { > if (hdfsEncryptionShim == null) { > try { > FileSystem fs = FileSystem.get(sessionConf); > if ("hdfs".equals(fs.getUri().getScheme())) { > hdfsEncryptionShim = > ShimLoader.getHadoopShims().createHdfsEncryptionShim(fs, sessionConf); > } else { > LOG.debug("Could not get hdfsEncryptionShim, it is only applicable > to hdfs filesystem."); > } > } catch (Exception e) { > throw new HiveException(e); > } > } > return hdfsEncryptionShim; > } > {code} > When the {{FileSystem}} instance is created, using the {{sessionConf}} > implies that the current HDFS is going to be used. This call should instead > fetch the {{FileSystem}} instance corresponding to the path being checked. > A fix is forthcoming... -- This message was sent by Atlassian JIRA (v6.4.14#64029)