Uploaded image for project: 'Ambari'
  1. Ambari
  2. AMBARI-18583

Ambari Hive View 'Upload Table' does not support UTF8 files with BOM

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.2.2
    • 2.5.0
    • ambari-views
    • None

    Description

      PROBLEM: Ambari Hive view throws an E090 HiveClientFormattedException exception when trying to create a table via the 'Upload Table' function when the file contains the BOM for UTF8 (Byte Order Mark - 0xEF 0xBB 0xBF) . The same file has no problem being loaded when saved without the BOM (via Sublime Text). Deleting the contents of the first column heading and retyping it fixes the issue
      STEPS TO REPRODUCE: Download attached CSV file and try to upload table via Ambari 2.2.2 view.
      EXPECTED RESULT: Table previews correctly, so expected to be able to make the hive table
      ACTUAL RESULT: Ambari view throws the 'E090 HiveClientFormattedException' error, and the hiverserver2.log file throws the following error:

      2016-08-01 15:29:57,284 INFO [HiveServer2-Handler-Pool: Thread-32]: parse.ParseDriver (ParseDriver.java:parse(185)) - Parsing command: create table recordsView2 (�nengetu INT, kanji STRING) STORED AS ORC
      2016-08-01 15:29:57,285 ERROR [HiveServer2-Handler-Pool: Thread-32]: ql.Driver (SessionState.java:printError(932)) - FAILED: ParseException line 1:27 character '�' not supported here
      org.apache.hadoop.hive.ql.parse.ParseException: line 1:27 character '�' not supported here
      at org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:211)
      at org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:166)
      at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:428)
      at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:316)
      at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1181)
      at org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:1175)
      at org.apache.hive.service.cli.operation.SQLOperation.prepare(SQLOperation.java:110)
      at org.apache.hive.service.cli.operation.SQLOperation.runInternal(SQLOperation.java:181)
      at org.apache.hive.service.cli.operation.Operation.run(Operation.java:257)
      at org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementInternal(HiveSessionImpl.java:419)
      at org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementAsync(HiveSessionImpl.java:406)
      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:606)
      at org.apache.hive.service.cli.session.HiveSessionProxy.invoke(HiveSessionProxy.java:78)
      at org.apache.hive.service.cli.session.HiveSessionProxy.access$000(HiveSessionProxy.java:36)
      at org.apache.hive.service.cli.session.HiveSessionProxy$1.run(HiveSessionProxy.java:63)
      at java.security.AccessController.doPrivileged(Native Method)
      at javax.security.auth.Subject.doAs(Subject.java:415)
      at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
      at org.apache.hive.service.cli.session.HiveSessionProxy.invoke(HiveSessionProxy.java:59)
      at com.sun.proxy.$Proxy19.executeStatementAsync(Unknown Source)
      at org.apache.hive.service.cli.CLIService.executeStatementAsync(CLIService.java:274)
      at org.apache.hive.service.cli.thrift.ThriftCLIService.ExecuteStatement(ThriftCLIService.java:486)
      at org.apache.hive.service.cli.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1317)
      at org.apache.hive.service.cli.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1302)
      at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
      at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
      at org.apache.hive.service.auth.TSetIpAddressProcessor.process(TSetIpAddressProcessor.java:56)
      at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:285)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      at java.lang.Thread.run(Thread.java:745)

      Attachments

        1. AMBARI-18583_branch-2.5.patch
          6 kB
          Nitiraj Singh Rathore

        Issue Links

          Activity

            People

              nitiraj.rathore Nitiraj Singh Rathore
              nitiraj.rathore Nitiraj Singh Rathore
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: