千家信息网

HBase-0.98.9如何搭建配置

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍HBase-0.98.9如何搭建配置,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一 配置1.1 hbase-env.sh其它不变,export HBASE_M
千家信息网最后更新 2026年11月02日HBase-0.98.9如何搭建配置

这篇文章主要介绍HBase-0.98.9如何搭建配置,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

一 配置

1.1 hbase-env.sh

其它不变,export HBASE_MANAGES_ZK=false,这表示不使用hbase自带的zookeeper,而使用外部的zookeeper(我使用的是跟hadoop集群配置的zookeeper)

1.2 hbase-site.xml

 hbase.rootdir hdfs://master1:8020/hbase The directory shared by region servers. hbase.zookeeper.property.clientPort 2181 Property from ZooKeeper's config zoo.cfg. The port at which the clients will connect.  zookeeper.session.timeout 120000 hbase.zookeeper.quorum master1,master2,slave1 hbase.tmp.dir /root/hbasedata hbase.cluster.distributed true

1.3 regionservers

master1master2slave1

1.4 一些配置参数的解释

hbase.zookeeper.property.clientPort:指定zk的连接端口

zookeeper.session.timeout:RegionServer与Zookeeper间的连接超时时间。当超时时间到后,ReigonServer会被Zookeeper从RS集群清单中移除,HMaster收到移除通知后,会对这台server负责的regions重新balance,让其他存活的RegionServer接管.

hbase.zookeeper.quorum:默认值是 localhost,列出zookeepr ensemble中的servers

2 启动/关闭

在master1上执行

bin/start-hbase.sh

bin/stop-hbase.sh

3 测试

如果web管理页面可以打开,说明Hmaster启动成功:http:master1:60010

在master1上执行

{HBASE_HOME}/bin/hbase shell

进入shell命令行,通过创建表等操作来检查不是不工作正常。

hbase(main):001:0> create 'scores','grade', 'course'

4 注意事项

HBase集群需要依赖于一个Zookeeper ensemble。HBase集群中的所有节点以及要访问HBase的客户端都需要能够访问到该Zookeeper ensemble。HBase自带了Zookeeper,但为了方便其他应用程序使用Zookeeper,最好使用单独安装的Zookeeper ensemble。

此外,Zookeeper ensemble一般配置为奇数个节点,并且Hadoop集群、Zookeeper ensemble、HBase集群是三个互相独立的集群,并不需要部署在相同的物理节点上,他们之间是通过网络通信的。

需要注意的是,如果要禁止启动hbase自带的zookeeper,那么,不仅仅需要刚才的export HBASE_MANAGES_ZK=false配置,还需要hdfs-site.xml中的hbase.cluster.distributed为true,否则你在启动时会遇到Could not start ZK at requested port of 2181 错误,这是因为hbase尝试启动自带的zookeeper,而我们已经启动了自己安装的那个zookeeper,默认都使用2181端口,所以出错。

还有,有时候会遇到stop-hbase.sh执行很长时间未结束,很可能的原因是你之前把zookeeper关闭了.

最后,Hbase不需要mapreduce,所以只要start-dfs.sh启动hdfs,然后到zookeeper各节点上启动zookeeper,最后再hbase-start.sh启动hbase即可.

二 安装运行遇到的错误汇总:

1. habse启动失败,查看日志发现报错:

zookeeper 启动失败 BindException: Address already in use

原因:zk在hbase启动之前就已经启动(因为我采用的是外部的zk集群)。解决方法是环境变量设置export HBASE_MANAGES_ZK=false,同时确保hbase-env.sh里也是相同设置。

2. 再次启动发现hmaster还是没有起起来,查看日志发现报错:

hbase java.lang.runtimeexception hmaster aborted,查找error那一行是failed on connection exception: java.net.ConnectException: master1 Connection refused

原因:master1节点跟hadoop集群连接失败,怀疑是hbase-site.xml配置有问题。其与hadoop连接配置为:

hbase.rootdir

hdfs://master1:9000/hbase

这里配置的9000,而集群fs.defaultfs 本来端口是8020:

修改之后,重新启动hvase,一切正常。。。

3. hbase内置hadoop jar包跟已有的集群版本不一样,需要进行替换以确保稳定性和一致性。
rm -rf /usr/hbase-0.98.21-hadoop2/lib/hadoop*.jar

find /usr/hadoop/share/hadoop -name "hadoop*jar" | xargs -i cp {} /usr/hbase-0.98.21-hadoop2/lib

替换之后重启发现hmaster又启动不起来了,查看日志发现:

Caused by: java.lang.ClassNotFoundException: com.amazonaws.auth.AWSCredentialsProvider

少了一个jar包。

解决方案:
需要将 hadoop-2.6.3/share/hadoop/tools/lib/aws-java-sdk-1.7.4.jar 拷贝到hbase/lib下

4.经过上面几次折腾之后发现重启hbase之后,只有hMaster能启动,其他节点起不了。日志错误如下。手动启动regionserver后,发现hmaster又是变成阻塞状态,在shell控制台无法进行表操作。

2015-07-01 04:39:34,480 WARN  [MASTER_META_SERVER_OPERATIONS-master:60000-0] master.AssignmentManager: Can't move 1588230740, there is no destination server available. 2015-07-01 04:39:34,480 WARN  [MASTER_META_SERVER_OPERATIONS-master:60000-0] master.AssignmentManager: Unable to determine a plan to assign {ENCODED => 1588230740, NAME => 'hbase:meta,,1', STARTKEY => '', ENDKEY => ''} 2015-07-01 04:39:35,480 WARN  [MASTER_META_SERVER_OPERATIONS-master:60000-0] master.AssignmentManager: Can't move 1588230740, there is no destination server available. 2015-07-01 04:39:35,481 WARN  [MASTER_META_SERVER_OPERATIONS-master:60000-0] master.AssignmentManager: Unable to determine a plan to assign {ENCODED => 1588230740, NAME => 'hbase:meta,,1', STARTKEY => '', ENDKEY => ''} 2015-07-01 04:39:36,379 ERROR [RpcServer.handler=6,port=60000] master.HMaster: Region server server2.corp.gs.com,60020,1435743503791 reported a fatal error: ABORTING region server server1.corp.gs.com,60020,1435743483790: org.apache.hadoop.hbase.YouAreDeadException: Server REPORT rejected; currently processing server1.corp.gs.com,60020,1435743483790 as dead server         at org.apache.hadoop.hbase.master.ServerManager.checkIsDead(ServerManager.java:339)         at org.apache.hadoop.hbase.master.ServerManager.regionServerReport(ServerManager.java:254)         at org.apache.hadoop.hbase.master.HMaster.regionServerReport(HMaster.java:1343)         at org.apache.hadoop.hbase.protobuf.generated.RegionServerStatusProtos$RegionServerStatusService$2.callBlockingMethod(RegionServerStatusProtos.java:5087)         at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2175)         at org.apache.hadoop.hbase.ipc.RpcServer$Handler.run(RpcServer.java:1879) Cause: org.apache.hadoop.hbase.YouAreDeadException: org.apache.hadoop.hbase.YouAreDeadException: Server REPORT rejected; currently processing server1.corp.gs.com,60020,1435743483790 as dead server

原因:极有可能是zk机器的hbase数据错误。

解决方案:

1. 停掉所有hbase的进程先
2. 删掉zk中的hbase数据

hbase zkcli或者bin/zkCli.sh进入zk命令行ls / #可以看到hbase数据存在rmr /hbase #删除hbase数据


3. 运行hdfs fsck /hbase 确保数据没有冲突
4. 重新启动start-hbase.sh
5. 如果还是只有主节点运行,则手动启动regionserver

./hbase-daemon.sh start regionserver


6. 运行 hbase hbck 监测数据是否一致。如果有问题再运行 hbase hbck -fix (or
-repair)

* 运行hbase hbck - repair 有时候会报错connection refuse,这是因为regionserver又挂掉了,要确保regionserver是运行状态

还有问题参考下这篇文章吧http://apache-hbase.679495.n3.nabble.com/Corrupted-META-td4072787.html。

5. 重启hbase之后Hmaster启动不了,报错org.apache.hadoop.hbase.util.FileSystemVersionException: File system needs to be upgraded. You have version null and I want version 8。

解决方法:

log中可以发现可能是hbase.version文件消失了,如果只是测试hbase,可以直接把hdfs中的/hbase删掉。,然后重启就好了,但是以前的数据就丢失了。

bin/hadoop fs -ls /hbase

发现/hbase/hbase.version确实已经消失了,去/lost+found目录找确实能找到。

如果需要保留以前数据,可以按下面步骤:

bin/hadoop fs -mv /hbase /hbase.bk

重启HBase,这时就生成了/hbase/hbase.version文件,然后:

bin/hadoop fs -cp /hbase/hbase.version /hbase.bk/bin/hadoop fs -rmr /hbase bin/hadoop fs -mv /hbase.bk /hbase

这样再次重启HBase,发现Hbase开始splitting hlogs,数据得以恢复。

6. hbase升级到1.1.6之后,发现web端口60010打不开了。

原来是因为1.0版本之后的hbase的master web 默认是不运行的,所以需要自己配置默认端口。配置如下

在hbase-site.xml中加入一下内容即可


hbase.master.info.port
60010

同理可以配置regionserver web端口

以上是"HBase-0.98.9如何搭建配置"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

配置 集群 数据 运行 节点 端口 原因 日志 错误 内容 篇文章 问题 相同 一致 再次 只有 命令 手动 文件 方案 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中智农互联网科技 湖北九亚互联网络科技有限公司 广州淘业互联网络科技 小马过河互联网科技 电子科技大学互联网 互联网科技视频素材 互联网科技博主是什么意思 茂名市互联网科技产业园 互联网对科技的发展 荆州市昕露互联网络科技有限公司 互联网科技产业特征 河南住房之家互联网科技 华夏恒生互联网科技013171 朱啸虎曾投资哪些互联网科技企业 特约风豹互联网科技为什么扣费 35岁以上互联网科技行业 互联网科技收购价值 保山互联网科技靠谱吗 杭州融税互联网科技有限公司 利用互联网等科技手段 互联网高科技 广东万易互联网科技有限公司惠州分公司 唐信互联网科技 小马过河互联网科技 融势互联网科技 亿人帮互联网科技 互联网科技实习生岗位职责 互联网科技公司营业执照怎么办理 西安有哪些互联网高科技企业 福建互联网展示科技馆设计
0