2014-11-17 5 views
0

Когда я пытаюсь подключиться MySQL удаленно (из DataNode в Hadoop-2.5.1 кластере) с ульем он бросает errot:MySQL с ульем

Caused by: java.sql.SQLException: Unable to open a test connection to the given database. JDBC url = jdbc:mysql://192.168.4.43:3306/metastore ? createDatabaseIfNotExist=true, username = root. Terminating connection pool. Original Exception: ------ 
java.sql.SQLException: null, message from server: "Host 'ravi' is not allowed to connect to this MySQL server" 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975) 
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1110) 
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2483) 
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2516) 
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2301) 
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:834) 
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47) 
    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) org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:72) 
    at org.apache.hadoop.hive.ql.metadata.Hive.createMetaStoreClient(Hive.java:2372) 
    at org.apache.hadoop.hive.ql.metadata.Hive.getMSC(Hive.java:2383) 
    at org.apache.hadoop.hive.ql.metadata.Hive.getDatabase(Hive.java:1139) 
Caused by: java.sql.SQLException: null, message from server: "Host 'ravi' is not allowed to connect to this MySQL server" 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975) 
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1110) 
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2483)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) 
14/11/17 14:06:53 INFO ql.Driver: </PERFLOG method=task.DDL.Stage-0 start=1416213412561 end=1416213413277 duration=716> 
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient 
14/11/17 14:06:53 ERROR ql.Driver: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient 

пожалуйста, если кто-нибудь есть решение пусть я знаю. заранее спасибо

ответ

1

Вы должны создать новую MySQL пользователя для Рави из командной строки, как показано ниже:

CREATE USER 'ravi'@'localhost' IDENTIFIED BY 'password'; 
GRANT ALL PRIVILEGES ON *.* TO 'ravi'@'localhost' WITH GRANT OPTION; 
CREATE USER 'ravi'@'%' IDENTIFIED BY 'password'; 
GRANT ALL PRIVILEGES ON *.* TO 'ravi'@'%' WITH GRANT OPTION; 

Изменить соответствующие значения, как в вашей среде, и повторите запрос с улья.

+0

Вы не указали, какая командная строка –

+0

ofcourse mysql при запуске из командной строки :) – SMA

+0

Я получаю такую ​​ошибку от mysql: mysql> CREATE USER 'ravi'@'192.168.4.43' IDENTIFIED BY 'root'; ОШИБКА 1396 (HY000): операция CREATE USER не выполнена для 'ravi'@'192.168.4.43' –