Hadoop安装Hbase启动失败报错解决方法

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: Hadoop安装Hbase启动失败报错解决方法

前言


本篇文章结合多篇博客文章解决方案具体汇总,方便遇到问题以后好解决问题。


本人大数据专业初入大三刚刚接触并开始学习Nosql数据库原理,当然初入一些算法和原理还不是很熟练掌握,有待提升自己的编程结合能力。在此领域本人有诸多不明确疑问,可能文章会有些许错误,望大家在评论区指正,本篇文章错误将会不断更正维护。


先进入hbase文件目录里看日志文件看看报什么错再具体解决:


vi /usr/local/hbase/logs/hbase-hadoop-master-hadoop.log


1.报错org.apache.hadoop.security.AccessControlException: Permission denied: user异常解决方法


1、第一种


在hdfs的配置文件中,将dfs.permissions修改为False(不推荐)


2、第二种


执行这样的操作,使用hdfs用户(最高权限)


hadoop dfs -mkdir -p /user/root(如果路径存在可不执行)


hadoop dfs -chown root:hdfs /user/root(如果所属用户一致可不执行)

hadoop dfs -chmod 777 /user/root(如果执行上面操作已解决可不执行,我没有走)


3.第三种


vim /etc/profile


添加:export HADOOP_USER_NAME=hdfs(hdfs为最高权限)

source /etc/profile(记得执行,以保证立即生效)


也可以执行 sed -i '$a export HADOOP_USER_NAME=hdfs' ,记得也要source一下


注意:root可以是其他的用户(路径),如报错是/user/xxx,将root换成xxx即可。


第二种与第三种区别


第二种    第三种

host    全集群的hosts都可以访问没有问题    只有做了环境变量配置的主机可用

root用户调用资源    root用户可以调用hdfs资源    root不能调用资源,如果计算是出现需要使用root用户调用的资源一样会报错

root执行hdfs命令    不能    能


2.FATAL [hadoop1:16000.activeMasterManager] master.HMaster: Failed to become active master

java.net.ConnectException: Call From hadoop1/192.168.30.3 to hadoop1:9000解决方法


错误分析:

从上面的日志可以看出,在连接hadoop1:8020时出错,我们知道8020是hdfs的默认端口,但是我们在配置hadoop集群时在core-site.xml中将hdfs的默认端口改为了9000:


fs.defaultFS
    hdfs://hadoop1:9000/


再观察我们的hbase-site.xml文件:
<configuration>
    <!-- 指定hbase在HDFS上存储的路径 -->
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://hadoop1/hbase</value>
    </property>
</configuration>

不难发现,这时候我们并没有指定hdfs的端口,因此,在hbase启动后它会去找hdfs的默认端口8020,于是就导致了上面的错误。


解决方案:

在配置hbase.rootdir属性时显式指定hdfs的端口为9000,配置文件修改如下:

<configuration>
    <!-- 指定hbase在HDFS上存储的路径 -->
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://hadoop1:9000/hbase</value>
    </property>
</configuration>

只要你在这个节点启动了hbase,那么这个节点就默认为master节点


3.INFO org.apache.zookeeper.ClientCnxn: Opening socket connection to server sdw2/192.168.10.202:2181. Will not attempt to authenticate using SASL


解决方法:


1、同步hbase集群和ZooKeeper集群主机的时间,确保误差在30秒以内。

2、关闭ipv6,并修改/etc/hosts,注释掉以"::1"开头的那行代码


4.

20200928090946300.png

产生错误的原因:zookeeper 链接信息过期了

解决办法:

进入zookeeper 删除hbase (rmr /hbase )重启zookeeper即可


具体步骤: 1、停止hbase(./stop-hbase.sh)


                  2、运行如下代码

hbase org.apache.hadoop.hbase.util.hbck.OfflineMetaRepair


                  3、运行如下代码

/usr/local/hadoop/app/zookeeper/bin/zkCli.sh


                  4、使用  ls / 来扫描zookeeper中的数据


                  5、使用 rmr / hbase删除zookeeper中的hbase数据


                  6、重新启动hbase即可



5.20201012124532108.png

主要错误:ERROR [main] master.HMasterCommandLine: Master exiting

java.lang.RuntimeException: Failed construction of Master: class org.apache.hadoop.hbase.master.HMaster.


Caused by: org.apache.hadoop.hbase.ZooKeeperConnectionException: master:160000x0, quorum=hadoop1:2181,hadoop2:2181,hadoop3:2181, baseZNode=/hbase Unexpected KeeperException creating base node


Caused by: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase


解决方法:说明Hbase没有连接上Zookeeper,我们知道,HBase可以使用内置的Zookeeper,也可以使用外部的Zookeeper,通过在配置文件hbase-env.sh将 export HBASE_MANAGES_ZK 属性设置为false ,设置为外部的Zookeeper(这个没有问题)


export HBASE_MANAGES_ZK=false


所有的节点时间误差不能大于30s,需要同步,安装时hadoop和hbase应该使用同一套域名。/etc/hosts中映射必须要是自己主节点的namenode的名字与hbase和hadoop文件配置中保存一致。


20201012125353461.png


相关实践学习
云数据库HBase版使用教程
&nbsp; 相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情:&nbsp;https://cn.aliyun.com/product/hbase &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
3天前
|
存储 分布式计算 Hadoop
Hadoop节点文件存储Hbase高可靠性
【6月更文挑战第2天】
23 2
|
3天前
|
存储 分布式计算 Hadoop
Hadoop节点文件存储Hbase面向列
【6月更文挑战第2天】
12 2
|
3天前
|
存储 分布式计算 Hadoop
Hadoop节点文件存储HBase设计目的
【6月更文挑战第2天】
20 6
|
8天前
|
分布式计算 Hadoop Java
hadoop的基础设施-protobuf-2.5.0编译和安装
hadoop的基础设施-protobuf-2.5.0编译和安装
17 0
|
11天前
|
分布式计算 安全 Hadoop
HBase Shell-org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet 已解决
在HBase Shell遇到错误时,检查Hadoop非安全模式:`hdfs dfsadmin -safemode get`。问题解决在于`hbase-site.xml`中添加配置:Zookeeper客户端端口设为2181和预写日志提供者设为filesystem。
|
11天前
|
分布式计算 安全 Hadoop
Hadoop 集群一直处于安全模式,强制退出后出现数据丢失警告。解决方法
本文介绍了Hadoop集群安全模式的相关命令和问题解决。当集群处于安全模式时,可使用`hdfs dfsadmin -safemode get`检查状态,`enter`进入,`leave`或`forceExit`离开。若因数据块不一致导致安全模式持续,可通过强制退出,然后删除丢失数据块的文件以恢复正常。如果遇到权限问题,可以使用`chmod`授权或关闭HDFS权限验证(不推荐),配置修改后需重启集群生效。
Hadoop 集群一直处于安全模式,强制退出后出现数据丢失警告。解决方法
|
15天前
|
分布式计算 Hadoop 数据安全/隐私保护
现成Hadoop安装和配置,图文手把手交你
现成Hadoop安装和配置,图文手把手交你
|
19天前
|
消息中间件 关系型数据库 MySQL
实时计算 Flink版操作报错合集之使用 Event Time Temporal Join 关联多个 HBase 后,Kafka 数据的某个字段变为 null 是什么原因导致的
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
34 0
|
19天前
|
SQL 消息中间件 Kafka
实时计算 Flink版操作报错合集之使用 Event Time Temporal Join 关联多个 HBase 后,Kafka 数据的某个字段变为 null 是什么原因导致的
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
36 0
|
22天前
|
分布式计算 Hadoop Java
Hbase2.2.2在线安装配置(对应Hadoop 3.1.3)
Hbase2.2.2在线安装配置(对应Hadoop 3.1.3)
46 2

相关实验场景

更多