搭建

ssh无密码设置

配置后,仍需要输入密码访问

异常

按照ssh无密码配置后,仍然需要通过密码才能访问。

分析

可能是ssh相关目录和文件权限未设置。

解决方法

1、将.ssh目录权限修改为700(不可以更高,否则会不安全);

2、将authorized文件权限修改为600。



启动、关闭异常

Warning: $HADOOP_HOME is deprecated.

异常

Hadoop启动和关闭出现这句警告信息。

分析

Hadoop 在bin/hadoop-config.sh 中对HADOOP_HOME 进行了判断,这个警告是提醒你自己也定义了变量HADOOP_HOME。

判断发生的地方:

# the root of theHadoop installation
exportHADOOP_PREFIX=`dirname "$this"`/..
exportHADOOP_HOME=${HADOOP_PREFIX} 
报出错误的地方: 
if ["$HADOOP_HOME_WARN_SUPPRESS" == "" ] && ["$HADOOP_HOME" != "" ];         then
echo "Warning:\$HADOOP_HOME is deprecated." 1>&2

留着异常不会对程序的正常运行产生影响。

解决方法

添加export HADOOP_HOME_WARN_SUPPRESS=1 到 hadoop-env.sh 或者/etc/profile中,注意要添加到集群中每一个节点中。

 

HMaster无法启动

异常

使用hbase的start-hbase脚本运行后,输入jps命令,发现master节点没有运行HMaster。或者HMaster当时启动,过一段时间后执行操作时没响应,发现又退出了。

分析

1、hadoop集群的hdfs仍处在安全模式,输入命令:

java hadoop 连接密码 hadoop密码错误_安全模式

显示

java hadoop 连接密码 hadoop密码错误_解决方法_02

这说明hdfs在安全模式下,不让写入,HMaster就无法启动。

解决方法

1、第一种情况,可以强制离开安全模式:

java hadoop 连接密码 hadoop密码错误_java hadoop 连接密码_03

java hadoop 连接密码 hadoop密码错误_java hadoop 连接密码_03

显示

java hadoop 连接密码 hadoop密码错误_解决方法_05

,说明已离开。

然后重新启动HBase集群。


格式化后,datanode服务无法启动

异常

将namenode格式化以后,重新启动hadoop集群,发现datanode服务没起来。

分析

datanode中的数据版本与namenode不一致。

解决方法

1、datanode节点中hdfs目录下的dfs/data/current/VERSION中的namespaceID值修改为和namenode中的该值一样;

2、方法1如果不可行,则将datanode与namenode在hdfs中的数据全部删除。


HBase集群无法停止

异常

使用stop-hbase.sh命令,无法停止,一直显示:

java hadoop 连接密码 hadoop密码错误_zookeeper_06

分析

1、在hadoop安全模式下启动了hbase,则无法停止(见“HMaster无法启动”异常描述)。

2、zookeeper响应节点数量<=zookeeper节点半数时,则禁止外部读写访问,因此无法接收停止集群的命令。

3、数据块丢失,带有数据的datanode或regionserver节点失去响应。

解决方法

1、离开安全模式。

2、手动启动失去相应的节点zookeeper服务,直至达到半数以上,命令如下:

hbase-daemon.sh start zookeeper

3、手动启动datanode服务,启动命令如下:

java hadoop 连接密码 hadoop密码错误_安全模式_07

手动启动失去相应的regionserver服务,命令如下:

hbase-daemon.sh start regionserver



运行时异常

从节点失去响应

异常

集群从节点因为某些原因停止,而主节点一直运行,需要手动启动从节点的服务。

解决方法

如果该节点是datanode,则启动命令如下:

java hadoop 连接密码 hadoop密码错误_zookeeper_08

Tasktracker节点,则启动命令如下:

java hadoop 连接密码 hadoop密码错误_解决方法_09

Zookeeper节点:
hbase-daemon.sh start zookeeper
Regionserver节点:
hbase-daemon.sh start regionserver


HBase客户端无法访问

异常

集群的zookeeper监控端口显示如下错误:

java hadoop 连接密码 hadoop密码错误_解决方法_10

分析

1、zookeeper节点活跃数<=集群节点半数

解决方法

1、手动启动zookeeper,直至数量达到集群节点个数的半数以上。再次访问master节点的60010端口,不报错误,则客户端就可以访问集群。

 

HBase客户端访问,报NotServingRegionException异常

异常

客户端访问Hbase集群时,抛出该异常信息。

分析

1、抛出这个异常是因为regionserver意外停掉,而regionserver关闭的原因有以下几种:      HBase集群在读写过程中,可能由于Region Split或Region Balance等导致Region的短暂下线,此时客户端与HBase集群进行RPC操作时会抛出NotServingRegionException异常,从而导致读写操作失败。

2、在没有停止hbase集群时重启机器,导致执行list时表名存在,而执行其他命令时提示该表不存在。通过status命令查看,regionserver运行正常,而region部分或者全部下线。

 

HBase集群运行时,regionserver异常退出

异常

集群的其它进程都在,regionserver退出,单独启动,报以下异常:

分析

集群的各台机器时间对应不上。

解决方法

将时间同步。