使用shc从hbase读取数据时出错

z6psavjg  于 2021-07-13  发布在  Hbase
关注(0)|答案(0)|浏览(328)

我是spark的新手,想在hbase表中读/写数据。我在阅读本文时遇到了一个错误。
版本:spark:2.4.7;hbase:1.4.13;斯卡拉:2.11.12
命令:

  1. spark-shell --jars /usr/lib/hbase/shc/core/target/shc-core-1.1.3-2.4-s_2.11.jar,/usr/lib/hbase/lib/htrace-core4-4.1.0-incubating.jar,/usr/lib/hbase/hbase-client.jar,/usr/lib/hbase/hbase-common.jar,/usr/lib/hbase/hbase-server.jar,/usr/lib/hbase/hbase-protocol.jar,/usr/lib/hbase/lib/htrace-core4-4.1.0-incubating.jar

错误: java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/client/TableDescriptor 错误屏幕截图
我也尝试过其他关于cloudera的博客和文章,但每次都会遇到同样的错误。
我使用的版本之间是否存在兼容性问题?
更新#1
我可以通过升级hbase客户端、hbase服务器和hbase协议版本来解决上述错误。还必须在命令中包括hbase shaded杂项和hbase协议shaded。
更新的命令:

  1. spark-shell --jars /usr/lib/hbase/shc/core/target/shc-core-1.1.3-2.4-s_2.11.jar,/usr/lib/hbase/lib/htrace-core4-4.1.0-incubating.jar,/usr/lib/hbase/hbase-client-2.4.0.jar,/usr/lib/hbase/hbase-common-2.4.0.jar,/usr/lib/hbase/hbase-server-2.4.0.jar,/usr/lib/hbase/hbase-protocol-2.4.0.jar,/usr/lib/hbase/lib/htrace-core4-4.1.0-incubating.jar,/usr/lib/hbase/hbase-shaded-miscellaneous-2.2.1.jar,/usr/lib/hbase/hbase-protocol-shaded-2.4.0.jar

现在我得到了另一个错误:

  1. java.io.IOException: java.lang.reflect.UndeclaredThrowableException
  2. at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:232)
  3. at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:128)
  4. at org.apache.spark.sql.execution.datasources.hbase.HBaseConnectionCache$$anonfun$getConnection$1.apply(HBaseConnectionCache.scala:144)
  5. at org.apache.spark.sql.execution.datasources.hbase.HBaseConnectionCache$$anonfun$getConnection$1.apply(HBaseConnectionCache.scala:144)
  6. at org.apache.spark.sql.execution.datasources.hbase.HBaseConnectionCache$$anonfun$1.apply(HBaseConnectionCache.scala:135)
  7. at org.apache.spark.sql.execution.datasources.hbase.HBaseConnectionCache$$anonfun$1.apply(HBaseConnectionCache.scala:133)
  8. at scala.collection.mutable.HashMap.getOrElseUpdate(HashMap.scala:79)
  9. at org.apache.spark.sql.execution.datasources.hbase.HBaseConnectionCache$.getConnection(HBaseConnectionCache.scala:133)
  10. at org.apache.spark.sql.execution.datasources.hbase.HBaseConnectionCache$.getConnection(HBaseConnectionCache.scala:144)
  11. at org.apache.spark.sql.execution.datasources.hbase.RegionResource.init(HBaseResources.scala:96)
  12. at org.apache.spark.sql.execution.datasources.hbase.ReferencedResource$class.liftedTree1$1(HBaseResources.scala:60)
  13. at org.apache.spark.sql.execution.datasources.hbase.ReferencedResource$class.acquire(HBaseResources.scala:57)
  14. at org.apache.spark.sql.execution.datasources.hbase.RegionResource.acquire(HBaseResources.scala:91)
  15. at org.apache.spark.sql.execution.datasources.hbase.ReferencedResource$class.releaseOnException(HBaseResources.scala:77)
  16. at org.apache.spark.sql.execution.datasources.hbase.RegionResource.releaseOnException(HBaseResources.scala:91)
  17. at org.apache.spark.sql.execution.datasources.hbase.RegionResource.<init>(HBaseResources.scala:111)
  18. at org.apache.spark.sql.execution.datasources.hbase.HBaseTableScanRDD.getPartitions(HBaseTableScan.scala:66)
  19. at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:273)
  20. at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:269)
  21. at scala.Option.getOrElse(Option.scala:121)
  22. at org.apache.spark.rdd.RDD.partitions(RDD.scala:269)
  23. at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:49)
  24. at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:273)
  25. at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:269)
  26. at scala.Option.getOrElse(Option.scala:121)
  27. at org.apache.spark.rdd.RDD.partitions(RDD.scala:269)
  28. at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:49)
  29. at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:273)
  30. at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:269)
  31. at scala.Option.getOrElse(Option.scala:121)
  32. at org.apache.spark.rdd.RDD.partitions(RDD.scala:269)
  33. at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:49)
  34. at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:273)
  35. at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:269)
  36. at scala.Option.getOrElse(Option.scala:121)
  37. at org.apache.spark.rdd.RDD.partitions(RDD.scala:269)
  38. at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:49)
  39. at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:273)
  40. at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:269)
  41. at scala.Option.getOrElse(Option.scala:121)
  42. at org.apache.spark.rdd.RDD.partitions(RDD.scala:269)
  43. at org.apache.spark.sql.execution.SparkPlan.executeTake(SparkPlan.scala:384)
  44. at org.apache.spark.sql.execution.CollectLimitExec.executeCollect(limit.scala:38)
  45. at org.apache.spark.sql.Dataset.org$apache$spark$sql$Dataset$$collectFromPlan(Dataset.scala:3416)
  46. at org.apache.spark.sql.Dataset$$anonfun$head$1.apply(Dataset.scala:2553)
  47. at org.apache.spark.sql.Dataset$$anonfun$head$1.apply(Dataset.scala:2553)
  48. at org.apache.spark.sql.Dataset$$anonfun$52.apply(Dataset.scala:3391)
  49. at org.apache.spark.sql.execution.SQLExecution$.org$apache$spark$sql$execution$SQLExecution$$executeQuery$1(SQLExecution.scala:83)
  50. at org.apache.spark.sql.execution.SQLExecution$$anonfun$withNewExecutionId$1$$anonfun$apply$1.apply(SQLExecution.scala:94)
  51. at org.apache.spark.sql.execution.QueryExecutionMetrics$.withMetrics(QueryExecutionMetrics.scala:141)
  52. at org.apache.spark.sql.execution.SQLExecution$.org$apache$spark$sql$execution$SQLExecution$$withMetrics(SQLExecution.scala:178)
  53. at org.apache.spark.sql.execution.SQLExecution$$anonfun$withNewExecutionId$1.apply(SQLExecution.scala:93)
  54. at org.apache.spark.sql.execution.SQLExecution$.withSQLConfPropagated(SQLExecution.scala:200)
  55. at org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:92)
  56. at org.apache.spark.sql.Dataset.org$apache$spark$sql$Dataset$$withAction(Dataset.scala:3390)
  57. at org.apache.spark.sql.Dataset.head(Dataset.scala:2553)
  58. at org.apache.spark.sql.Dataset.take(Dataset.scala:2767)
  59. at org.apache.spark.sql.Dataset.getRows(Dataset.scala:256)
  60. at org.apache.spark.sql.Dataset.showString(Dataset.scala:293)
  61. at org.apache.spark.sql.Dataset.show(Dataset.scala:754)
  62. at org.apache.spark.sql.Dataset.show(Dataset.scala:713)
  63. at org.apache.spark.sql.Dataset.show(Dataset.scala:722)
  64. ... 55 elided
  65. Caused by: java.lang.reflect.UndeclaredThrowableException: java.lang.reflect.InvocationTargetException: java.lang.NoClassDefFoundError: org/apache/hbase/thirdparty/com/google/protobuf/RpcController
  66. at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1944)
  67. at org.apache.hadoop.hbase.security.User$SecureHadoopUser.runAs(User.java:347)
  68. at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:228)
  69. ... 116 more
  70. Caused by: java.lang.reflect.InvocationTargetException: java.lang.NoClassDefFoundError: org/apache/hbase/thirdparty/com/google/protobuf/RpcController
  71. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
  72. at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
  73. at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
  74. at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
  75. at org.apache.hadoop.hbase.client.ConnectionFactory.lambda$createConnection$0(ConnectionFactory.java:230)
  76. at java.security.AccessController.doPrivileged(Native Method)
  77. at javax.security.auth.Subject.doAs(Subject.java:422)
  78. at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1926)
  79. ... 118 more
  80. Caused by: java.lang.NoClassDefFoundError: org/apache/hbase/thirdparty/com/google/protobuf/RpcController
  81. at java.lang.ClassLoader.defineClass1(Native Method)
  82. at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
  83. at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
  84. at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
  85. at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
  86. at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
  87. at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
  88. at java.security.AccessController.doPrivileged(Native Method)
  89. at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
  90. at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
  91. at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
  92. at org.apache.hadoop.hbase.client.ConnectionImplementation.<init>(ConnectionImplementation.java:286)
  93. ... 126 more
  94. Caused by: java.lang.ClassNotFoundException: org.apache.hbase.thirdparty.com.google.protobuf.RpcController
  95. at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
  96. at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
  97. at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
  98. ... 138 more

我在这方面哪里出了问题?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题