Hi Michael, Thank you so much!!
I have tried to change the following key length from 256 to 255 and from 767 to 766, it still didn’t work alter table COLUMNS_V2 modify column COMMENT VARCHAR(255); alter table INDEX_PARAMS modify column PARAM_KEY VARCHAR(255); alter table SD_PARAMS modify column PARAM_KEY VARCHAR(255); alter table SERDE_PARAMS modify column PARAM_KEY VARCHAR(255); alter table TABLE_PARAMS modify column PARAM_KEY VARCHAR(255); alter table TBLS modify column OWNER VARCHAR(766); alter table PART_COL_STATS modify column PARTITION_NAME VARCHAR(766); alter table PARTITION_KEYS modify column PKEY_TYPE VARCHAR(766); alter table PARTITIONS modify column PART_NAME VARCHAR(766); I use Hadoop 2.4.1 HBase 0.98.5 Hive 0.13, trying Spark 1.0.2 and Shark 0.9.2, and JDK1.6_45. Some questions: shark-0.9.2 is based on which Hive version? is HBase 0.98.x OK? is Hive 0.13.1 OK? and which Java? (I use JDK1.6 at the moment, it seems not working) spark-1.0.2 is based on which Hive version? is HBase 0.98.x OK? Regards Arthur On 30 Aug, 2014, at 1:40 am, Michael Armbrust <mich...@databricks.com> wrote: > Spark SQL is based on Hive 12. They must have changed the maximum key size > between 12 and 13. > > > On Fri, Aug 29, 2014 at 4:38 AM, arthur.hk.c...@gmail.com > <arthur.hk.c...@gmail.com> wrote: > Hi, > > > Tried the same thing in HIVE directly without issue: > > HIVE: > hive> create table test_datatype2 (testbigint bigint ); > OK > Time taken: 0.708 seconds > > hive> drop table test_datatype2; > OK > Time taken: 23.272 seconds > > > > Then tried again in SPARK: > scala> val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc) > 14/08/29 19:33:52 INFO Configuration.deprecation: > mapred.reduce.tasks.speculative.execution is deprecated. Instead, use > mapreduce.reduce.speculative > hiveContext: org.apache.spark.sql.hive.HiveContext = > org.apache.spark.sql.hive.HiveContext@395c7b94 > > scala> val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc) > res0: org.apache.spark.sql.SchemaRDD = > SchemaRDD[0] at RDD at SchemaRDD.scala:104 > == Query Plan == > <Native command: executed by Hive> > > scala> hiveContext.hql("drop table test_datatype3") > > 14/08/29 19:34:14 ERROR DataNucleus.Datastore: An exception was thrown while > adding/validating class(es) : Specified key was too long; max key length is > 767 bytes > com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was > too long; max key length is 767 bytes > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) > at > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) > > 14/08/29 19:34:17 WARN DataNucleus.Query: Query for candidates of > org.apache.hadoop.hive.metastore.model.MPartition and subclasses resulted in > no possible candidates > Error(s) were found while auto-creating/validating the datastore for classes. > The errors are printed in the log, and are attached to this exception. > org.datanucleus.exceptions.NucleusDataStoreException: Error(s) were found > while auto-creating/validating the datastore for classes. The errors are > printed in the log, and are attached to this exception. > at > org.datanucleus.store.rdbms.RDBMSStoreManager$ClassAdder.verifyErrors(RDBMSStoreManager.java:3609) > > > Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: > Specified key was too long; max key length is 767 bytes > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) > at > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) > > 14/08/29 19:34:17 INFO DataNucleus.Datastore: The class > "org.apache.hadoop.hive.metastore.model.MFieldSchema" is tagged as > "embedded-only" so does not have its own datastore table. > 14/08/29 19:34:17 INFO DataNucleus.Datastore: The class > "org.apache.hadoop.hive.metastore.model.MOrder" is tagged as "embedded-only" > so does not have its own datastore table. > 14/08/29 19:34:17 INFO DataNucleus.Datastore: The class > "org.apache.hadoop.hive.metastore.model.MFieldSchema" is tagged as > "embedded-only" so does not have its own datastore table. > 14/08/29 19:34:17 INFO DataNucleus.Datastore: The class > "org.apache.hadoop.hive.metastore.model.MOrder" is tagged as "embedded-only" > so does not have its own datastore table. > 14/08/29 19:34:17 INFO DataNucleus.Datastore: The class > "org.apache.hadoop.hive.metastore.model.MFieldSchema" is tagged as > "embedded-only" so does not have its own datastore table. > 14/08/29 19:34:17 INFO DataNucleus.Datastore: The class > "org.apache.hadoop.hive.metastore.model.MOrder" is tagged as "embedded-only" > so does not have its own datastore table. > 14/08/29 19:34:25 ERROR DataNucleus.Datastore: An exception was thrown while > adding/validating class(es) : Specified key was too long; max key length is > 767 bytes > com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was > too long; max key length is 767 bytes > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) > > > Can anyone please help? > > Regards > Arthur > > > On 29 Aug, 2014, at 12:47 pm, arthur.hk.c...@gmail.com > <arthur.hk.c...@gmail.com> wrote: > >> (Please ignore if duplicated) >> >> >> Hi, >> >> I use Spark 1.0.2 with Hive 0.13.1 >> >> I have already set the hive mysql database to latine1; >> >> mysql: >> alter database hive character set latin1; >> >> Spark: >> scala> val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc) >> scala> hiveContext.hql("create table test_datatype1 (testbigint bigint )") >> scala> hiveContext.hql("drop table test_datatype1") >> >> >> 14/08/29 12:31:55 INFO DataNucleus.Datastore: The class >> "org.apache.hadoop.hive.metastore.model.MFieldSchema" is tagged as >> "embedded-only" so does not have its own datastore table. >> 14/08/29 12:31:55 INFO DataNucleus.Datastore: The class >> "org.apache.hadoop.hive.metastore.model.MOrder" is tagged as "embedded-only" >> so does not have its own datastore table. >> 14/08/29 12:31:55 INFO DataNucleus.Datastore: The class >> "org.apache.hadoop.hive.metastore.model.MFieldSchema" is tagged as >> "embedded-only" so does not have its own datastore table. >> 14/08/29 12:31:55 INFO DataNucleus.Datastore: The class >> "org.apache.hadoop.hive.metastore.model.MOrder" is tagged as "embedded-only" >> so does not have its own datastore table. >> 14/08/29 12:31:59 ERROR DataNucleus.Datastore: An exception was thrown while >> adding/validating class(es) : Specified key was too long; max key length is >> 767 bytes >> com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was >> too long; max key length is 767 bytes >> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) >> at >> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) >> at >> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) >> at java.lang.reflect.Constructor.newInstance(Constructor.java:513) >> at com.mysql.jdbc.Util.handleNewInstance(Util.java:408) >> at com.mysql.jdbc.Util.getInstance(Util.java:383) >> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1062) >> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4226) >> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4158) >> >> Can you please advise what would be wrong? >> >> Regards >> Arthur > >