Uploaded image for project: 'Hive'
  1. Hive
  2. HIVE-7009

HIVE_USER_INSTALL_DIR could not bet set to non-HDFS filesystem

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.13.0
    • 0.14.0
    • Tez
    • None

    Description

      In hive/ql/exec/tez/DagUtils.java, we enforce the user path get from HIVE_USER_INSTALL_DIR to be HDFS. This makes it impossible to run Hive+Tez jobs on non-HDFS filesystem, e.g. WASB. Relevant code are as follows:

        public Path getDefaultDestDir(Configuration conf) throws LoginException, IOException {
          UserGroupInformation ugi = ShimLoader.getHadoopShims().getUGIForConf(conf);
          String userName = ShimLoader.getHadoopShims().getShortUserName(ugi);
          String userPathStr = HiveConf.getVar(conf, HiveConf.ConfVars.HIVE_USER_INSTALL_DIR);
          Path userPath = new Path(userPathStr);
          FileSystem fs = userPath.getFileSystem(conf);
          if (!(fs instanceof DistributedFileSystem)) {
            throw new IOException(ErrorMsg.INVALID_HDFS_URI.format(userPathStr));
          }
      

      Exceptions running jobs with defaultFs configured to WASB.

      2014-05-01 00:21:39,847 ERROR exec.Task (TezTask.java:execute(192)) - Failed to execute tez graph.
      java.io.IOException: wasb://hdi31-chuanliu@clhdistorage.blob.core.windows.net/user is not a hdfs uri
      	at org.apache.hadoop.hive.ql.exec.tez.DagUtils.getDefaultDestDir(DagUtils.java:662)
      	at org.apache.hadoop.hive.ql.exec.tez.DagUtils.getHiveJarDirectory(DagUtils.java:759)
      	at org.apache.hadoop.hive.ql.exec.tez.TezSessionState.createJarLocalResource(TezSessionState.java:321)
      	at org.apache.hadoop.hive.ql.exec.tez.TezSessionState.open(TezSessionState.java:159)
      	at org.apache.hadoop.hive.ql.exec.tez.TezTask.execute(TezTask.java:154)
      	at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:153)
      	at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:85)
      	at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1504)
      	at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1271)
      	at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1089)
      	at org.apache.hadoop.hive.ql.Driver.run(Driver.java:912)
      	at org.apache.hadoop.hive.ql.Driver.run(Driver.java:902)
      	at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:268)
      	at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:220)
      	at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:423)
      	at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:793)
      	at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:686)
      	at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:625)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:601)
      	at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
      

      Attachments

        1. HIVE-7009.patch
          2 kB
          Chuan Liu

        Issue Links

          Activity

            People

              chuanliu Chuan Liu
              chuanliu Chuan Liu
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: