Storm整合HBase遇到的各种问题

Storm整合HBase遇到的各种问题


最近在进行Storm整合HBase的时候遇到了各种问题,最终利用了两天一夜,排除了其它错误,把错误锁定在了权限问题上。
以下操作都在虚拟机中进行!
报错: hbase Master is initializing
在网上找了好多解决办法,例如datanode与namenode的id不一样(更改namespaceID),datanode的磁盘空间容量不足(查看Hmaster的日志后发现 org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /hbase/MasterProcWALs/state-00000000000000000011.log could only be replicated to 0 nodes instead of minReplication (=1). There are 1 datanode(s) running and 1 node(s) are excluded in this operation.)等。
一顿操作后,报错变为: ERROR: Can't get master address from ZooKeeper; znode data == null 可以看到hbase无法在Zookeeper中获取到Hmaster 地址,接着打开zkClient,ls发现/hbase下确实没有master,解决办法:删除掉/hbase,重启hdfs和hbase。
操作完后,又报错: hbase Master is initializing,在各种尝试(重装hadoop,更改配置文件),问题解决。
报错原因:1.hdfs磁盘容量不足,2.hdfs多次初始化,导致datanode和namenode不同步。
为了彻底排错,我将Centos重装,我将软件都安装在/home分区下,因此为/home分区分配较大空间,避免hdfs磁盘容量不足报错。为了避免防火墙影响, Systemctl stop firewalld 关闭firewalld防火墙, Systemctl disable firewalld 禁用firewalld防火墙, iptables -P INPUT ACCEPT, iptables -P OUTPUT ACCEPTiptables开启所有端口。将centos虚拟机上所有的运行环境重新配置,再次运行hdfs+zookeeper+hbase,依次查看Hmaster,HRegionServer,Namenode,Datanode,SecondarynameNode进程的日志文件没有发现报错,查看zkClient下的/hbase目录,发现master存在。开始运行hbase shell,list后没有报错。
接着,开始测试Storm整合Hbase写入数据,Storm运行在Maven上,运行之后没有报错,能够正常发数据,但在hbase shell上查不到数据。查看各进程日志,发现也没有报错。查看配置文件也没有问题,经过多次尝试后始终写不进去。
于是单独运行hdfs,利用Storm对hdfs写入数据,发现写入超时:

Caused by: org.apache.hadoop.ipc.RemoteException: Permission denied: user=keji, access=WRITE, inode="/":hadoop:supergroup:drwxr-xr-x

推测出由于hbase的rootdir在hadoop的/目录下,没有写入权限,于是./hadoop fs -ls /,发现根目录下的文件均没有写入权限。在./hadoop fs -chmod -R 777 /之后,hdfs数据写入成功,启动zookeeper和hbase进程,运行hbase写入服务,写入成功。
至此,问题解决。
本来是一个小问题,却花费了大量的时间排错,走了很多弯路,总之还是对linux的使用、hbase、hadoop、zookeeper不够熟悉,但经过大量的试错,逐渐对它们的工作原理有了更深入的理解。错误总会让我们学到更多!

发布了4 篇原创文章 · 获赞 5 · 访问量 1641

猜你喜欢

转载自blog.csdn.net/jiahongfei1213895/article/details/105191215