hadoop运行时异常记录

1、上传文件时报 no route no host

       检查防火墙等设置

 

2、空间配额问题

设置data配额为10M,然后上传一个10M的文件,然后报错。

报错信息:

put: The DiskSpace quota of /user/centos/data is exceeded: quota = 10485760 B = 10 MB but diskspace consumed = 402653184 B = 384 MB

分析: 计算大小的方式是3个副本块大小的总和,不能大于配额。  即 :空间配额 >= blocksize * 3 * 文件大小

 

3、ERROR:The health test result for NAME_NODE_HA_CHECKPOINT_AGE  has become bad: The filesystem checkpoint is 4 hour(s) old. This is 401.25% of the configured checkpoint period of 1 hour(s). Critical     threshold: 400.00%. 2,793 transactions have occurred since the last filesystem checkpoint. This is 0.28% of the configured checkpoint transaction target of 1,000,000.

参考:https://blog.csdn.net/liujiyu1989/article/details/47829083

分析 : 由于secondarynamenode没有执行checkpoint的原因所导致,查看secondarynamenode的日志,发现真正的错误是:ERROR:  Exception in doCheckpoint java.io.IOException: Inconsistent checkpoint field

结论 :主要是secondarynamenode没有执行检查点的操作,导致会产生上面的错误,上面的错误说明的是你一直没有执行检查点的操作。

解决方式 :删除secondarynamenode执行检查点的目录,即hdfs-site.xml中参数fs.checkpoint.dir, dfs.namenode.checkpoint.dir的值的路径。

 

4、报错信息如下:

log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

 解决方法:将/hadoop/etc/hadoop/log4j.properties直接拷贝到项目类路径的根下(src下)即可解决。

           即 :

 

5、在Windows的Eclipse上执行代码连接hadoop时,报错:

Failed to locate the winutils binary in the hadoop binary path

java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

解决方式:

1.下载winutils的windows版本

GitHub上,有人提供了winutils的windows的版本,项目地址是:https://github.com/srccodes/hadoop-common-2.2.0-bin ,直接下载此项目的zip包,下载后是文件名是hadoop-common-2.2.0-bin-master.zip,解压后将bin目录迁移到了F:\hadoop-2.7.3\hadoop-2.7.3\bin

2.配置环境变量

    系统环境变量 HADOOP_HOME = F:\hadoop-2.7.3\hadoop-2.7.3

    用户变量  F:\hadoop-2.7.3\hadoop-2.7.3\bin

3.测试如果还不正常,需要重启系统。

 

6、start-all.sh执行后,只有namenode,没有datanade。

粗暴法:

1、先运行stop-all.sh

2、格式化namdenode,不过在这之前要先删除原目录,即core-site.xml下配置的<name>hadoop.tmp.dir</name>所指向的目录,删除后切记要重新建立配置的空目录,然后运行hadoop namenode -format

3、运行start-all.sh
 

细致法:

修改/dfs/name/current文件下的VERSION中的namespaceId与namenode一致。

 

7、start-all.sh时报错,

报错信息:

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/soft/hadoop-2.7.3/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/soft/hbase-0.98.9-hadoop2/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]


原因:hbase和hdfs的slf4j文件冲突

解决:将hbase的文件删除(地址 :hbase/lib/slf*)

           注 :hdfs 下地址:hadoop/share/hadoop/common/lib/slf*

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值