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一样。
网友评论