今天启动hive,想用squirrel-sql客户端连接hive,报错一直如下
2018-08-28 09:31:55,881 INFO [main]: service.AbstractService (AbstractService.java:start(104)) - Service:HiveServer2 is started.
2018-08-28 09:31:56,070 ERROR [Thread-7]: thrift.ThriftCLIService (ThriftBinaryCLIService.java:run(113)) - Error:
java.lang.NoSuchMethodError: org.apache.thrift.server.TThreadPoolServer$Args.requestTimeout(I)Lorg/apache/thrift/server/TThreadPoolServer$Args;
at org.apache.hive.service.cli.thrift.ThriftBinaryCLIService.run(ThriftBinaryCLIService.java:99)
at java.lang.Thread.run(Thread.java:748)
2018-08-28 09:31:56,074 INFO [Thread-3]: server.HiveServer2 (HiveStringUtils.java:run(623)) - SHUTDOWN_MSG:
/************************************************************
解决思路: 基本原因是jar包问题--libthrift-*.jar
先去$HIVE_HOME/logs下面看启动日志:
如果args=[],请检查hive-env.sh是否配置正确,以下是我的配置
# Set HADOOP_HOME to point to a specific hadoop install directory
# HADOOP_HOME=${bin}/../../hadoop
HADOOP_HOME=/home/ocetl/app/hadoop-2.5.0-cdh5.2.1
ZOOKEEPER_HOME=/home/ocetl/app/zookeeper-3.4.5-cdh5.8.0
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/home/ocetl/app/hive-0.13.1-cdh5.2.1/conf
export JAVA_HOME=/home/ocetl/app/jdk1.8.0_161
export HADOOP_HEAPSIZE=1024
export HIVE_HOME=/home/ocetl/app/hive-0.13.1-cdh5.2.1
export HIVE_AUX_JARS_PATH=/home/ocetl/app/hive-0.13.1-cdh5.2.1/lib
上面是正确的日志,下面是错误日志:
下面看下这两行的代码,这里的代码我反编译出来的:
public void run()
{
try
{
hiveAuthFactory = new HiveAuthFactory();
TTransportFactory transportFactory = hiveAuthFactory.getAuthTransFactory();
TProcessorFactory processorFactory = hiveAuthFactory.getAuthProcFactory(this);
String portString = System.getenv("HIVE_SERVER2_THRIFT_PORT");
if(portString != null)
portNum = Integer.valueOf(portString).intValue();
else
portNum = hiveConf.getIntVar(org.apache.hadoop.hive.conf.HiveConf.ConfVars.HIVE_SERVER2_THRIFT_PORT);
String hiveHost = System.getenv("HIVE_SERVER2_THRIFT_BIND_HOST");
if(hiveHost == null)
hiveHost = hiveConf.getVar(org.apache.hadoop.hive.conf.HiveConf.ConfVars.HIVE_SERVER2_THRIFT_BIND_HOST);
if(hiveHost != null && !hiveHost.isEmpty())
serverAddress = new InetSocketAddress(hiveHost, portNum);
else
serverAddress = new InetSocketAddress(portNum);
minWorkerThreads = hiveConf.getIntVar(org.apache.hadoop.hive.conf.HiveConf.ConfVars.HIVE_SERVER2_THRIFT_MIN_WORKER_THREADS);
maxWorkerThreads = hiveConf.getIntVar(org.apache.hadoop.hive.conf.HiveConf.ConfVars.HIVE_SERVER2_THRIFT_MAX_WORKER_THREADS);
workerKeepAliveTime = hiveConf.getTimeVar(org.apache.hadoop.hive.conf.HiveConf.ConfVars.HIVE_SERVER2_THRIFT_WORKER_KEEPALIVE_TIME, TimeUnit.SECONDS);
requestTimeout = hiveConf.getIntVar(org.apache.hadoop.hive.conf.HiveConf.ConfVars.HIVE_SERVER2_THRIFT_LOGIN_TIMEOUT);
String threadPoolName = "HiveServer2-Handler-Pool";
ExecutorService executorService = new ThreadPoolExecutor(minWorkerThreads, maxWorkerThreads, workerKeepAliveTime, TimeUnit.SECONDS, new SynchronousQueue(), new ThreadFactoryWithGarbageCleanup(threadPoolName));
TServerSocket serverSocket = null;
List sslVersionBlacklist = new ArrayList();
String arr$[] = hiveConf.getVar(org.apache.hadoop.hive.conf.HiveConf.ConfVars.HIVE_SSL_PROTOCOL_BLACKLIST).split(",");
int len$ = arr$.length;
for(int i$ = 0; i$ < len$; i$++)
{
String sslVersion = arr$[i$];
sslVersionBlacklist.add(sslVersion);
}
if(!hiveConf.getBoolVar(org.apache.hadoop.hive.conf.HiveConf.ConfVars.HIVE_SERVER2_USE_SSL))
{
serverSocket = HiveAuthFactory.getServerSocket(hiveHost, portNum);
} else
{
String keyStorePath = hiveConf.getVar(org.apache.hadoop.hive.conf.HiveConf.ConfVars.HIVE_SERVER2_SSL_KEYSTORE_PATH).trim();
if(keyStorePath.isEmpty())
throw new IllegalArgumentException((new StringBuilder()).append(org.apache.hadoop.hive.conf.HiveConf.ConfVars.HIVE_SERVER2_SSL_KEYSTORE_PATH.varname).append(" Not configured for SSL connection").toString());
serverSocket = HiveAuthFactory.getServerSSLSocket(hiveHost, portNum, keyStorePath, hiveConf.getVar(org.apache.hadoop.hive.conf.HiveConf.ConfVars.HIVE_SERVER2_SSL_KEYSTORE_PASSWORD), sslVersionBlacklist);
}
org.apache.thrift.server.TThreadPoolServer.Args sargs = ((org.apache.thrift.server.TThreadPoolServer.Args)((org.apache.thrift.server.TThreadPoolServer.Args)((org.apache.thrift.server.TThreadPoolServer.Args)(new org.apache.thrift.server.TThreadPoolServer.Args(serverSocket)).processorFactory(processorFactory)).transportFactory(transportFactory)).protocolFactory(new org.apache.thrift.protocol.TBinaryProtocol.Factory())).requestTimeout(requestTimeout).executorService(executorService);
server = new TThreadPoolServer(sargs);
LOG.info((new StringBuilder()).append("ThriftBinaryCLIService listening on ").append(serverAddress).toString());
server.serve();
}
catch(Throwable t)
{
LOG.error("Error: ", t);
}
}
private int requestTimeout;
其实代码细节我也没看明白,可以看出来出错的问题就是因为这个内部类org.apache.thrift.server.TThreadPoolServer.Args
我搞了一天,感觉正确的方法是,检查/home/ocetl/app/hadoop-2.5.0-cdh5.2.1/share/hadoop/yarn/lib下面有没有libthrift-0.9.0-cdh5-2.jar,根据个人的版本来,我有以下几个建议
1:保持hive的lib下面的libthrift.jar和yarn的lib下面的jar包一致
2:如果一致还错误的话,可以选择更换新的libthrift.jar 试一试
检查其他目录
主要是
这两个包里面不要有
libthrift-0.9.0-cdh5-2.jar
我的hive/lib
-rw-r--r--. 1 ocetl hadoop 62983 Jun 14 2014 activation-1.1.jar
-rw-r--r--. 1 ocetl hadoop 1997485 Jun 18 2014 ant-1.9.1.jar
-rw-r--r--. 1 ocetl hadoop 18336 Jun 18 2014 ant-launcher-1.9.1.jar
-rw-r--r--. 1 ocetl hadoop 445288 Jun 14 2014 antlr-2.7.7.jar
-rw-r--r--. 1 ocetl hadoop 164368 Jun 14 2014 antlr-runtime-3.4.jar
-rw-r--r--. 1 ocetl hadoop 4467 Jun 14 2014 aopalliance-1.0.jar
-rw-r--r--. 1 ocetl hadoop 43398 Jun 14 2014 asm-3.2.jar
-rw-r--r--. 1 ocetl hadoop 32693 Jun 18 2014 asm-commons-3.1.jar
-rw-r--r--. 1 ocetl hadoop 21879 Jun 18 2014 asm-tree-3.1.jar
-rw-r--r--. 1 ocetl hadoop 436228 Nov 20 2014 avro-1.7.6-cdh5.2.1.jar
-rw-r--r--. 1 ocetl hadoop 110600 Jul 29 2014 bonecp-0.8.0.RELEASE.jar
-rw-r--r--. 1 ocetl hadoop 41123 Jun 14 2014 commons-cli-1.2.jar
-rw-r--r--. 1 ocetl hadoop 58160 Jun 14 2014 commons-codec-1.4.jar
-rw-r--r--. 1 ocetl hadoop 241367 Jun 14 2014 commons-compress-1.4.1.jar
-rw-r--r--. 1 ocetl hadoop 279781 Jun 14 2014 commons-httpclient-3.0.1.jar
-rw-r--r--. 1 ocetl hadoop 185140 Jun 14 2014 commons-io-2.4.jar
-rw-r--r--. 1 ocetl hadoop 284220 Jun 14 2014 commons-lang-2.6.jar
-rw-r--r--. 1 ocetl hadoop 315805 Jun 14 2014 commons-lang3-3.1.jar
-rw-r--r--. 1 ocetl hadoop 62050 Jun 14 2014 commons-logging-1.1.3.jar
-rw-r--r--. 1 ocetl hadoop 339666 Jul 29 2014 datanucleus-api-jdo-3.2.6.jar
-rw-r--r--. 1 ocetl hadoop 1890075 Jul 29 2014 datanucleus-core-3.2.10.jar
-rw-r--r--. 1 ocetl hadoop 1809447 Jul 29 2014 datanucleus-rdbms-3.2.9.jar
-rw-r--r--. 1 ocetl hadoop 2831358 Jun 14 2014 derby-10.10.1.1.jar
-rw-r--r--. 1 ocetl hadoop 12452 Jun 18 2014 geronimo-annotation_1.0_spec-1.1.1.jar
-rw-r--r--. 1 ocetl hadoop 30548 Jun 18 2014 geronimo-jaspic_1.0_spec-1.0.jar
-rw-r--r--. 1 ocetl hadoop 16030 Jun 14 2014 geronimo-jta_1.1_spec-1.1.1.jar
-rw-r--r--. 1 ocetl hadoop 6377448 Jun 14 2014 groovy-all-2.1.6.jar
-rw-r--r--. 1 ocetl hadoop 1795932 May 21 2016 guava-12.0.1.jar
-rw-r--r--. 1 ocetl hadoop 710492 Jun 14 2014 guice-3.0.jar
-rw-r--r--. 1 ocetl hadoop 65012 Jun 14 2014 guice-servlet-3.0.jar
-rw-r--r--. 1 ocetl hadoop 1606825 Nov 20 2014 hadoop-yarn-api-2.5.0-cdh5.2.1.jar
-rw-r--r--. 1 ocetl hadoop 1426732 Nov 20 2014 hadoop-yarn-common-2.5.0-cdh5.2.1.jar
-rw-r--r--. 1 ocetl hadoop 149227 Nov 20 2014 hadoop-yarn-server-applicationhistoryservice-2.5.0-cdh5.2.1.jar
-rw-r--r--. 1 ocetl hadoop 264332 Nov 20 2014 hadoop-yarn-server-common-2.5.0-cdh5.2.1.jar
-rw-r--r--. 1 ocetl hadoop 964331 Nov 20 2014 hadoop-yarn-server-resourcemanager-2.5.0-cdh5.2.1.jar
-rw-r--r--. 1 ocetl hadoop 34930 Nov 20 2014 hadoop-yarn-server-web-proxy-2.5.0-cdh5.2.1.jar
-rw-r--r--. 1 ocetl hadoop 76643 Jun 14 2014 hamcrest-core-1.1.jar
-rw-r--r--. 1 ocetl hadoop 929456 May 21 2016 hbase-client-0.98.6.1.jar
-rw-r--r--. 1 ocetl hadoop 442406 May 21 2016 hbase-common-0.98.6.1.jar
-rw-r--r--. 1 ocetl hadoop 172539 May 21 2016 hbase-common-0.98.6.1-tests.jar
-rw-r--r--. 1 ocetl hadoop 105879 May 21 2016 hbase-examples-0.98.6.1.jar
-rw-r--r--. 1 ocetl hadoop 74019 May 21 2016 hbase-hadoop2-compat-0.98.6.1.jar
-rw-r--r--. 1 ocetl hadoop 32966 May 21 2016 hbase-hadoop-compat-0.98.6.1.jar
-rw-r--r--. 1 ocetl hadoop 12198 May 21 2016 hbase-it-0.98.6.1.jar
-rw-r--r--. 1 ocetl hadoop 357802 May 21 2016 hbase-it-0.98.6.1-tests.jar
-rw-r--r--. 1 ocetl hadoop 98051 May 21 2016 hbase-prefix-tree-0.98.6.1.jar
-rw-r--r--. 1 ocetl hadoop 3501750 May 21 2016 hbase-protocol-0.98.6.1.jar
-rw-r--r--. 1 ocetl hadoop 3632759 May 21 2016 hbase-server-0.98.6.1.jar
-rw-r--r--. 1 ocetl hadoop 4043227 May 21 2016 hbase-server-0.98.6.1-tests.jar
-rw-r--r--. 1 ocetl hadoop 12363 May 21 2016 hbase-shell-0.98.6.1.jar
-rw-r--r--. 1 ocetl hadoop 10978 May 21 2016 hbase-testing-util-0.98.6.1.jar
-rw-r--r--. 1 ocetl hadoop 2359153 May 21 2016 hbase-thrift-0.98.6.1.jar
-rw-r--r--. 1 ocetl hadoop 95975 May 21 2016 high-scale-lib-1.1.1.jar
-rw-r--r--. 1 ocetl hadoop 37253 Nov 20 2014 hive-ant-0.13.1-cdh5.2.1.jar
-rw-r--r--. 1 ocetl hadoop 122111 Nov 20 2014 hive-beeline-0.13.1-cdh5.2.1.jar
-rw-r--r--. 1 ocetl hadoop 37474 Nov 20 2014 hive-cli-0.13.1-cdh5.2.1.jar
-rw-r--r--. 1 ocetl hadoop 184759 Nov 20 2014 hive-common-0.13.1-cdh5.2.1.jar
-rw-r--r--. 1 ocetl hadoop 121625 Nov 20 2014 hive-contrib-0.13.1-cdh5.2.1.jar
-rw-r--r--. 1 ocetl hadoop 15520359 Nov 20 2014 hive-exec-0.13.1-cdh5.2.1.jar
-rw-r--r--. 1 ocetl hadoop 68890 Nov 20 2014 hive-hbase-handler-0.13.1-cdh5.2.1.jar
-rw-r--r--. 1 ocetl hadoop 27530 Nov 20 2014 hive-hwi-0.13.1-cdh5.2.1.jar
-rw-r--r--. 1 ocetl hadoop 47966 Jun 17 2016 hive-hwi-1.3.0.war
-rw-r--r--. 1 ocetl hadoop 136573 Nov 20 2014 hive-jdbc-0.13.1-cdh5.2.1.jar
-rw-r--r--. 1 ocetl hadoop 4693673 Nov 20 2014 hive-metastore-0.13.1-cdh5.2.1.jar
-rw-r--r--. 1 ocetl hadoop 746524 Nov 20 2014 hive-serde-0.13.1-cdh5.2.1.jar
-rw-r--r--. 1 ocetl hadoop 1906056 Nov 20 2014 hive-service-0.13.1-cdh5.2.1.jar
-rw-r--r--. 1 ocetl hadoop 8855 Nov 20 2014 hive-shims-0.13.1-cdh5.2.1.jar
-rw-r--r--. 1 ocetl hadoop 45595 Nov 20 2014 hive-shims-0.23-0.13.1-cdh5.2.1.jar
-rw-r--r--. 1 ocetl hadoop 39953 Nov 20 2014 hive-shims-common-0.13.1-cdh5.2.1.jar
-rw-r--r--. 1 ocetl hadoop 77705 Nov 20 2014 hive-shims-common-secure-0.13.1-cdh5.2.1.jar
-rw-r--r--. 1 ocetl hadoop 12989 Nov 20 2014 hive-shims-scheduler-0.13.1-cdh5.2.1.jar
-rw-r--r--. 1 ocetl hadoop 12139 Nov 20 2014 hive-testutils-0.13.1-cdh5.2.1.jar
-rw-r--r--. 1 ocetl hadoop 31532 May 21 2016 htrace-core-2.04.jar
-rw-r--r--. 1 ocetl hadoop 433368 Jun 14 2014 httpclient-4.2.5.jar
-rw-r--r--. 1 ocetl hadoop 227708 Jun 14 2014 httpcore-4.2.5.jar
-rw-r--r--. 1 ocetl hadoop 2497 Jun 14 2014 javax.inject-1.jar
-rw-r--r--. 1 ocetl hadoop 201124 Jun 14 2014 jdo-api-3.0.1.jar
-rw-r--r--. 1 ocetl hadoop 130458 Jun 14 2014 jersey-client-1.9.jar
-rw-r--r--. 1 ocetl hadoop 14786 Jun 14 2014 jersey-guice-1.9.jar
-rw-r--r--. 1 ocetl hadoop 600146 Jun 18 2014 jersey-server-1.14.jar
-rw-r--r--. 1 ocetl hadoop 125573 Jun 18 2014 jersey-servlet-1.14.jar
-rw-r--r--. 1 ocetl hadoop 539912 Jun 14 2014 jetty-6.1.26.jar
-rw-r--r--. 1 ocetl hadoop 1681148 Jul 29 2014 jetty-all-7.6.0.v20120127.jar
-rw-r--r--. 1 ocetl hadoop 177131 Jun 14 2014 jetty-util-6.1.26.jar
-rw-r--r--. 1 ocetl hadoop 87325 Jun 14 2014 jline-0.9.94.jar
-rw-r--r--. 1 ocetl hadoop 12131 Jul 29 2014 jpam-1.1.jar
-rw-r--r--. 1 ocetl hadoop 33015 Jun 14 2014 jsr305-1.3.9.jar
-rw-r--r--. 1 ocetl hadoop 15071 Jun 14 2014 jta-1.1.jar
-rw-r--r--. 1 ocetl hadoop 253160 Jun 14 2014 junit-4.10.jar
-rw-r--r--. 1 ocetl hadoop 1045744 Sep 3 2014 leveldbjni-all-1.8.jar
-rw-r--r--. 1 ocetl hadoop 275186 Jun 14 2014 libfb303-0.9.0.jar
-rw-r--r--. 1 ocetl hadoop 348651 Sep 12 2014 libthrift-0.9.0.jar
-rw-r--r--. 1 ocetl hadoop 481535 Jun 14 2014 log4j-1.2.16.jar
-rw-r--r--. 1 ocetl hadoop 447676 Jun 18 2014 mail-1.4.1.jar
-rw-r--r--. 1 ocetl hadoop 767492 May 20 2016 mysql-connector-java-5.1.13.jar_bak
-rw-r--r--. 1 ocetl hadoop 848399 Jul 14 2017 mysql-connector-java-5.1.25.jar
-rw-r--r--. 1 ocetl hadoop 19827 Jun 14 2014 opencsv-2.3.jar
-rw-r--r--. 1 ocetl hadoop 65261 Jun 14 2014 oro-2.0.8.jar
-rw-r--r--. 1 ocetl hadoop 29555 Jun 14 2014 paranamer-2.3.jar
drwxr-xr-x. 6 ocetl hadoop 4096 Aug 27 21:22 php
-rw-r--r--. 1 ocetl hadoop 533455 May 21 2016 protobuf-java-2.5.0.jar
drwxr-xr-x. 10 ocetl hadoop 4096 Aug 27 21:22 py
-rw-r--r--. 1 ocetl hadoop 134133 Jun 14 2014 servlet-api-2.5-20081211.jar
-rw-r--r--. 1 ocetl hadoop 105112 Jun 14 2014 servlet-api-2.5.jar
-rw-r--r--. 1 ocetl hadoop 995968 Jun 14 2014 snappy-java-1.0.4.1.jar
-rw-r--r--. 1 ocetl hadoop 236660 Jun 14 2014 ST4-4.0.4.jar
-rw-r--r--. 1 ocetl hadoop 26514 Jun 14 2014 stax-api-1.0.1.jar
-rw-r--r--. 1 ocetl hadoop 148627 Jun 14 2014 stringtemplate-3.2.1.jar
-rw-r--r--. 1 ocetl hadoop 93210 Sep 12 2014 super-csv-2.2.0.jar
-rw-r--r--. 1 ocetl hadoop 55953 Jun 18 2014 tempus-fugit-1.1.jar
-rw-r--r--. 1 ocetl hadoop 15255931 Jun 17 2016 tools.jar
-rw-r--r--. 1 ocetl hadoop 392124 Jun 14 2014 velocity-1.5.jar
-rw-r--r--. 1 ocetl hadoop 94672 Jun 14 2014 xz-1.0.jar
-rw-r--r--. 1 ocetl hadoop 1351711 Nov 20 2014 zookeeper-3.4.5-cdh5.2.1.jar
-rw-r--r--. 1 ocetl hadoop 1352155 Aug 8 2016 zookeeper-3.4.5-cdh5.8.0.jar
然后重启hadoop集群
下载libthrift-0.9.0-cdh5-2.jar 论坛有