[ https://issues.apache.org/jira/browse/FLINK-30075?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17635720#comment-17635720 ]
zhanglu153 edited comment on FLINK-30075 at 11/18/22 7:47 AM: -------------------------------------------------------------- 1.When is the properties object in the Configuration object of DFSClient#namenode proxy in the DistributedFileSystem object set to null? When calling the org.apache.flink.connectors.hive.read.HiveTableInputFormat#createInputSplits(int, java.util.List<org.apache.flink.connectors.hive.HiveTablePartition>, org.apache.hadoop.mapred.JobConf) method for the first time before restarting the task, set the properties object in the Configuration object of DFSClient#namenode proxy in the DistributedFileSystem object to null in the following figure: !Set the properties object in the Configuration object of DFSClient#namenode proxy in the DistributedFileSystem object to null.png|width=608,height=301! You can see that the org.apache.hadoop.mapred.FileInputFormat#getSplits method is called at the end of the org.apache.flink.connectors.hive.read.HiveTableInputFormat#createInputSplits(int, java.util.List<org.apache.flink.connectors.hive.HiveTablePartition>, org.apache.hadoop.mapred.JobConf) method, and then it will be called all the way to the org.apache.hadoop.mapred.Master#getMasterPrincipal method. In method org.apache.hadoop.mapred.Master#getMasterPrincipal, there is an if else code block. In the logic of the else code block, method org.apache.hadoop.yarn.client.util.YarnClientUtils#getRmPrincipal(org.apache.hadoop.conf.Configuration) will be called, and then it will be called all the way to org.apache.hadoop.yarn.client.util.YarnClientUtils#getYarnConfWithRmHaId. A new YarnConfiguration object will be created here. There is a static code block in the org.apache.hadoop.yarn.conf.YarnConfiguration class. When this static code block calls method org.apache.hadoop.conf.Configuration#addDefaultResource, it will call method org.apache.hadoop.conf.Configuration#reloadConfiguration in the for loop to set the properties object in all Configuration objects to null(Note that the static code block in the YarnConfiguration class is executed only when the method org.apache.hadoop.mapred.FileInputFormat#getSplits is called for the first time, because the YarnConfiguration class has not been loaded by the class loader. Therefore, if the HiveTableInputFormat#createInputSplits method is called again, the static code block in the YarnConfiguration class will not be executed, that is, the property object will not be null again.) !hadoop2.10.1 org.apache.hadoop.mapred.Master#getMasterPrincipal.png|width=685,height=189! !hadoop2.10.1 org.apache.hadoop.yarn.client.util.YarnClientUtils#getYarnConfWithRmHaId.png|width=423,height=185! !hadoop2.10.1 org.apache.hadoop.yarn.conf.YarnConfiguration static code block.png|width=472,height=245! !org.apache.hadoop.conf.Configuration#addDefaultResource.png|width=366,height=218! was (Author: JIRAUSER298392): 1.When is the properties object in the Configuration object of DFSClient#namenode proxy in the DistributedFileSystem object set to null? When calling the org.apache.flink.connectors.hive.read.HiveTableInputFormat#createInputSplits(int, java.util.List<org.apache.flink.connectors.hive.HiveTablePartition>, org.apache.hadoop.mapred.JobConf) method for the first time before restarting the task, set the properties object in the Configuration object of DFSClient#namenode proxy in the DistributedFileSystem object to null in the following figure: !Set the properties object in the Configuration object of DFSClient#namenode proxy in the DistributedFileSystem object to null.png|width=608,height=301! You can see that the org.apache.hadoop.mapred.FileInputFormat#getSplits method is called at the end of the org.apache.flink.connectors.hive.read.HiveTableInputFormat#createInputSplits(int, java.util.List<org.apache.flink.connectors.hive.HiveTablePartition>, org.apache.hadoop.mapred.JobConf) method, and then it will be called all the way to the org.apache.hadoop.mapred.Master#getMasterPrincipal method. In method org.apache.hadoop.mapred.Master#getMasterPrincipal, there is an if else code block. In the logic of the else code block, method org.apache.hadoop.yarn.client.util.YarnClientUtils#getRmPrincipal(org.apache.hadoop.conf.Configuration) will be called, and then it will be called all the way to org.apache.hadoop.yarn.client.util.YarnClientUtils#getYarnConfWithRmHaId. A new YarnConfiguration object will be created here. There is a static code block in the org.apache.hadoop.yarn.conf.YarnConfiguration class. When this static code block calls method org.apache.hadoop.conf.Configuration#addDefaultResource, it will call method org.apache.hadoop.conf.Configuration#reloadConfiguration in the for loop to set the properties object in all Configuration objects to null(Note that the static code block in the YarnConfiguration class is executed only when the method org.apache.hadoop.mapred.FileInputFormat#getSplits is called for the first time, because the YarnConfiguration class has not been loaded by the class loader. Therefore, if the HiveTableInputFormat#createInputSplits method is called again, the static code block in the YarnConfiguration class will not be executed, that is, the property object will not be null again.) !hadoop2.10.1 org.apache.hadoop.mapred.Master#getMasterPrincipal.png|width=685,height=189! !hadoop2.10.1 org.apache.hadoop.yarn.client.util.YarnClientUtils#getYarnConfWithRmHaId.png|width=423,height=185! !hadoop2.10.1 org.apache.hadoop.yarn.conf.YarnConfiguration static code block.png|width=472,height=245! !org.apache.hadoop.conf.Configuration#addDefaultResource.png|width=366,height=218! > Failed to load data to the cache after the hive lookup join task is restarted > ----------------------------------------------------------------------------- > > Key: FLINK-30075 > URL: https://issues.apache.org/jira/browse/FLINK-30075 > Project: Flink > Issue Type: Bug > Components: Connectors / Hive > Affects Versions: 1.12.2 > Reporter: zhanglu153 > Priority: Major > Attachments: Set the properties object in the Configuration object of > DFSClient#namenode proxy in the DistributedFileSystem object to null.png, > hadoop2.10.1 org.apache.hadoop.mapred.Master#getMasterPrincipal.png, > hadoop2.10.1 org.apache.hadoop.security.SaslRpcClient#conf.png, hadoop2.10.1 > org.apache.hadoop.yarn.client.util.YarnClientUtils#getYarnConfWithRmHaId.png, > hadoop2.10.1 org.apache.hadoop.yarn.conf.YarnConfiguration static code > block.png, hadoop2.8.5 org.apache.hadoop.security.SaslRpcClient#conf.png, > org.apache.flink.connectors.hive.read.HiveTableInputFormat#createInputSplits.png, > org.apache.hadoop.conf.Configuration#addDefaultResource.png, > org.apache.hadoop.security.SaslRpcClient.png > > > When I test kafka and hive lookup join, only the connection between tm and > zookeeper is disconnected after the data is successfully loaded into the > cache. In this case, the task will be restarted because the flink task > restart policy is configured (note that the task process does not change at > this time, and the task restarts in the same container). > The task sql is as follows: > {code:java} > StreamExecutionEnvironment env = > StreamExecutionEnvironment.getExecutionEnvironment(); > env.setParallelism(1); > EnvironmentSettings settings = > EnvironmentSettings.newInstance().useBlinkPlanner().inStreamingMode().build(); > StreamTableEnvironment tableEnv = StreamTableEnvironment.create(env, > settings); > tableEnv.executeSql("CREATE TABLE kafka_table_1 (\n" + > " a string,\n" + > " b int,\n" + > " c string,\n" + > " log_ts TIMESTAMP(0),\n" + > ") WITH (\n" + > " 'connector' = 'kafka',\n" + > " 'topic' = 'test',\n" + > " 'scan.startup.mode' = 'latest-offset',\n" + > " 'properties.bootstrap.servers' = '172.16.144.208:9092',\n" + > " 'format' = 'csv'\n" + > ")"); > String name = "hive_catalog"; > String hiveConfDir = "/cloud/service/flink/conf"; > HiveCatalog hive = new HiveCatalog(name, null, hiveConfDir); > hive.open(); > tableEnv.registerCatalog(name, hive); > tableEnv.useCatalog(name); > tableEnv.getConfig().setSqlDialect(SqlDialect.HIVE); > tableEnv.executeSql("create table if not exists ttt(a string,b int,c > string)"); > tableEnv.getConfig().setSqlDialect(SqlDialect.DEFAULT); > tableEnv.executeSql("select * from > default_catalog.default_database.kafka_table_1 as u join ttt for system_time > as of u.proctime as o on u.a = o.a").print();{code} > After the task is successfully restarted, kafka produces data. When some data > comes in, an error message is displayed indicating that loading data into the > cache fails. The error message is as follows: > {code:java} > 2022-11-17 14:09:16,041 INFO > org.apache.flink.table.filesystem.FileSystemLookupFunction [] - Populating > lookup join cache > 2022-11-17 14:09:16,051 INFO org.apache.hadoop.conf.Configuration > [] - getProps 1230612033 > 2022-11-17 14:09:16,053 INFO > org.apache.hadoop.io.retry.RetryInvocationHandler [] - > java.io.IOException: > org.apache.flink.shaded.hadoop2.com.google.protobuf.ServiceException: > java.lang.IllegalStateException: Trying to access closed classloader. Please > check if you store classloaders directly or indirectly in static fields. If > the stacktrace suggests that the leak occurs in a third party library and > cannot be fixed immediately, you can disable this check with the > configuration 'classloader.check-leaked-classloader'., while invoking > ClientNamenodeProtocolTranslatorPB.getFileInfo over > hdp-hadoop-hdp-namenode-1.hdp-hadoop-hdp-namenode.hdp-dev-env-3.svc.cluster.local/192.168.6.85:9000. > Trying to failover immediately. > 2022-11-17 14:09:16,053 DEBUG org.apache.hadoop.ipc.Client > [] - The ping interval is 60000 ms. > 2022-11-17 14:09:16,053 DEBUG org.apache.hadoop.ipc.Client > [] - Connecting to > hdp-hadoop-hdp-namenode-0.hdp-hadoop-hdp-namenode.hdp-dev-env-3.svc.cluster.local/192.168.0.8:9000 > 2022-11-17 14:09:16,055 DEBUG org.apache.hadoop.security.UserGroupInformation > [] - PrivilegedAction > as:hadoop/hdp-flinkhistory-hdp-flink-history-6754db4f9c-8b8nd.hdp-flinkhistory-hdp-flink-history.hdp-dev-env-3.svc.cluster.lo...@dahua.com > (auth:KERBEROS) > from:org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:825) > 2022-11-17 14:09:16,056 DEBUG org.apache.hadoop.security.SaslRpcClient > [] - Sending sasl message state: NEGOTIATE > 2022-11-17 14:09:16,057 DEBUG org.apache.hadoop.security.SaslRpcClient > [] - Get token info proto:interface > org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolPB > info:@org.apache.hadoop.security.token.TokenInfo(value=class > org.apache.hadoop.hdfs.security.token.delegation.DelegationTokenSelector) > 2022-11-17 14:09:16,057 INFO org.apache.hadoop.security.SaslRpcClient > [] - getServerPrincipal 1230612033 > 2022-11-17 14:09:16,057 DEBUG org.apache.hadoop.security.SaslRpcClient > [] - Get kerberos info proto:interface > org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolPB > info:@org.apache.hadoop.security.KerberosInfo(clientPrincipal=, > serverPrincipal=dfs.namenode.kerberos.principal) > 2022-11-17 14:09:16,059 DEBUG org.apache.hadoop.security.SaslRpcClient > [] - getting serverKey: dfs.namenode.kerberos.principal conf > value: null principal: null > 2022-11-17 14:09:16,059 DEBUG org.apache.hadoop.ipc.Client > [] - closing ipc connection to > hdp-hadoop-hdp-namenode-0.hdp-hadoop-hdp-namenode.hdp-dev-env-3.svc.cluster.local/192.168.0.8:9000: > Couldn't set up IO streams: java.lang.IllegalArgumentException: Failed to > specify server's Kerberos principal name > java.io.IOException: Couldn't set up IO streams: > java.lang.IllegalArgumentException: Failed to specify server's Kerberos > principal name > at > org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:891) > ~[flink-shaded-hadoop-2-uber-2.10.1-HDP-22.09.1-release-10.0.jar:2.10.1-HDP-22.09.1-release-10.0] > at org.apache.hadoop.ipc.Client$Connection.access$3700(Client.java:423) > ~[flink-shaded-hadoop-2-uber-2.10.1-HDP-22.09.1-release-10.0.jar:2.10.1-HDP-22.09.1-release-10.0] > at org.apache.hadoop.ipc.Client.getConnection(Client.java:1615) > ~[flink-shaded-hadoop-2-uber-2.10.1-HDP-22.09.1-release-10.0.jar:2.10.1-HDP-22.09.1-release-10.0] > at org.apache.hadoop.ipc.Client.call(Client.java:1446) > ~[flink-shaded-hadoop-2-uber-2.10.1-HDP-22.09.1-release-10.0.jar:2.10.1-HDP-22.09.1-release-10.0] > at org.apache.hadoop.ipc.Client.call(Client.java:1399) > ~[flink-shaded-hadoop-2-uber-2.10.1-HDP-22.09.1-release-10.0.jar:2.10.1-HDP-22.09.1-release-10.0] > at > org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:232) > > ~[flink-shaded-hadoop-2-uber-2.10.1-HDP-22.09.1-release-10.0.jar:2.10.1-HDP-22.09.1-release-10.0] > at > org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:118) > > ~[flink-shaded-hadoop-2-uber-2.10.1-HDP-22.09.1-release-10.0.jar:2.10.1-HDP-22.09.1-release-10.0] > at com.sun.proxy.$Proxy27.getFileInfo(Unknown Source) ~[?:?] > at > org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getFileInfo(ClientNamenodeProtocolTranslatorPB.java:800) > > ~[flink-shaded-hadoop-2-uber-2.10.1-HDP-22.09.1-release-10.0.jar:2.10.1-HDP-22.09.1-release-10.0] > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > ~[?:1.8.0_342] > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > ~[?:1.8.0_342] > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > ~[?:1.8.0_342] > at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_342] > at > org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:422) > > ~[flink-shaded-hadoop-2-uber-2.10.1-HDP-22.09.1-release-10.0.jar:2.10.1-HDP-22.09.1-release-10.0] > at > org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invokeMethod(RetryInvocationHandler.java:165) > > ~[flink-shaded-hadoop-2-uber-2.10.1-HDP-22.09.1-release-10.0.jar:2.10.1-HDP-22.09.1-release-10.0] > at > org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invoke(RetryInvocationHandler.java:157) > > ~[flink-shaded-hadoop-2-uber-2.10.1-HDP-22.09.1-release-10.0.jar:2.10.1-HDP-22.09.1-release-10.0] > at > org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invokeOnce(RetryInvocationHandler.java:95) > > ~[flink-shaded-hadoop-2-uber-2.10.1-HDP-22.09.1-release-10.0.jar:2.10.1-HDP-22.09.1-release-10.0] > at > org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:359) > > ~[flink-shaded-hadoop-2-uber-2.10.1-HDP-22.09.1-release-10.0.jar:2.10.1-HDP-22.09.1-release-10.0] > at com.sun.proxy.$Proxy28.getFileInfo(Unknown Source) ~[?:?] > at org.apache.hadoop.hdfs.DFSClient.getFileInfo(DFSClient.java:1673) > ~[flink-shaded-hadoop-2-uber-2.10.1-HDP-22.09.1-release-10.0.jar:2.10.1-HDP-22.09.1-release-10.0] > at > org.apache.hadoop.hdfs.DistributedFileSystem$29.doCall(DistributedFileSystem.java:1524) > > ~[flink-shaded-hadoop-2-uber-2.10.1-HDP-22.09.1-release-10.0.jar:2.10.1-HDP-22.09.1-release-10.0] > at > org.apache.hadoop.hdfs.DistributedFileSystem$29.doCall(DistributedFileSystem.java:1521) > > ~[flink-shaded-hadoop-2-uber-2.10.1-HDP-22.09.1-release-10.0.jar:2.10.1-HDP-22.09.1-release-10.0] > at > org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81) > > ~[flink-shaded-hadoop-2-uber-2.10.1-HDP-22.09.1-release-10.0.jar:2.10.1-HDP-22.09.1-release-10.0] > at > org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1536) > > ~[flink-shaded-hadoop-2-uber-2.10.1-HDP-22.09.1-release-10.0.jar:2.10.1-HDP-22.09.1-release-10.0] > at org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:1632) > ~[flink-shaded-hadoop-2-uber-2.10.1-HDP-22.09.1-release-10.0.jar:2.10.1-HDP-22.09.1-release-10.0] > at > org.apache.flink.connectors.hive.read.HiveTableInputFormat.createInputSplits(HiveTableInputFormat.java:334) > ~[flink-connector-hive_2.11-1.12.2-HDP-22.10.28.jar:1.12.2-HDP-22.10.28] > at > org.apache.flink.connectors.hive.read.HiveTableInputFormat.createInputSplits(HiveTableInputFormat.java:318) > ~[flink-connector-hive_2.11-1.12.2-HDP-22.10.28.jar:1.12.2-HDP-22.10.28] > at > org.apache.flink.connectors.hive.read.HiveInputFormatPartitionReader.open(HiveInputFormatPartitionReader.java:83) > ~[flink-connector-hive_2.11-1.12.2-HDP-22.10.28.jar:1.12.2-HDP-22.10.28] > at > org.apache.flink.table.filesystem.FileSystemLookupFunction.checkCacheReload(FileSystemLookupFunction.java:132) > ~[flink-table-blink_2.11-1.12.2-HDP-22.10.09.jar:1.12.2-HDP-22.10.09] > at > org.apache.flink.table.filesystem.FileSystemLookupFunction.eval(FileSystemLookupFunction.java:105) > ~[flink-table-blink_2.11-1.12.2-HDP-22.10.09.jar:1.12.2-HDP-22.10.09] > at > org.apache.flink.table.filesystem.security.HdpFileSystemLookupFunction.lambda$eval$1(HdpFileSystemLookupFunction.java:59) > ~[flink-table-blink_2.11-1.12.2-HDP-22.10.09.jar:1.12.2-HDP-22.10.09] > at > org.apache.flink.runtime.security.SecurityUtils.runAtOneContext(SecurityUtils.java:100) > [flink-dist_2.11-1.12.2-HDP-22.10.09.jar:1.12.2-HDP-22.10.09] > at > org.apache.flink.table.filesystem.security.HdpFileSystemLookupFunction.eval(HdpFileSystemLookupFunction.java:58) > [flink-table-blink_2.11-1.12.2-HDP-22.10.09.jar:1.12.2-HDP-22.10.09] > at LookupFunction$10.flatMap(Unknown Source) > [flink-table-blink_2.11-1.12.2-HDP-22.10.09.jar:?] > at > org.apache.flink.table.runtime.operators.join.lookup.LookupJoinRunner.processElement(LookupJoinRunner.java:81) > [flink-table-blink_2.11-1.12.2-HDP-22.10.09.jar:1.12.2-HDP-22.10.09] > at > org.apache.flink.table.runtime.operators.join.lookup.LookupJoinRunner.processElement(LookupJoinRunner.java:34) > [flink-table-blink_2.11-1.12.2-HDP-22.10.09.jar:1.12.2-HDP-22.10.09] > at > org.apache.flink.streaming.api.operators.ProcessOperator.processElement(ProcessOperator.java:66) > [flink-dist_2.11-1.12.2-HDP-22.10.09.jar:1.12.2-HDP-22.10.09] > at > org.apache.flink.streaming.runtime.tasks.CopyingChainingOutput.pushToOperator(CopyingChainingOutput.java:71) > [flink-dist_2.11-1.12.2-HDP-22.10.09.jar:1.12.2-HDP-22.10.09] > at > org.apache.flink.streaming.runtime.tasks.CopyingChainingOutput.collect(CopyingChainingOutput.java:46) > [flink-dist_2.11-1.12.2-HDP-22.10.09.jar:1.12.2-HDP-22.10.09] > at > org.apache.flink.streaming.runtime.tasks.CopyingChainingOutput.collect(CopyingChainingOutput.java:26) > [flink-dist_2.11-1.12.2-HDP-22.10.09.jar:1.12.2-HDP-22.10.09] > at > org.apache.flink.streaming.api.operators.CountingOutput.collect(CountingOutput.java:50) > [flink-dist_2.11-1.12.2-HDP-22.10.09.jar:1.12.2-HDP-22.10.09] > at > org.apache.flink.streaming.api.operators.CountingOutput.collect(CountingOutput.java:28) > [flink-dist_2.11-1.12.2-HDP-22.10.09.jar:1.12.2-HDP-22.10.09] > at StreamExecCalc$7.processElement(Unknown Source) > [flink-table-blink_2.11-1.12.2-HDP-22.10.09.jar:?] > at > org.apache.flink.streaming.runtime.tasks.CopyingChainingOutput.pushToOperator(CopyingChainingOutput.java:71) > [flink-dist_2.11-1.12.2-HDP-22.10.09.jar:1.12.2-HDP-22.10.09] > at > org.apache.flink.streaming.runtime.tasks.CopyingChainingOutput.collect(CopyingChainingOutput.java:46) > [flink-dist_2.11-1.12.2-HDP-22.10.09.jar:1.12.2-HDP-22.10.09] > at > org.apache.flink.streaming.runtime.tasks.CopyingChainingOutput.collect(CopyingChainingOutput.java:26) > [flink-dist_2.11-1.12.2-HDP-22.10.09.jar:1.12.2-HDP-22.10.09] > at > org.apache.flink.streaming.api.operators.CountingOutput.collect(CountingOutput.java:50) > [flink-dist_2.11-1.12.2-HDP-22.10.09.jar:1.12.2-HDP-22.10.09] > at > org.apache.flink.streaming.api.operators.CountingOutput.collect(CountingOutput.java:28) > [flink-dist_2.11-1.12.2-HDP-22.10.09.jar:1.12.2-HDP-22.10.09] > at > org.apache.flink.streaming.api.operators.StreamSourceContexts$ManualWatermarkContext.processAndCollectWithTimestamp(StreamSourceContexts.java:322) > [flink-dist_2.11-1.12.2-HDP-22.10.09.jar:1.12.2-HDP-22.10.09] > at > org.apache.flink.streaming.api.operators.StreamSourceContexts$WatermarkContext.collectWithTimestamp(StreamSourceContexts.java:426) > [flink-dist_2.11-1.12.2-HDP-22.10.09.jar:1.12.2-HDP-22.10.09] > at > org.apache.flink.streaming.connectors.kafka.internals.AbstractFetcher.emitRecordsWithTimestamps(AbstractFetcher.java:365) > [flink-sql-connector-kafka_2.11-1.12.2-HDP-22.09.20.jar:1.12.2-HDP-22.09.20] > at > org.apache.flink.streaming.connectors.kafka.internals.KafkaFetcher.partitionConsumerRecordsHandler(KafkaFetcher.java:183) > [flink-sql-connector-kafka_2.11-1.12.2-HDP-22.09.20.jar:1.12.2-HDP-22.09.20] > at > org.apache.flink.streaming.connectors.kafka.internals.KafkaFetcher.runFetchLoop(KafkaFetcher.java:142) > [flink-sql-connector-kafka_2.11-1.12.2-HDP-22.09.20.jar:1.12.2-HDP-22.09.20] > at > org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumerBase.run(FlinkKafkaConsumerBase.java:826) > [flink-sql-connector-kafka_2.11-1.12.2-HDP-22.09.20.jar:1.12.2-HDP-22.09.20] > at > org.apache.flink.streaming.api.operators.StreamSource.run(StreamSource.java:110) > [flink-dist_2.11-1.12.2-HDP-22.10.09.jar:1.12.2-HDP-22.10.09] > at > org.apache.flink.streaming.api.operators.StreamSource.run(StreamSource.java:66) > [flink-dist_2.11-1.12.2-HDP-22.10.09.jar:1.12.2-HDP-22.10.09] > at > org.apache.flink.streaming.runtime.tasks.SourceStreamTask$LegacySourceFunctionThread.run(SourceStreamTask.java:263) > [flink-dist_2.11-1.12.2-HDP-22.10.09.jar:1.12.2-HDP-22.10.09] > Caused by: java.lang.IllegalArgumentException: Failed to specify server's > Kerberos principal name > at > org.apache.hadoop.security.SaslRpcClient.getServerPrincipal(SaslRpcClient.java:326) > > ~[flink-shaded-hadoop-2-uber-2.10.1-HDP-22.09.1-release-10.0.jar:2.10.1-HDP-22.09.1-release-10.0] > at > org.apache.hadoop.security.SaslRpcClient.createSaslClient(SaslRpcClient.java:231) > > ~[flink-shaded-hadoop-2-uber-2.10.1-HDP-22.09.1-release-10.0.jar:2.10.1-HDP-22.09.1-release-10.0] > at > org.apache.hadoop.security.SaslRpcClient.selectSaslClient(SaslRpcClient.java:159) > > ~[flink-shaded-hadoop-2-uber-2.10.1-HDP-22.09.1-release-10.0.jar:2.10.1-HDP-22.09.1-release-10.0] > at > org.apache.hadoop.security.SaslRpcClient.saslConnect(SaslRpcClient.java:391) > ~[flink-shaded-hadoop-2-uber-2.10.1-HDP-22.09.1-release-10.0.jar:2.10.1-HDP-22.09.1-release-10.0] > at > org.apache.hadoop.ipc.Client$Connection.setupSaslConnection(Client.java:617) > ~[flink-shaded-hadoop-2-uber-2.10.1-HDP-22.09.1-release-10.0.jar:2.10.1-HDP-22.09.1-release-10.0] > at org.apache.hadoop.ipc.Client$Connection.access$2200(Client.java:423) > ~[flink-shaded-hadoop-2-uber-2.10.1-HDP-22.09.1-release-10.0.jar:2.10.1-HDP-22.09.1-release-10.0] > at org.apache.hadoop.ipc.Client$Connection$2.run(Client.java:829) > ~[flink-shaded-hadoop-2-uber-2.10.1-HDP-22.09.1-release-10.0.jar:2.10.1-HDP-22.09.1-release-10.0] > at org.apache.hadoop.ipc.Client$Connection$2.run(Client.java:825) > ~[flink-shaded-hadoop-2-uber-2.10.1-HDP-22.09.1-release-10.0.jar:2.10.1-HDP-22.09.1-release-10.0] > at java.security.AccessController.doPrivileged(Native Method) > ~[?:1.8.0_342] > at javax.security.auth.Subject.doAs(Subject.java:422) ~[?:1.8.0_342] > at > org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:2012) > > ~[flink-shaded-hadoop-2-uber-2.10.1-HDP-22.09.1-release-10.0.jar:2.10.1-HDP-22.09.1-release-10.0] > at > org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:825) > ~[flink-shaded-hadoop-2-uber-2.10.1-HDP-22.09.1-release-10.0.jar:2.10.1-HDP-22.09.1-release-10.0] > ... 56 more{code} > The task did not fail, but hive failed to load data into the cache. > The hadoop version used in the test is 2.10.1. During the test, it was found > that changing the hadoop version to 2.8.5 did not throw an exception. Only > after hive data is loaded to the cache for the first time and the task is > restarted, the restarted task cannot properly load hive data to the cache; > The test found that if the nth time (n>=2) load the hive data into the cache > and the task is restarted, the restarted task can normally load the hive data > into the cache. -- This message was sent by Atlassian Jira (v8.20.10#820010)