首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    HBase创建快照(snapshot)出现异常的处理方法

    01.hbase(main):004:0> snapshot 'booking', 'booking-snapshot-20140912'  02.  03.ERROR: org.apache.Hadoop.hbase.snapshot.HBaseSnapshotException: Snapshot { ss=booking-snapshot-20140912 table=booking type=FLUSH } had an error.  Procedure booking-snapshot-20140912 { waiting=[hbase1.data.cn,60020,1407930968832, hbase45.data.cn,60020,1408609189376, hbase23.data.cn,60020,1407930978740, hbase37.data.cn,60020,1408608587411, hbase46.data.cn,60020,1408609190515, hbase6.data.cn,60020,1407930958926, hbase44.data.cn,60020,1408609188252, hbase7.data.cn,60020,1407930960021, hbase49.data.cn,60020,1408609193897, hbase47.data.cn,60020,1408609191647, hbase21.data.cn,60020,1407930976874, hbase39.data.cn,60020,1408608669063, hbase13.data.cn,60020,1407930966976, hbase15.data.cn,60020,1407930969235, hbase19.data.cn,60020,1407930973863, hbase16.data.cn,60020,1407930971152, hbase18.data.cn,60020,1407930972762, hbase43.data.cn,60020,1408609187126, hbase12.data.cn,60020,1407930966365, hbase10.data.cn,60020,1407930963512, hbase3.data.cn,60020,1407930955378, hbase11.data.cn,60020,1407930965112, hbase24.data.cn,60020,1407930979654, hbase2.data.cn,60020,1407930954308, hbase9.data.cn,60020,1407930962354, hbase38.data.cn,60020,1408608663894, hbase40.data.cn,60020,1408608674240, hbase41.data.cn,60020,1408609184867, hbase4.data.cn,60020,1407930956670, hbase36.data.cn,60020,1408608406292, hbase17.data.cn,60020,1407930972505, hbase35.data.cn,60020,1408607982898, hbase20.data.cn,60020,1407930974993, hbase48.data.cn,60020,1408609192763, hbase22.data.cn,60020,1407930978159, hbase8.data.cn,60020,1407930961333] done=[] }  04.    at org.apache.hadoop.hbase.master.snapshot.SnapshotManager.isSnapshotDone(SnapshotManager.java:342)  05.    at org.apache.hadoop.hbase.master.HMaster.isSnapshotDone(HMaster.java:2905)  06.    at org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java:40494)  07.    at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2012)  08.    at org.apache.hadoop.hbase.ipc.CallRunne

    02

    tried to access method com.google.common.base.Stopwatch

    Caused by: org.apache.hadoop.hbase.DoNotRetryIOException: java.lang.IllegalAccessError: tried to access method com.google.common.base.Stopwatch.<init>()V from class org.apache.hadoop.hbase.zookeeper.MetaTableLocator     at org.apache.hadoop.hbase.client.RpcRetryingCaller.translateException(RpcRetryingCaller.java:229)     at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:202)     at org.apache.hadoop.hbase.client.ClientScanner.call(ClientScanner.java:326)     at org.apache.hadoop.hbase.client.ClientScanner.nextScanner(ClientScanner.java:301)     at org.apache.hadoop.hbase.client.ClientScanner.initializeScannerInConstruction(ClientScanner.java:166)     at org.apache.hadoop.hbase.client.ClientScanner.<init>(ClientScanner.java:161)     at org.apache.hadoop.hbase.client.HTable.getScanner(HTable.java:794)     at org.springframework.data.hadoop.hbase.HbaseTemplate$1.doInTable(HbaseTemplate.java:132)     at org.springframework.data.hadoop.hbase.HbaseTemplate.execute(HbaseTemplate.java:61)     ... 75 more 首先确认,Stopwatch在google的guava包下,果断开始查guava,发现项目里有两个版本的guava,删除一个,保留与当前hbase版本匹配的另一个,运行成功。

    03

    HBase thrift2 TIOError

    如果HBase thrift2报:“TIOError exception: Default TException”, 这个可能是因为操作的表不存在,不一定是网络或磁盘操作异常。 HBase Thrift2偷懒了,所有异常被统一成了TIOError和TIllegalArgument两个异常, 导致调用者无法区分,而且出错信息也没能很好的带过来,增加了定位工作量。 在HBase client中为如下一个继承关系: public class TableNotFoundException extends DoNotRetryIOException public class DoNotRetryIOException extends HBaseIOException public class HBaseIOException extends IOException HBase master相关日志: 2017-05-27 17:20:42,879 ERROR [thrift2-worker-7] client.AsyncProcess: Failed to get region location org.apache.hadoop.hbase.TableNotFoundException: ABCDE         at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegionInMeta(ConnectionManager.java:1285)         at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegion(ConnectionManager.java:1183)         at org.apache.hadoop.hbase.client.AsyncProcess.submit(AsyncProcess.java:422)         at org.apache.hadoop.hbase.client.AsyncProcess.submit(AsyncProcess.java:371)         at org.apache.hadoop.hbase.client.BufferedMutatorImpl.backgroundFlushCommits(BufferedMutatorImpl.java:245)         at org.apache.hadoop.hbase.client.BufferedMutatorImpl.flush(BufferedMutatorImpl.java:197)         at org.apache.hadoop.hbase.client.HTable.flushCommits(HTable.java:1461)         at org.apache.hadoop.hbase.client.HTable.put(HTable.java:1017)         at org.apache.hadoop.hbase.thrift2.ThriftHBaseServiceHandler.put(ThriftHBaseServiceHandler.java:243)         at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)

    02

    2021年大数据HBase(十五):HBase的Bulk Load批量加载操作

    很多时候,我们需要将外部的数据导入到HBase集群中,例如:将一些历史的数据导入到HBase做备份。我们之前已经学习了HBase的Java API,通过put方式可以将数据写入到HBase中,我们也学习过通过MapReduce编写代码将HDFS中的数据导入到HBase。但这些方式都是基于HBase的原生API方式进行操作的。这些方式有一个共同点,就是需要与HBase连接,然后进行操作。HBase服务器要维护、管理这些连接,以及接受来自客户端的操作,会给HBase的存储、计算、网络资源造成较大消耗。此时,在需要将海量数据写入到HBase时,通过Bulk load(大容量加载)的方式,会变得更高效。可以这么说,进行大量数据操作,Bulk load是必不可少的。

    02
    领券