新版博客升级完成

hbase启动问题记录

昨天测试环境的Hbase启动有问题,日志中显示:
transaction type: 1 error: KeeperErrorCode = NoNode for /hbase

hmaster等其他进程日志中显示连接不上zookeeper,发现zookeeper启动有问题。

于是判断可能是zookeeper中的某些数据丢失了,之前也出现过类似的启动问题,都是清除zookeeper所有数据解决的,这显然不能根本上解决问题。

进一步分析和判断想到hbase的数据目录,由于商测环境是用伪分布式的方式部署的,zookeeper集成在hbase里管理,所以zookeeper的数据也在hbase的临时数据目录下。hbase的临时目录默认是放在/tmp的,而linux的/tmp目录是会被定期清理的(参考linux系统的tmpwatch)。到此问题已基本定位清楚了,修改hbase的临时目录位置,问题解决。

  • hbase.rootdir

这个目录是region server的共享目录,用来持久化Hbase。URL需要是'完全正确'的,还要包含文件系统的scheme。例如,要表示hdfs中的 '/hbase'目录,namenode 运行在namenode.example.org9090端口。则需要设置为hdfs:~/~/namenode.example.org:9000 /hbase。默认情况下Hbase是写到/tmp的。不改这个配置,数据会丢失。

默认: file:~/~//tmp/hbase-${user.name}/hbase

hbase.tmp.dir

本地文件系统的临时文件夹。可以修改到一个更为持久的目录上。(/tmp会清除)

默认: /tmp/hbase-${user.name}

这两点是hadoop/hbase系统部署和运维要重点注意的事项

本文永久链接: http://jenwang.me/14853486231037.html


进一步交流:
- Email:jenwang@foxmail.com
- 对于本博客某些话题感兴趣,希望进一步交流的,请加 qq 群:2825967
- 更多技术交流分享在圈子「架构杂谈」,跟老司机们聊聊互联网前沿技术、架构、工具、解决方案等