Hive 3 中 ALTER TABLE 的问题

问题描述

我在 AWS 托管的最近更新的 EMR 6.0.0 集群中使用 HIVE 3.1.2,并且在尝试在 hive 中执行简单查询时遇到了一些问题。 有问题的查询如下:

ALTER TABLE schema.table ADD COLUMNS (new_column STRING);

我们正在执行查询的表有大约 60 万个分区并且是外部的。

Hive 的版本最近更新到 3.1.2,作为 EMR 6.0.0 中包含的整个包。 奇怪的是,当我们使用 Hive 2.3.6 时,查询没有任何后顾之忧或任何辛苦。因此,我搜索了版本更新是否在执行 ALTER TABLE 时更改了某些内容,但我没有找到任何可能是问题根本原因的相关内容

服务端显示的日志如下:

2021-04-14T14:34:45,176 ERROR [HiveServer2-Background-Pool: Thread-221871([])]: exec.DDLTask (:()) - Failed
org.apache.hadoop.hive.ql.Metadata.HiveException: Unable to alter table. java.net.socketTimeoutException: Read timed out
    at org.apache.hadoop.hive.ql.Metadata.Hive.alterTable(Hive.java:721) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.hadoop.hive.ql.Metadata.Hive.alterTable(Hive.java:698) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.hadoop.hive.ql.exec.DDLTask.alterTable(DDLTask.java:3966) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.hadoop.hive.ql.exec.DDLTask.execute(DDLTask.java:455) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:205) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:97) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:2664) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:2335) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:2011) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1709) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1703) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.hadoop.hive.ql.reexec.ReExecDriver.run(ReExecDriver.java:157) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.hive.service.cli.operation.sqlOperation.runQuery(sqlOperation.java:224) ~[hive-service-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.hive.service.cli.operation.sqlOperation.access$700(sqlOperation.java:87) ~[hive-service-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.hive.service.cli.operation.sqlOperation$BackgroundWork$1.run(sqlOperation.java:316) ~[hive-service-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_242]
    at javax.security.auth.Subject.doAs(Subject.java:422) ~[?:1.8.0_242]
    at org.apache.hadoop.security.UserGroupinformation.doAs(UserGroupinformation.java:1730) ~[hadoop-common-3.2.1-amzn-0.jar:?]
    at org.apache.hive.service.cli.operation.sqlOperation$BackgroundWork.run(sqlOperation.java:330) ~[hive-service-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_242]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_242]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_242]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_242]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_242]
Caused by: org.apache.thrift.transport.TTransportException: java.net.socketTimeoutException: Read timed out
    at org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:129) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:429) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:318) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:219) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:77) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.hadoop.hive.metastore.api.ThriftHivemetastore$Client.recv_alter_table_with_environment_context(ThriftHivemetastore.java:2270) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.hadoop.hive.metastore.api.ThriftHivemetastore$Client.alter_table_with_environment_context(ThriftHivemetastore.java:2254) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.hadoop.hive.metastore.HivemetastoreClient.alter_table_with_environmentContext(HivemetastoreClient.java:405) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.hadoop.hive.ql.Metadata.SessionHivemetastoreClient.alter_table_with_environmentContext(SessionHivemetastoreClient.java:376) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_242]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_242]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_242]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_242]
    at org.apache.hadoop.hive.metastore.retryingmetastoreClient.invoke(retryingmetastoreClient.java:212) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at com.sun.proxy.$Proxy35.alter_table_with_environmentContext(UnkNown Source) ~[?:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_242]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_242]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_242]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_242]
    at org.apache.hadoop.hive.metastore.HivemetastoreClient$SynchronizedHandler.invoke(HivemetastoreClient.java:2773) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at com.sun.proxy.$Proxy35.alter_table_with_environmentContext(UnkNown Source) ~[?:?]
    at org.apache.hadoop.hive.ql.Metadata.Hive.alterTable(Hive.java:717) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    ... 23 more
Caused by: java.net.socketTimeoutException: Read timed out
    at java.net.socketInputStream.socketRead0(Native Method) ~[?:1.8.0_242]
    at java.net.socketInputStream.socketRead(SocketInputStream.java:116) ~[?:1.8.0_242]
    at java.net.socketInputStream.read(SocketInputStream.java:171) ~[?:1.8.0_242]
    at java.net.socketInputStream.read(SocketInputStream.java:141) ~[?:1.8.0_242]
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) ~[?:1.8.0_242]
    at java.io.BufferedInputStream.read1(BufferedInputStream.java:286) ~[?:1.8.0_242]
    at java.io.BufferedInputStream.read(BufferedInputStream.java:345) ~[?:1.8.0_242]
    at org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:127) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:429) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:318) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:219) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:77) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.hadoop.hive.metastore.api.ThriftHivemetastore$Client.recv_alter_table_with_environment_context(ThriftHivemetastore.java:2270) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.hadoop.hive.metastore.api.ThriftHivemetastore$Client.alter_table_with_environment_context(ThriftHivemetastore.java:2254) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.hadoop.hive.metastore.HivemetastoreClient.alter_table_with_environmentContext(HivemetastoreClient.java:405) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at org.apache.hadoop.hive.ql.Metadata.SessionHivemetastoreClient.alter_table_with_environmentContext(SessionHivemetastoreClient.java:376) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_242]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_242]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_242]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_242]
    at org.apache.hadoop.hive.metastore.retryingmetastoreClient.invoke(retryingmetastoreClient.java:212) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at com.sun.proxy.$Proxy35.alter_table_with_environmentContext(UnkNown Source) ~[?:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_242]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_242]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_242]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_242]
    at org.apache.hadoop.hive.metastore.HivemetastoreClient$SynchronizedHandler.invoke(HivemetastoreClient.java:2773) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    at com.sun.proxy.$Proxy35.alter_table_with_environmentContext(UnkNown Source) ~[?:?]
    at org.apache.hadoop.hive.ql.Metadata.Hive.alterTable(Hive.java:717) ~[hive-exec-3.1.2-amzn-0.jar:3.1.2-amzn-0]
    ... 23 more

客户的一面,这是给我看的:

Error: Error while processing statement: Failed: Execution Error,return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Unable to alter table. java.net.socketTimeoutException: Read timed out (state=08S01,code=1)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...