hive常见问题及解决方法

Hive常见问题及解决方法

问题1:Specified key was too long; max key length is 1536 bytes

 

 

hive.log :  2018-01-05 13:31:29,072 ERROR [main]: DataNucleus.Datastore (Log4JLogger.java:error(115)) - An exception was thrown while adding/validating class(es) : Specified key was too long; max key length is 1536 bytes

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was too long; max key length is 1536 bytes

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

 

 

解决方案

在mysql机器的上运行: alter database hive character set latin1;

问题解决.

问题2:message from server: "Host '192.168.152.129' is not allowed to connect to this MySQL server"

分析:经排查应该是hive无法远程授权

 

--注意192.168.152.129 该ip换成自己的

grant all privileges on *.* to 'hive'@'192.168.152.129' identified by 'hive123';

flush privileges;

 

grant all privileges on *.* to 'hive'@'localhost' identified by 'hive123';

flush privileges;

 

grant all privileges on *.* to 'hive'@'%' identified by 'hive123';

flush privileges;

 

 

 

 

 

问题3:拒绝连接

on exception: java.net.ConnectException: 拒绝连接; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused

...

Caused by: java.net.ConnectException: Call From Qunar/127.0.0.1 to localhost:9000 failed on connection exception: java.net.ConnectException: 拒绝连接; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused

...

Caused by: java.net.ConnectException: 拒绝连接

at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)

at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)

at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)

at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:531)

at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:495)

at org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:614)

at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:712)

at org.apache.hadoop.ipc.Client$Connection.access$2900(Client.java:375)

at org.apache.hadoop.ipc.Client.getConnection(Client.java:1528)

at org.apache.hadoop.ipc.Client.call(Client.java:1451)

... 29 more

解决方案

有可能是Hadoop没有启动,使用jps查看一下当前进程发现:

~/opt/hive-2.1.0$ jps

7317 Jps

可以看见,我们确实没有启动Hadoop。开启Hadoop的NameNode和DataNode守护进程

问题4:缺少MySQL驱动包

问题描述

Caused by: org.datanucleus.store.rdbms.connectionpool.DatastoreDriverNotFoundException: The specified datastore driver ("com.mysql.jdbc.Driver") was not found in the CLASSPATH. Please check your CLASSPATH specification, and the name of the driver.

at org.datanucleus.store.rdbms.connectionpool.AbstractConnectionPoolFactory.loadDriver(AbstractConnectionPoolFactory.java:58)

at org.datanucleus.store.rdbms.connectionpool.BoneCPConnectionPoolFactory.createConnectionPool(BoneCPConnectionPoolFactory.java:54)

at org.datanucleus.store.rdbms.ConnectionFactoryImpl.generateDataSources(ConnectionFactoryImpl.java:213)

 

 

解决方案

上述问题很可能是缺少mysql的jar包,下载mysql-connector-java-5.1.32.tar.gz,复制到hive的lib目录下:

cp mysql-connector-java-5.1.34-bin.jar opt/hive-2.1.0/lib/

 

原文地址:https://www.cnblogs.com/llphhl/p/8847991.html