[
https://issues.apache.org/jira/browse/HUDI-1180?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17513153#comment-17513153
]
rex xiong commented on HUDI-1180:
---------------------------------
[~guoyihua] for hadoop 3.2.1,current hbase version2.x has incompatible APIs,
as shown below
{code:java}
// code placeholder
java.lang.NoSuchMethodError:
org.apache.hadoop.hdfs.client.HdfsDataInputStream.getReadStatistics()Lorg/apache/hadoop/hdfs/DFSInputStream$ReadStatistics;
at
org.apache.hudi.org.apache.hadoop.hbase.io.FSDataInputStreamWrapper.updateInputStreamStatistics(FSDataInputStreamWrapper.java:249)
at
org.apache.hudi.org.apache.hadoop.hbase.io.FSDataInputStreamWrapper.close(FSDataInputStreamWrapper.java:296)
at
org.apache.hudi.org.apache.hadoop.hbase.io.hfile.HFileBlock$FSReaderImpl.closeStreams(HFileBlock.java:1825)
at
org.apache.hudi.org.apache.hadoop.hbase.io.hfile.HFilePreadReader.close(HFilePreadReader.java:107)
at
org.apache.hudi.org.apache.hadoop.hbase.io.hfile.HFileReaderImpl.close(HFileReaderImpl.java:1421)
at
org.apache.hudi.io.storage.HoodieHFileReader.close(HoodieHFileReader.java:423)
at
org.apache.hudi.metadata.HoodieBackedTableMetadata.close(HoodieBackedTableMetadata.java:435)
at
org.apache.hudi.metadata.HoodieBackedTableMetadata.lambda$getRecordsByKeys$0(HoodieBackedTableMetadata.java:162)
at java.util.HashMap.forEach(HashMap.java:1290)
at
org.apache.hudi.metadata.HoodieBackedTableMetadata.getRecordsByKeys(HoodieBackedTableMetadata.java:138)
at
org.apache.hudi.metadata.HoodieBackedTableMetadata.getRecordByKey(HoodieBackedTableMetadata.java:128)
at
org.apache.hudi.metadata.BaseTableMetadata.fetchAllPartitionPaths(BaseTableMetadata.java:281)
at
org.apache.hudi.metadata.BaseTableMetadata.getAllPartitionPaths(BaseTableMetadata.java:111)
at org.apache.hudi.common.fs.FSUtils.getAllPartitionPaths(FSUtils.java:308)
at
org.apache.spark.sql.hudi.HoodieSqlCommonUtils$.getAllPartitionPaths(HoodieSqlCommonUtils.scala:81)
at
org.apache.spark.sql.catalyst.catalog.HoodieCatalogTable.getPartitionPaths(HoodieCatalogTable.scala:157)
at
org.apache.spark.sql.hudi.command.ShowHoodieTablePartitionsCommand.run(ShowHoodieTablePartitionsCommand.scala:51)
at
org.apache.spark.sql.execution.command.ExecutedCommandExec.sideEffectResult$lzycompute(commands.scala:75)
at
org.apache.spark.sql.execution.command.ExecutedCommandExec.sideEffectResult(commands.scala:73)
at
org.apache.spark.sql.execution.command.ExecutedCommandExec.executeCollect(commands.scala:84)
at
org.apache.spark.sql.execution.QueryExecution$$anonfun$eagerlyExecuteCommands$1.$anonfun$applyOrElse$1(QueryExecution.scala:110)
at
org.apache.spark.sql.execution.SQLExecution$.$anonfun$withNewExecutionId$5(SQLExecution.scala:103)
at
org.apache.spark.sql.execution.SQLExecution$.withSQLConfPropagated(SQLExecution.scala:163)
at
org.apache.spark.sql.execution.SQLExecution$.$anonfun$withNewExecutionId$1(SQLExecution.scala:90)
at org.apache.spark.sql.SparkSession.withActive(SparkSession.scala:775)
at
org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:64)
at
org.apache.spark.sql.execution.QueryExecution$$anonfun$eagerlyExecuteCommands$1.applyOrElse(QueryExecution.scala:110)
at
org.apache.spark.sql.execution.QueryExecution$$anonfun$eagerlyExecuteCommands$1.applyOrElse(QueryExecution.scala:106)
{code}
> Upgrade HBase to 2.x
> --------------------
>
> Key: HUDI-1180
> URL: https://issues.apache.org/jira/browse/HUDI-1180
> Project: Apache Hudi
> Issue Type: Task
> Components: writer-core
> Affects Versions: 0.9.0
> Reporter: Wenning Ding
> Assignee: Ethan Guo
> Priority: Blocker
> Labels: pull-request-available
> Fix For: 0.11.0
>
> Attachments: image-2022-03-28-13-48-58-149.png
>
>
> Trying to upgrade HBase to 2.3.3 but ran into several issues.
> According to the Hadoop version support matrix:
> [http://hbase.apache.org/book.html#hadoop], also need to upgrade Hadoop to
> 2.8.5+.
>
> There are several API conflicts between HBase 2.2.3 and HBase 1.2.3, we need
> to resolve this first. After resolving conflicts, I am able to compile it but
> then I ran into a tricky jetty version issue during the testing:
> {code:java}
> [ERROR] TestHBaseIndex.testDelete() Time elapsed: 4.705 s <<< ERROR!
> java.lang.NoSuchMethodError:
> org.eclipse.jetty.server.session.SessionHandler.setHttpOnly(Z)V
> [ERROR] TestHBaseIndex.testSimpleTagLocationAndUpdate() Time elapsed: 0.174
> s <<< ERROR!
> java.lang.NoSuchMethodError:
> org.eclipse.jetty.server.session.SessionHandler.setHttpOnly(Z)V
> [ERROR] TestHBaseIndex.testSimpleTagLocationAndUpdateWithRollback() Time
> elapsed: 0.076 s <<< ERROR!
> java.lang.NoSuchMethodError:
> org.eclipse.jetty.server.session.SessionHandler.setHttpOnly(Z)V
> [ERROR] TestHBaseIndex.testSmallBatchSize() Time elapsed: 0.122 s <<< ERROR!
> java.lang.NoSuchMethodError:
> org.eclipse.jetty.server.session.SessionHandler.setHttpOnly(Z)V
> [ERROR] TestHBaseIndex.testTagLocationAndDuplicateUpdate() Time elapsed:
> 0.16 s <<< ERROR!
> java.lang.NoSuchMethodError:
> org.eclipse.jetty.server.session.SessionHandler.setHttpOnly(Z)V
> [ERROR] TestHBaseIndex.testTotalGetsBatching() Time elapsed: 1.771 s <<<
> ERROR!
> java.lang.NoSuchMethodError:
> org.eclipse.jetty.server.session.SessionHandler.setHttpOnly(Z)V
> [ERROR] TestHBaseIndex.testTotalPutsBatching() Time elapsed: 0.082 s <<<
> ERROR!
> java.lang.NoSuchMethodError:
> org.eclipse.jetty.server.session.SessionHandler.setHttpOnly(Z)V
> 34206 [Thread-260] WARN
> org.apache.hadoop.hdfs.server.datanode.DirectoryScanner - DirectoryScanner:
> shutdown has been called
> 34240 [BP-1058834949-10.0.0.2-1597189606506 heartbeating to
> localhost/127.0.0.1:55924] WARN
> org.apache.hadoop.hdfs.server.datanode.IncrementalBlockReportManager -
> IncrementalBlockReportManager interrupted
> 34240 [BP-1058834949-10.0.0.2-1597189606506 heartbeating to
> localhost/127.0.0.1:55924] WARN
> org.apache.hadoop.hdfs.server.datanode.DataNode - Ending block pool service
> for: Block pool BP-1058834949-10.0.0.2-1597189606506 (Datanode Uuid
> cb7bd8aa-5d79-4955-b1ec-bdaf7f1b6431) service to localhost/127.0.0.1:55924
> 34246
> [refreshUsed-/private/var/folders/98/mxq3vc_n6l5728rf1wmcwrqs52lpwg/T/temp1791820148926982977/dfs/data/data1/current/BP-1058834949-10.0.0.2-1597189606506]
> WARN org.apache.hadoop.fs.CachingGetSpaceUsed - Thread Interrupted waiting
> to refresh disk information: sleep interrupted
> 34247
> [refreshUsed-/private/var/folders/98/mxq3vc_n6l5728rf1wmcwrqs52lpwg/T/temp1791820148926982977/dfs/data/data2/current/BP-1058834949-10.0.0.2-1597189606506]
> WARN org.apache.hadoop.fs.CachingGetSpaceUsed - Thread Interrupted waiting
> to refresh disk information: sleep interrupted
> 37192 [HBase-Metrics2-1] WARN org.apache.hadoop.metrics2.impl.MetricsConfig
> - Cannot locate configuration: tried
> hadoop-metrics2-datanode.properties,hadoop-metrics2.properties
> 43904
> [master/iad1-ws-cor-r12:0:becomeActiveMaster-SendThread(localhost:58768)]
> WARN org.apache.zookeeper.ClientCnxn - Session 0x173dfeb0c8b0004 for server
> null, unexpected error, closing socket connection and attempting reconnect
> java.net.ConnectException: Connection refused
> at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
> at
> sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
> at
> org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)
> at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)
> [INFO]
> [INFO] Results:
> [INFO]
> [ERROR] Errors:
> [ERROR] org.eclipse.jetty.server.session.SessionHandler.setHttpOnly(Z)V
> [ERROR] org.eclipse.jetty.server.session.SessionHandler.setHttpOnly(Z)V
> [ERROR] org.eclipse.jetty.server.session.SessionHandler.setHttpOnly(Z)V
> [ERROR] org.eclipse.jetty.server.session.SessionHandler.setHttpOnly(Z)V
> [ERROR] org.eclipse.jetty.server.session.SessionHandler.setHttpOnly(Z)V
> [ERROR] org.eclipse.jetty.server.session.SessionHandler.setHttpOnly(Z)V
> [ERROR] org.eclipse.jetty.server.session.SessionHandler.setHttpOnly(Z)V
> [INFO]
> [ERROR] Tests run: 10, Failures: 0, Errors: 7, Skipped: 0
> [INFO]
> {code}
> Basically currently Hudi and it's dependency Javalin depend on Jetty 9.4.x
> but Hbase depends on jetty 9.3.x. And they have incompatible APIs which could
> not be easily resolved.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)