zoukankan      html  css  js  c++  java
  • hive创建表带中文注释报错解决方法

    hive创建带有中文注释的表报错;

    FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:javax.jdo.JDODataStoreException: Transaction failed to commit
            at org.datanucleus.api.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:451)
            at org.datanucleus.api.jdo.JDOTransaction.rollback(JDOTransaction.java:186)
            at org.apache.hadoop.hive.metastore.ObjectStore.rollbackTransaction(ObjectStore.java:444)
            at org.apache.hadoop.hive.metastore.ObjectStore.createTable(ObjectStore.java:746)
            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.hadoop.hive.metastore.RawStoreProxy.invoke(RawStoreProxy.java:108)
            at com.sun.proxy.$Proxy0.createTable(Unknown Source)
            at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.create_table_core(HiveMetaStore.java:1270)
            at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.create_table_with_environment_context(HiveMetaStore.java:1303)
            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.hadoop.hive.metastore.RetryingHMSHandler.invoke(RetryingHMSHandler.java:106)
            at com.sun.proxy.$Proxy12.create_table_with_environment_context(Unknown Source)
            at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Processor$create_table_with_environment_context.getResult(ThriftHiveMetastore.java:8016)
            at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Processor$create_table_with_environment_context.getResult(ThriftHiveMetastore.java:8000)
            at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
            at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
            at org.apache.hadoop.hive.metastore.TSetIpAddressProcessor.process(TSetIpAddressProcessor.java:48)
            at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:244)
            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)
    NestedThrowablesStackTrace:
    Exception thrown flushing changes to datastore
    org.datanucleus.exceptions.NucleusDataStoreException: Exception thrown flushing changes to datastore
            at org.datanucleus.store.rdbms.SQLController$1.transactionFlushed(SQLController.java:708)
            at org.datanucleus.store.connection.AbstractManagedConnection.transactionFlushed(AbstractManagedConnection.java:86)
            at org.datanucleus.store.connection.ConnectionManagerImpl$2.transactionFlushed(ConnectionManagerImpl.java:454)
            at org.datanucleus.TransactionImpl.flush(TransactionImpl.java:203)
            at org.datanucleus.TransactionImpl.rollback(TransactionImpl.java:420)
            at org.datanucleus.api.jdo.JDOTransaction.rollback(JDOTransaction.java:182)
            at org.apache.hadoop.hive.metastore.ObjectStore.rollbackTransaction(ObjectStore.java:444)
            at org.apache.hadoop.hive.metastore.ObjectStore.createTable(ObjectStore.java:746)
            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.hadoop.hive.metastore.RawStoreProxy.invoke(RawStoreProxy.java:108)
            at com.sun.proxy.$Proxy0.createTable(Unknown Source)
            at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.create_table_core(HiveMetaStore.java:1270)
            at org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.create_table_with_environment_context(HiveMetaStore.java:1303)
            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.hadoop.hive.metastore.RetryingHMSHandler.invoke(RetryingHMSHandler.java:106)
            at com.sun.proxy.$Proxy12.create_table_with_environment_context(Unknown Source)
            at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Processor$create_table_with_environment_context.getResult(ThriftHiveMetastore.java:8016)
            at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Processor$create_table_with_environment_context.getResult(ThriftHiveMetastore.java:8000)
            at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
            at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
            at org.apache.hadoop.hive.metastore.TSetIpAddressProcessor.process(TSetIpAddressProcessor.java:48)
            at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:244)
            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)
    Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after statement closed.
            at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
            at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
            at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
            at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
            at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
            at com.mysql.jdbc.Util.getInstance(Util.java:386)
            at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013)
            at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
            at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
            at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
            at com.mysql.jdbc.StatementImpl.checkClosed(StatementImpl.java:447)
            at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1411)
            at com.jolbox.bonecp.StatementHandle.executeBatch(StatementHandle.java:424)
            at org.datanucleus.store.rdbms.ParamLoggingPreparedStatement.executeBatch(ParamLoggingPreparedStatement.java:372)
            at org.datanucleus.store.rdbms.SQLController.processConnectionStatement(SQLController.java:628)
            at org.datanucleus.store.rdbms.SQLController.processStatementsForConnection(SQLController.java:596)
            at org.datanucleus.store.rdbms.SQLController$1.transactionFlushed(SQLController.java:683)
            ... 30 more
    Nested Throwables StackTrace:
    

     character_set_database   需要设置成“latin1”

     修改数据库编码:

    mysql> set  character_set_database =latin1;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> show variables like '%char%';
    +--------------------------+----------------------------+
    | Variable_name            | Value                      |
    +--------------------------+----------------------------+
    | character_set_client     | utf8                       |
    | character_set_connection | utf8                       |
    | character_set_database   | latin1                     |
    | character_set_filesystem | binary                     |
    | character_set_results    | utf8                       |
    | character_set_server     | utf8                       |
    | character_set_system     | utf8                       |
    | character_sets_dir       | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+
    8 rows in set (0.00 sec)
    

    为了支持Hive建表时插入中文注释 需要在MySQL中做如下设置:

    use hive;

    //修改字段注释字符集
    alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;
    //修改表注释字符集
    alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
    //修改分区注释字符集
    alter table PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8;

    再次执行建表语句,成功!!!

    hive> create table page_view  
        > (  
        > page_id bigint comment '页面ID',  
        > page_name string comment '页面名称',  
        > page_url string comment '页面URL'  
        > )  
        > comment '页面视图'  
        > partitioned by (ds string comment '当前时间,用于分区字段')  
        > row format delimited  
        > stored as rcfile  
        > location '/user/hive/test'; 
    OK
    Time taken: 0.493 seconds
    hive> show tables;
    OK
    page_view
    Time taken: 0.057 seconds, Fetched: 1 row(s)
    hive> desc page_view;
    OK
    page_id                 bigint                  页面ID                
    page_name               string                  页面名称                
    page_url                string                  页面URL               
    ds                      string                  当前时间,用于分区字段         
                     
    # Partition Information          
    # col_name              data_type               comment             
                     
    ds                      string                  当前时间,用于分区字段         
    Time taken: 0.19 seconds, Fetched: 9 row(s)
    

     参考:http://blog.csdn.net/levy_cui/article/details/51646145

  • 相关阅读:
    day04
    day02
    day01
    ORM + 单例
    ORM框架SQLAlchemy
    存储引擎 , 索引 ,慢日志查询 , explain查询优化, 权限管理
    事务,视图 ,函数,存储过程,触发器
    pymysql 操作 , sql注入
    外键,高级操作
    mysql 基本操作
  • 原文地址:https://www.cnblogs.com/zwgblog/p/6064831.html
Copyright © 2011-2022 走看看