大数据HBase故障处理流程及HDFS安全模式理解
断电重启后网站信息无法浏览。
代码来源检查
我们的代码将连接以下组件:
- Solr cloud
- MySQL
- Oracle
- HBase
,先检查,否则检查我的,L我们将无法登录。
检查Solr
登录solr管理站点并检查节点是否为绿色。
http://xxx:8983/solr/#/~cloud
发现大家都离线了。即使服务已经在运行,也必须重新启动。
# 1. 开启各个服务器上的zookeeper
# 2. 关闭solr 后再重启
/data/zookeeper-3.4.6/bin/zkServer.sh start
/data/solr/solr-6.3.0/bin/solr stop -all
/data/solr/solr-6.3.0/bin/solr start -force
折腾了一番,一切都是绿色的,网站搜索服务也正常,但是无法加载详细信息。
内容详情页主要使用HBase,所以HBase肯定有问题。
查看HBase
登录管理页面即可查看。
看不出有什么问题,但是后续监控信息为空,说明还是有问题。我们打开主界面查看状态。
我发现区域服务器信息为空,证实了我的猜测。
开始登录HBase shell进行查看。命令
bin/hbase shell
list
list 时出错:
ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet
at org.apache.hadoop.hbase.master.HMaster.checkServiceStarted()
at org.apache.hadoop.hbase.master.MasterRpcServices.isMasterRunning()
at org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$()
at org.apache.hadoop.hbase.ipc.RpcServer.call()
at org.apache.hadoop.hbase.ipc.CallRunner.run()
at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop()
at org.apache.hadoop.hbase.ipc.RpcExecutor$()
at java.lang.Thread.run()
....
util.FSUtils: Waiting for dfs to exit safe mode
出现通信问题,因此我打开 HDFS 检查是否启用了安全模式。
Security is off.
Safe mode is ON. The reported blocks 4028 needs additional 7 blocks to reach the threshold 1.0000 of total blocks 4035. The number of live datanodes 5 has reached the minimum number 0. Safe mode will be turned off automatically once the thresholds have been reached.
3,236 files and directories, 4,038 blocks = 7,274 total filesystem object(s).
Heap Memory used 127.18 MB of 2.96 GB Heap Memory. Max Heap Memory is 2.96 GB.
Non Heap Memory used 90.57 MB of 92.66 MB Commited Non Heap Memory. Max Non Heap Memory is <unbounded>.
长时间进入安全模式后,请关闭安全模式
hdfs dfsadmin -safemode leave
报告bug
safemode: Access denied for user root. Superuser privilege is required
检查哪个用户正在运行hdfs
ps -ef | grep 'hdfs'
su hdfs
hdfs dfsadmin -safemode leave
再次刷新hbase UI显示。
总结
此问题是由于HDFS长时间进入安全模式导致的。
了解HDFS安全模式
安全模式是hadoop的一种保护机制,用于保证集群中数据块的安全。集群启动时,首先会进入安全模式。当系统处于安全模式时,检查数据块的完整性。
配置文件中定义了最低副本速度。
正常情况下,安全模式会运行一段时间后自动退出。我们只需要等一会儿。我们应该等多久?我们可以通过网络查看退出安全模式的剩余时间。
这次没有注明时间,所以等了10多个小时。
命令hadoop fs –safemode get 查看安全模式状态
命令hadoop fs –safemode enter 进入安全模式状态
命令hadoop fs –safemode leave 离开安全模式状态
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。