Hadoop的mapreduce开发过程,我遇到的错误集锦(持续更新)
2015-08-02 23:24
661 查看
[b]1.Text包导错了。[/b]
将import com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider.Text;
改为import org.apache.hadoop.io.Text;
.
[b]2.本地编译环境和生产环境中的java版本不匹配。有可能是jdk不匹配,也可能是jre不匹配。都匹配就不会有这个问题[/b]
[b]3.map与reduce都要是分别重载Mapper和Reducer类。不能是自己定义的方法[/b]
[b]4.Job的写法问题:[/b]
第一种写法:Mapper、Reducer、JobRunner等自定义的类均写到单独的类文件中,如:
第一种写法:Mapper、Reducer、JobRunner等自定义的类均写到一个类文件中,那么
总结:不管哪种写法,在hadoop2.5.2中,其他的版本我没试,不知道,不过吴超老师在handoop1.1.2中写的代码好像没写这句,也执行成功了!
可能是1x与2x的区别吧。有空再测试一下
[b]5.自定义封装数据类型中,实现Writable接口或者WritableComparator接口时候。[/b]
实现序列化write()和反序列化readfields()方法中
封装数据中的属性的序列化和反序列化的前后顺序要相对应!如下:
将import com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider.Text;
改为import org.apache.hadoop.io.Text;
.
[b]2.本地编译环境和生产环境中的java版本不匹配。有可能是jdk不匹配,也可能是jre不匹配。都匹配就不会有这个问题[/b]
[b]3.map与reduce都要是分别重载Mapper和Reducer类。不能是自己定义的方法[/b]
[b]4.Job的写法问题:[/b]
第一种写法:Mapper、Reducer、JobRunner等自定义的类均写到单独的类文件中,如:
第一种写法:Mapper、Reducer、JobRunner等自定义的类均写到一个类文件中,那么
总结:不管哪种写法,在hadoop2.5.2中,其他的版本我没试,不知道,不过吴超老师在handoop1.1.2中写的代码好像没写这句,也执行成功了!
可能是1x与2x的区别吧。有空再测试一下
[b] job.setJarByClass(你的组装、提交的类名字.class);是必不可少的[/b]
Configuration conf=new Configuration(); Job job=new Job(conf, JobRunner.class.getSimpleName()); job.setJarByClass(JobRunner.class);
[b]5.自定义封装数据类型中,实现Writable接口或者WritableComparator接口时候。[/b]
实现序列化write()和反序列化readfields()方法中
封装数据中的属性的序列化和反序列化的前后顺序要相对应!如下:
@Override public void readFields(DataInput in) throws IOException { this.upPackNum=in.readLong(); this.downPackNum=in.readLong(); this.upPayLoad=in.readLong(); this.downPayLoad=in.readLong(); } @Override public void write(DataOutput out) throws IOException { out.writeLong(upPackNum); out.writeLong(downPackNum); out.writeLong(upPayLoad); out.writeLong(downPayLoad); }
相关文章推荐
- 在OpenSSL中添加自定义加密算法
- apache配置防盗链
- 解决警告“ld: warning: directory not found for option”
- 在Linux运行期间升级Linux系统(Uboot+kernel+Rootfs)
- Shell脚本中$的用法
- ubuntu+nginx+php
- Linux学习笔记03之文件浏览
- 读CopyOnWriteArrayList有感
- 一次使用Eclipse Memory Analyzer分析Tomcat内存溢出
- Linux Shell 1>/dev/null 2>&1 含义
- Linux学习-ps aux指令
- shell内部命令-----变量类
- CentOS 6.6 中中文输入法设置
- OpenSceneGraph 笔记--如何导出三角形数据
- 操作系统虚拟内存中的四种典型页替换算法(OPT,LRU,FIFO,Clock)
- centos6 python decoder jpeg not available解决办法
- Docker学习6 - 使用Dockerfile构建镜像
- OpenGL ES 颜色缓冲 深度测试 表面剔除
- nginx+php+mysql环境
- 【Nginx-反向代理服务器】基础知识(一)之事件处理机制