天天看點

hadoop-2.2.0叢集上運作Hive 0.13 出錯的解決方案

ip位址

主機名

運作程序

192.168.1.104

cluster04

quorumpeermain(zookeeper程序) master(spark master程序) datanode journalnode resourcemanager(yanr資料總管) nodemanager worker

192.168.1.105

cluster05

namenode quorumpeermain(zookeeper程序) worker(spark worker程序) nodemanager datanode dfszkfailovercontroller(用于實作 namenode ha) journalnode

192.168.1.106

cluster06

namenode quorumpeermain(zookeeper程序) worker(spark worker程序) nodemanager datanode dfszkfailovercontroller(用于實作 namenode ha) journalnode

1.hive-site.xml配置如下:

caused by: com.mysql.jdbc.exceptions.jdbc4.communicationsexception: communications link failure

the last packet successfully received from the server was 1,436,796,147,606 milliseconds ago. the last packet sent successfully to the server was 0 milliseconds ago.

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:406)

at com.mysql.jdbc.sqlerror.createcommunicationsexception(sqlerror.java:1074)

at com.mysql.jdbc.mysqlio.(mysqlio.java:341)

at com.mysql.jdbc.connectionimpl.createnewio(connectionimpl.java:2137)

… 71 more

caused by: java.net.connectexception: connection timed out

at java.net.plainsocketimpl.socketconnect(native method)

at java.net.abstractplainsocketimpl.doconnect(abstractplainsocketimpl.java:339)

at java.net.abstractplainsocketimpl.connecttoaddress(abstractplainsocketimpl.java:200)

at java.net.abstractplainsocketimpl.connect(abstractplainsocketimpl.java:182)

at java.net.sockssocketimpl.connect(sockssocketimpl.java:392)

at java.net.socket.connect(socket.java:579)

at java.net.socket.connect(socket.java:528)

at java.net.socket.(socket.java:425)

at java.net.socket.(socket.java:241)

at com.mysql.jdbc.standardsocketfactory.connect(standardsocketfactory.java:253)

at com.mysql.jdbc.mysqlio.(mysqlio.java:290)

caused by: java.sql.sqlexception: unable to open a test connection to the given database. jdbc url = jdbc:mysql://192.168.1.109:3306/hive?=createdatabaseifnotexist=true, username = root. terminating connection pool (set lazyinit to true if you expect to start your database after your app). original exception: ——

com.mysql.jdbc.exceptions.jdbc4.communicationsexception: communications link failure

at com.mysql.jdbc.connectionimpl.createnewio(connectionimpl.java:2214)

at com.mysql.jdbc.connectionimpl.(connectionimpl.java:773)

at com.mysql.jdbc.jdbc4connection.(jdbc4connection.java:46)

at com.mysql.jdbc.connectionimpl.getinstance(connectionimpl.java:352)

at com.mysql.jdbc.nonregisteringdriver.connect(nonregisteringdriver.java:282)

at java.sql.drivermanager.getconnection(drivermanager.java:571)

at java.sql.drivermanager.getconnection(drivermanager.java:187)

at com.jolbox.bonecp.bonecp.obtainrawinternalconnection(bonecp.java:361)

at com.jolbox.bonecp.bonecp.(bonecp.java:416)

at com.jolbox.bonecp.bonecpdatasource.getconnection(bonecpdatasource.java:120)

at org.datanucleus.store.rdbms.connectionfactoryimplmanagedconnectionimpl.getconnection(connectionfactoryimpl.java:501)atorg.datanucleus.store.rdbms.rdbmsstoremanager.(rdbmsstoremanager.java:298)atsun.reflect.nativeconstructoraccessorimpl.newinstance0(nativemethod)atsun.reflect.nativeconstructoraccessorimpl.newinstance(nativeconstructoraccessorimpl.java:57)atsun.reflect.delegatingconstructoraccessorimpl.newinstance(delegatingconstructoraccessorimpl.java:45)atjava.lang.reflect.constructor.newinstance(constructor.java:526)atorg.datanucleus.plugin.nonmanagedpluginregistry.createexecutableextension(nonmanagedpluginregistry.java:631)atorg.datanucleus.plugin.pluginmanager.createexecutableextension(pluginmanager.java:301)atorg.datanucleus.nucleuscontext.createstoremanagerforproperties(nucleuscontext.java:1187)atorg.datanucleus.nucleuscontext.initialise(nucleuscontext.java:356)atorg.datanucleus.api.jdo.jdopersistencemanagerfactory.freezeconfiguration(jdopersistencemanagerfactory.java:775)atorg.datanucleus.api.jdo.jdopersistencemanagerfactory.createpersistencemanagerfactory(jdopersistencemanagerfactory.java:333)atorg.datanucleus.api.jdo.jdopersistencemanagerfactory.getpersistencemanagerfactory(jdopersistencemanagerfactory.java:202)atsun.reflect.nativemethodaccessorimpl.invoke0(nativemethod)atsun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57)atsun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43)atjava.lang.reflect.method.invoke(method.java:606)atjavax.jdo.jdohelper16.run(jdohelper.java:1965)

at java.security.accesscontroller.doprivileged(native method)

at javax.jdo.jdohelper.invoke(jdohelper.java:1960)

at javax.jdo.jdohelper.invokegetpersistencemanagerfactoryonimplementation(jdohelper.java:1166)

at javax.jdo.jdohelper.getpersistencemanagerfactory(jdohelper.java:808)

at javax.jdo.jdohelper.getpersistencemanagerfactory(jdohelper.java:701)

at org.apache.hadoop.hive.metastore.objectstore.getpmf(objectstore.java:309)

at org.apache.hadoop.hive.metastore.objectstore.getpersistencemanager(objectstore.java:338)

at org.apache.hadoop.hive.metastore.objectstore.initialize(objectstore.java:247)

at org.apache.hadoop.hive.metastore.objectstore.setconf(objectstore.java:222)

at org.apache.hadoop.util.reflectionutils.setconf(reflectionutils.java:73)

at org.apache.hadoop.util.reflectionutils.newinstance(reflectionutils.java:133)

at org.apache.hadoop.hive.metastore.rawstoreproxy.(rawstoreproxy.java:58)

at org.apache.hadoop.hive.metastore.rawstoreproxy.getproxy(rawstoreproxy.java:67)

at org.apache.hadoop.hive.metastore.hivemetastorehmshandler.newrawstore(hivemetastore.java:498)atorg.apache.hadoop.hive.metastore.hivemetastorehmshandler.getms(hivemetastore.java:476)

at org.apache.hadoop.hive.metastore.hivemetastorehmshandler.createdefaultdb(hivemetastore.java:524)atorg.apache.hadoop.hive.metastore.hivemetastorehmshandler.init(hivemetastore.java:398)

at org.apache.hadoop.hive.metastore.hivemetastore$hmshandler.(hivemetastore.java:357)

at org.apache.hadoop.hive.metastore.retryinghmshandler.(retryinghmshandler.java:54)

at org.apache.hadoop.hive.metastore.retryinghmshandler.getproxy(retryinghmshandler.java:59)

at org.apache.hadoop.hive.metastore.hivemetastore.newhmshandler(hivemetastore.java:4948)

at org.apache.hadoop.hive.metastore.hivemetastoreclient.(hivemetastoreclient.java:171)

at org.apache.hadoop.hive.metastore.metastoreutils.newinstance(metastoreutils.java:1410)

at org.apache.hadoop.hive.metastore.retryingmetastoreclient.(retryingmetastoreclient.java:62)

at org.apache.hadoop.hive.metastore.retryingmetastoreclient.getproxy(retryingmetastoreclient.java:72)

at org.apache.hadoop.hive.ql.metadata.hive.createmetastoreclient(hive.java:2444)

at org.apache.hadoop.hive.ql.metadata.hive.getmsc(hive.java:2456)

at org.apache.hadoop.hive.ql.session.sessionstate.start(sessionstate.java:338)

at org.apache.hadoop.hive.cli.clidriver.run(clidriver.java:681)

at org.apache.hadoop.hive.cli.clidriver.main(clidriver.java:625)

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.util.runjar.main(runjar.java:212)

… 58 more

… 72 more

嘗試n多種方案之後,嘗試将hive-site.xml中的ip位址修改為localhost,解決了該問題: