问题一:使用自己搭建的zookeeper集群而不使用hbase自带的zookeeper解决办法?
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
启动hbase时问题列表: 1 查看hbase-hadoop-master-ubuntu118.log,发现其中的错误为 2012-09-02 22:59:58,099 INFO org.apache.hadoop.hbase.ipc.HBaseRpcMetrics: Initializing RPC Metrics with hostName=HMaster, port=60000 2012-09-02 22:59:58,217 ERROR org.apache.hadoop.hbase.master.H
2012年11月28日 出现故障," Unable to get data of znode /hbase/root-region-server" 问题比较诡异,两个机房,只有一个机房故障,5台服务器相续故障,错误日志相同。使用的HBase客户端版本为0.94.0 1)分析步骤: 1 jstack jmap 查看是否有死锁、block或内存溢出 jmap 看内存回收状况没有什么异常,内存和CPU占用都不多 jstack pid > test.log pid: Unable to open socket f
线上最近通过日志系统发现某BU的服务里HBase某时间段内有几十次如下这样的报错,error发生在同一个表的查询上,而业务对该表的查询仅限于点查询:
1、下载 http://flume.apache.org/download.html http://mirrors.tuna.tsinghua.edu.cn/apache/flume/1.8.0/ap
HBase启动时,警告: Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0 Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
转自:http://www.aboutyun.com/thread-14977-1-1.html 最近公司HBase(CDH-4.6.0)遇到了一个麻烦问题,觉得有必要记录下整个解决的过程。
本文承接上一篇:hadoop_学习_02_Hadoop环境搭建(单机) ,主要是搭建HBase的单机环境
陆续好多人会问,在写入Hbase的时候总是会出现空指针的问题,而检查程序,看起来一点也没有错。 如报的错误大致如下: Error: application failed with exception java.lang.RuntimeException: java.lang.NullPointerException at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java
Hbase 安装 这里我使用docker安装,就直接给出命令了 首次启动 输入下列命令 docker run -d -h myhbase -p 2181:2181 -p 8080:8080 -p 8085:8085 -p 9090:9090 -p 9095:9095 -p 16000:16000 -p 16010:16010 -p 16201:16201 -p 16301:16301 --name hbase harisekhon/hbase 这里设置的hbase的主机名为myhbase d 后续启动,输
Hbase是企业比较常用的大数据组件,对于开发来讲,单纯的开发几乎不可能,往往都会搭建集群,甚至负责集群的维护,特别是公司规模较小。我们VIP中很多成员,都是一个成员扛起了整个公司的大数据部门,被称之为“扛把子”。
这个困扰了很长时间,之前使用cdh版本的,各种报错各种出问题,最终换成了不是cdh版本的。
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版本匹配的另一个,运行成功。
安装 HBase 这里简单搭建了一个单机的 HBase 环境: 安装 JDK 环境,如何安装jdk可以自己网上搜。 下载 HBase,https://hbase.apache.org/downloads.html,这里我们选择下载2.0.1版本,文件名为 hbase-2.0.1.tar.gz,解压到任意目录。 修改 conf/hbase-env.sh ,设置 JAVA_HOME,这个是 /bin/java 所在的目录,通过 which java 查看。 export JAVA_HOME=/java/jdk
HBase 需要依赖 JDK 环境,同时 HBase 2.0+ 以上版本不再支持 JDK 1.7 ,需要安装 JDK 1.8+ 。JDK 安装方式见本仓库:
java.net.ConnectException: Connection refused: no further information at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:567) at org.apache.zookeeper.ClientCnxn$Se
spark向hbase写入数据时抛出的报错,实现代码转:https://blog.csdn.net/qq262593421/article/details/105969665
这是几个月前遇到的一次HBase集群宕机事件,今天重新整理下事故分析报告。概况的说是业务方的一个10节点HBase集群支撑百TB级别的数据量,集群region数量达 23000+,最终集群支持不住业务压力,带来了一次惨痛的宕机事件。
安装 HBase 之前默认我们已经完成了 Hadoop、ZooKeeper 安装,如果还没有安装可以参考如下博文:
测试环境,hdfs被format过。很多基于hdfs的环境都受到了影响。hbase也受到了影响。但是hbase在master启动的过程中,只要hdfs上有/hbase目录
配置Hue集成HBase的过程中,添加角色实例HBase Thrift Server后,把HBase Thrift身份验证(hbase.thrift.security.qop)配置为auth-conf
接下来依次启动hadoop-》zookeeper(每个几点要分别启动)-》hbase
当我把hadoop、hbase安装配置(具体参考这里)好了之后,启动hbase的shell交互模式,输入命令却出现了下面这样的错误: ERROR: org.apache.hadoop.hbase.MasterNotRunningException: Retried 7 times 这是为什么呢,Master为什么没有启动起来呢? 查看logs目录下的Master日志,发现有以下信息: 2012-02-01 14:41:52,867 FATAL org.apache.hadoop.hbase.master.
在前面的文章Fayson介绍了《如何使用Java连接Kerberos的HBase》,虽然非Kerberos环境下访问HBase比较简单,本篇文章Fayson还是主要介绍使用Java访问非Kerberos环境的HBase。
如果想详细了解hbase的安装:http://abloz.com/hbase/book.html 和官网http://hbase.apache.org/
确保机器可以正常访问Internet,如能正常访问https://repo.maven.apache.org等,如果是代理方式则需要设置好eclipse和maven的网络配置。
(一)Hbase协处理器的前世今生 Hbase是仿照Google的BigTable设计的,而其协处理器也是仿照BigTable的协处理实现完成的,具体链接可 参考:http://research.google.com/people/jeff/SOCC2010-keynote-slides.pdf (二)什么是Hbase协处理器(Coprocessors )? Hbase的协处理器在Hbase中属于高级的应用功能,它可以让开发者自定义的代码在服务器端执行,来完成特定的一些功能。 (三)为什
我曾经在Spark大数据开发过程当中,遇到过不少问题,这些问题及解决思路都有记录下来。有道是好记性不如烂笔头,当这些错误和解决思路被记录下来后,下次再遇到时,就能根据以前的坑很快做出回应,当然,若是他人也遇到相应的问题,同样可以提供帮助。
如果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)
ERROR hbase.HServerAddress: Could not resolve the DNS name of ubuntu118 Exception in thread "main" java.lang.IllegalArgumentException: hostname can't be null at java.net.InetSocketAddress.<init>(InetSocketAddress.java:121) at org.apache.had
在hudi中,hbase可以作为索引数据的存储,hudi默认使用的hbase版本为1.2.3。
“ 本文介绍在云端kylin数据迁移的实现方案以及在迁移过程中的遇到哪些问题,并给出了问题解决方案.本次迁移中涉及到的hbase cube表1600+,model数量80+,project 10+”
ERROR: org.apache.hadoop.hbase.MasterNotRunningException: Retried 7 times 这是为什么呢,Master为什么没有启动起来呢? 查看logs目录下的Master日志,发现有以下信息: 2012-02-01 14:41:52,867 FATAL org.apache.hadoop.hbase.master.HMaster: Unhandled exception. Starting shutdown. org.apache.hadoop
: 错误: 找不到或无法加载主类 .Library.Java.JavaVirtualMachines.jdk1.8.0_291.jdk.Contents.Home.bin.java
Hive与HBase整合的实现是利用两者本身对外的API接口互相通信来完成的,其具体工作交由Hive的lib目录中的hive-hbase-handler-*.jar工具类来实现,通信原理如下图所示。
hadoop、hbase、zookeeper是大数据里面三个重要的产品,关于这三个产品的介绍,各种书籍和网站介绍得很多,在这里不再赘述,仅介绍在ubunt下如何安装和配置这三种产品。
基础依赖环境 Apache Hadoop2.7.1 Apache Spark1.6.0 Apache Hive1.2.1 Apache Hbase0.98.12 (1)提前安装好scala的版本,我这里是2.11.7 (2)下载spark-1.6.0源码,解压进入根目录编译 (3)dev/change-scala-version.sh 2.11 修改pom文件,修改对应的hadoop,hbase,hive的版本 执行编译支持hive功能的spark (4)mvn -Pyarn
本篇演示安装配置 Kafka connect 插件实现 MySQL 到 Hbase 的实时数据同步。依赖环境见本专栏前面文章。相关软件版本如下:
HBase 是什么?HBase 是在 Hadoop 分布式文件系统(简称:HDFS)之上的分布式面向列的数据库。而且是 2007 最初原型,历史悠久。
修改conf/hbase-site.xml,配置hbase使用的数据文件的位置,默认在/tmp/hbase-[username],此目录是linux的临时目录,可能会被系统清空,所以最好修改一下
hbase的部署相对于java来说就比较简单啦,主要过程如下: 1.下载hbase最新的稳定版 2.拷贝到相应的目录 3.修改conf目录下的hbase-env.sh,设置java 和不适用内置的zookeeper export JAVA_HOME=/usr/java/jdk1.7.0_21/ export HBASE_MANAGES_ZK=false 4.修改hbase-site.xml,添加以下内容 <property> <name>hbase.rootdir</nam
命名空间是表的逻辑分组,类似于关系数据库系统中的数据库。这种抽象为多租户相关功能奠定了基础:
我在 hadoop001、hadoop002 和 hadoop003 节点上安装了 HBase 集群,其中 hadoop001 和 hadoop002 为 HMaster,hadoop002 和 hadoop003 为 HRegionServer,启动 HBase 后,发现 hadoop002 的 HMaster 和 HRegionServer 进程正常启动,hadoop003 上的 HRegionServer 正常启动,但 hadoop001 上的 HMaster 进程却没有启动,查看 hadoop001 节点上的 HBASE_HOME/logs/hbase-hadoop-master-hadoop001.log 日志文件发现如下报错:
出于CDH集群安全考虑,在CDH集群中增加了Kerberos认证机制。因为HBase的存储系统是基于Hadoop的存储,所以通过HBase客户端访问HBase数据库时需要进行身份认证。在Linux下使用HBase客户端访问HBase数据时需要先kinit初始化Kerberos账号,认证完成后我们就可以直接使用HBase shell操作HBase了。通过Linux的Kinit命令可以方便的完成Kerberos的认证,那么在Java开发中如何完成Kerberos的登录认证呢?本篇文章主要讲述如何使用Java连接Kerberos环境的HBase。
opentsdb是基于Hbase的时序数据库[时间序列数据库]。不具备通用性,主要针对具有时间特性和需求的数据,如监控数据、温度变化数据等。opentsdb说是数据库,但并不能称作为数据库,他是在Hbase(HBase才是具有存储功能的)的基础上,进行数据结构的优化和处理,从而适合存储具有时间特性的数据,同时提供特定的工具进行查询等操作。
ZooKeeper可以独立搭建集群,HBase本身不能独立搭建集群需要和Hadoop和HDFS整合。
本文介绍了如何使用HBase和Zookeeper实现分布式协调,并总结了HBase和Zookeeper的主要概念和命令。
与Phoenix带来的SQL on HBase易用性相比,它带来的负面影响也是巨大的, 大表Join大表,或者全表OrderBy等消耗的资源随数据量呈至少线性增长, 并发直线下降,甚至低到只有百级别,扩容带来的收益下降很快。 另外,Phoenix表查询通过多个独立协调器(Query Server),互相不管对方, 玩命占用HBase资源,在高并发的大查询下就会容易造成HBase整个集群过载。 而像Presto系统所有的请求都是走同一个协调器,可以总控资源使用,优雅的处理过载。 让现有HBase集群聚焦在线KV Store,聚焦作为在线业务的温存储层。
领取专属 10元无门槛券
手把手带您无忧上云