我爱编程

Hadoop 报错集

2018-05-10  本文已影响0人  机器不能学习

1.

java.lang.Exception: java.io.IOException: Type mismatch in key from map: expected org.apache.hadoop.io.Text, received org.apache.hadoop.io.LongWritable at org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:489) at org.apache.hadoop

类型错误,期待的是Tex接受的是longWritable ,因为hadoop默认的是longWritable。所以错误应该是没有设置输出的类型,或者是输出类型输出错误。

(1) 设置输出类型

job.setOutputKeyClass(Text.class); 

job.setOutputValueClass(Text.class); 

(2)检查每个Map类,Reduce类的输出类型是否与相应的map,reduce方法的一样

map(Object key,Text value,Context context)

Mapper<Object key Text value ,Context context>

2.new Path()

该处应该用import org.apache.hadoop.fs.Path;

3.setclass时报错

注意关注的是类与类之间的位置,所有类都在一个大类里面

4.FileInputFormat报错 没有(job,string) 方法

import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;

5.如果发现mapreduce没有工作也没报错

原因:map中,context.write后的数据有误,或者根本没有context.write。还有可能是Reduce中方法名有错,该方法名必须为reduce


Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/MasterNotRunningException at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) at java.lang.Class.privateG

noclass说明Jar没有导入成功,一方面是eclipse的jar 一方面是Hadoop环境文件中,环境文件中可以直接到入export HADOOP_CLASSPATH=/opt/hbase-0.98.12/lib/*


hbase一直闪退。可能是zook上的数据出现问题。

可以格式化namenode和datanone,删除zook文件中version-2。重启即可

如果在df中就没办法删除,此方法仅用于单机


Failed to add storage directory [DISK]file:/home/hdfs/data/

找不到文件。格式化过多,使namenode和datanode的id号不能匹配就不能访问登录类。

所以删除data文件再重新格式化


Failed to retrieve data from /webhdfs/v1/?op=LISTSTATUS: java.lang.reflect.InvocationTargetException

是换用户引起的权限问题,检查hots和配置文件的ip重启

hadoop中core-site.xml中的fs.name要和hbase-site.xml中的ip一样。

上一篇 下一篇

猜你喜欢

热点阅读