0


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

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

vim /opt/module/hbase-1.3.3/logs/hbase-root-master-hadoop-single.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 hadoop-single/192.168.136.111 to hadoop-single:9000解决方法**

错误分析:

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

<property> <name>fs.defaultFS</name> <value>hdfs://hadoop-single:9000/</value> </property>

再观察我们的hbase-site.xml文件:

<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://hadoop-single/hbase</value> </property> </configuration>

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

解决方案:

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

<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://hadoop-single: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"开头的那行代码

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

解决办法:
进入zookeeper 删除hbase (rmr /hbase )重启zookeeper即可

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

               2、运行如下代码

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

               3、运行如下代码

                    /opt/module/hadoop/app/zookeeper/bin/zkCli.sh

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

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

               6、重新启动hbase即可

主要错误: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文件配置中保存一致。

标签: hadoop hbase 大数据

本文转载自: https://blog.csdn.net/wuhahaq/article/details/130084525
版权归原作者 冷艳无情的小妈 所有, 如有侵权,请联系我们删除。

“Hadoop安装Hbase启动失败报错解决方法”的评论:

还没有评论