编程时需要注意:
1、实例化job后,不要再使用原来的configuration,而需通过job.getCongfigure()来进行参数的配置
public static Job createSubmittableJob(Configuration conf, String[] args) throws IOException { String tableName = args[0]; conf.set(TableInputFormat.INPUT_TABLE, tableName); conf.set(TableInputFormat.SCAN, ScanAccessor.getTableInputFormatScan(conf, tableName)); Job job = new Job(conf, Index.class.getSimpleName() + "_" + tableName + ":" + Utils.now()); job.setJarByClass(Index.class); // conf.set(..., ...); job.getConfiguration().set(...
2、map输出的keyvalue与reduce的输出keyvalue对象不统一。但是还是把reduce作为combine类。
job.setMapperClass(TokenizerMapper.class); job.setCombinerClass(IntSumReducer.class); job.setReducerClass(IntSumReducer.class); job.setMapOutputKeyClass(Text.class); job.setMapOutputValueClass(FloatWritable.class); job.setOutputKeyClass(Text.class); //job.setOutputValueClass(FloatWritable.class); job.setOutputValueClass(Text.class);
这样的错误,出现后,如果不是认真的查看的话,还是比较难发现的!
如果map和reduce的keyvalue类型不同时,不要把Reduce的类作为Combine的处理类!
3、聚合类型的操作才使用reduce
OK: sqoop导数据功能
DAD: hadoop contrib index (详...)
4、命令行参数的顺序
-D参数,以及Hadoop内置的参数, 必须放在class后面,不能跟在args后
· ERROR:
% hadoop jar hadoop-*-examples.jar sort -r numbers.seq sorted \
-inFormat org.apache.hadoop.mapred.SequenceFileInputFormat \
-outFormat org.apache.hadoop.mapred.SequenceFileOutputFormat \
-outkey org.apache.hadoop.io.IntWritable \
-outvalue org.apache.hadoop.io.Text
· OK:
% hadoop jar hadoop-*-examples.jar sort -r \
-inFormat org.apache.hadoop.mapred.SequenceFileInputFormat \
-outFormat org.apache.hadoop.mapred.SequenceFileOutputFormat \
-outkey org.apache.hadoop.io.IntWritable \
-outvalue org.apache.hadoop.io.Text \
numbers.seq sorted
配置属性注意点:
1、开启trash
<property> <name>fs.trash.interval</name> <value>720</value> </property>
2、去除mapreduce完成后"SUCCESS","history目录"
3、共享jvm
4、不要关闭mapreduce的超时
Configuration conf = ... conf.set("hadoop.job.history.user.location", "none"); conf.setBoolean("mapreduce.fileoutputcommitter.marksuccessfuljobs", false); conf.set("mapred.job.reuse.jvm.num.tasks", "-1"); // conf.set("mapred.task.timeout", "0");
5、 pid的存放目录最好自定义。长期放置在tmp下的文件会被清除。
http://winseclone.iteye.com/blog/1772989
export HADOOP_PID_DIR=/var/hadoop/pids
Hadoop入门资料:
1 官网
2 https://ccp.cloudera.com/display/DOC/Hadoop+Tutorial
相关推荐
Hadoop是一个主要由Java语言开发的项目,基于Hadoop的MapReduce程序也主要是使用Java语言来编写。但是有一些时候,我们需要在MapReduce程序中使用C语言、C++以及其他的语言,比如项目的开发人员更熟悉Java之外的语言...
Java操作Hadoop Mapreduce基本实践源码.
java操作hadoop之mapreduce计算整数的最大值和最小值实战源码,附带全部所需jar包,欢迎下载一起学习。
(2)编写MepReduce程序 (3)调试和运行MepReduce程序 (4)完成上课老师演示的内容 二、实验环境 Windows 10 VMware Workstation Pro虚拟机 Hadoop环境 Jdk1.8 二、实验内容 1.单词计数实验(wordcount) (1)输入...
使用命令行编译打包运行自己的MapReduce程序 Hadoop2.6.0
使用hadoop-streaming运行Python编写的MapReduce程序.rar
window下eclipse中运行mapreduce程序所需要的Hadoop全部jar包
对于两个输入文件,即文件 A 和文件 B,请编写 MapReduce 程序,对两个文件进行合并, 并剔除其中重复的内容,得到一个新的输出文件 C。下面是输入文件和输出文件的一个样例 供参考。 输入文件 A 的样例如下:
用于在idea编写hadoop(mapreduce)程序时的maven pom文件。可直接使用搭建mapreduce工程。
MapReduceExample 下建立新包 com.xijing.mapreduce,模仿内置的 WordCount 示例,自己编写一个 WordCount 程序,最后打包成 JAR 形式并在 Hadoop 集群上运行该 MR-App,查看运行结果。 4 分别在自编 MapReduce 程序...
搭建了一个完全分布式Hadoop集群,并通过Java写了mapreduce程序处理数据,需要下载的可以找我要具体数据。
Hadoop和Python的Mapreduce 关于如何使用Python和Hadoop执行MapReduce的一小段回购。 映射器和化简器都是用Python编写的。 有关如何在Hadoop中实现这两个脚本的教程位于。
利用hadoop-streaming框架运行python脚本指令
Hadoop 实现了 MapReduce 计算模型的开源分布式并行编程框架,有自己的分布式文件系统hdfs,借助于 Hadoop, 程序员可以轻松地编写分布式并行程序,将其运行于计算机集群上,完成海量数据的计算,目前由yahoo全力资助...
hadoop 云计算 mdfs mapreduce
本文介绍了用Java编写并运行第一个mapreduce作业的步骤及遇到的问题和解决方案。
hadoop mapreduce 设计模式,mapreduce 程序编写,英文数据,但是代码结构清晰,容易看懂,适合实战
# 基于Hadoop下MapReduce框架的并行C4.5算法 > 项目来源于**西南交通大学**信息科学与技术学院**计算科学与技术专业**毕业设计 ## 说明 * 程序利用Eclipse EE在Hadoop平台下,使用Map/Reduce编程框架,将传统的C...
简短描述 在本项目中,您将使用 Java 语言编写 map-reduce 作业并在 Hadoop 系统上运行它们。 详细说明 本项目要求您执行三项活动,(1) 创建数据集,(2) 将数据集上传到 Hadoop HDFS,以及 (3) 通过编写 map-...
Hadoop期末考试复习