eclipse开发hadoop程序.doc_第1页
eclipse开发hadoop程序.doc_第2页
eclipse开发hadoop程序.doc_第3页
eclipse开发hadoop程序.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

hadoop Map/Reduce开发实例1) Eclipse插件配置与程序开发在windows下开发Map/Readuce程序,首先要在windows安装cygwin, 目的是让hadoop在执行过程中可以用到linux下的一些shell命令,sygwin则给window装了一个linux外壳。配置eclipse及运行程序具体步骤如下: 1. 安装cygwin步骤略过(网上安装步骤很多,因为不是此篇文章重点,不再赘述) 但值得注意的在安装过程中一定要安装 以下部分 (1). net下的openssh和openssl,base下的 sed,devel下的subversion (2). 设置环境变量path, 需要 设置Cygwin 的bin 目录 ,具体是否需要设置 Cygwin 的usrbin 目录还不是很确定,但本人设置了 提示:cygwin安装完成后会有cygwin ssd服务在windows服务中,可以启动也可以不启动。 2. 下载并安装hadoop,(本人使用hadoop0.20.2版本) 下载:/dyn/closer.cgi/hadoop/core/ 安装:即将hadoop-0.20.2.tar.gz解压即可 2. 下载并安装 hadoop eclipse插件 (1)下载插件:/jira/browse/MAPREDUCE-1280 (注意:此hadoop-eclipse-plugin-0.20.3-SNAPSHOT.jar插件支持eclipse3.4+, hadoop0.20.2目录hadoop-0.20.2contribeclipse-plugin中的插件只支持到eclipse3.3版本,版本不支持的话,导致插件不能正常使用。) (2). 将插件拷贝到eclipse的plugins目录中(使用其他方法装载插件也可以),启动eclipse (3). 配置插件a. 打开eclipse -window-open prespective,可见并打开“ Map/Reduce ” 视图,如图: b. 打开eclipse -window-show view, 可见并打开 MapReduce tool - Map/Reduce locations,点击新建locations,视图如下: General选项卡各个参数说明: Location name:本地视图的location名称,自己自定义一个名称即可 Map/Reduce Master组内 host和port: 为 Map/Reduce Master的地址与端口号,此地址端口与hadoop服务器安装配置过程中 conf/mapred-site.xml文件中 mapred.job.tracker节点值一致。 DFS Master组内host和port: 此为HDFS服务器Master的地址与端口号, 此地址与hadoop服务器安装配置过程中 conf /core-site.xml文件中 节点值一致。 Username: 远程hadoop服务器登陆用户名。 SOCKS proxy: 如果登陆hadoop服务器需要代理的话,此组填入代理服务器的地址和端口 Advanced parameters选项卡部分参数说明(各个未提及参数请参见hadoop官方文档): hadoop.tmp.dir : HDFS文件存取缓存目录, 此项与hadoop服务器安装配置过程中 conf /core-site.xml文件中 hadoop.tmp.dir节点值一致。 H.dir: HDFS 的namenode 节点 name存储目录,此项与hadoop服务器安装配置过程中 conf /hdfs-site.xml文件中.dir节点值一致。 如此节点未配置,取默认选项 $ hadoop.tmp.dir /dfs/name, 此目录 namenode节点上出现 Hadoop.data.dir : HDFS的datanode节点data存储目录,此项hadoop服务器安装配置过程中 conf /hdfs-site.xml文件中dfs.data.dir节点值一致。如此节点未配置,取默认选项 $ hadoop.tmp.dir /dfs/data,此目录在各 datanode节点上出现 Hadoop.job.ugi: 登陆HDFS用户及用户组,使用格式为: 用户名,用户组 C配置完location后,将会在 project Explorer 中出现 DFS locations ,此时即可看到hadoop数据仓库中的文件夹及文件了,如图: 同时也可以在此界面上做文件新建上传删除操作 等等。 D配置hadoop环境 打开 eclipse - window -Prefereces ,点击Hadoop Map/Reduce ,浏览到hadoop解压的根目录。如图: 3.新建 Map/Reduce工程并运行 新建 Map/Reduce project, 即可在工程中建立 Mapper,Reducer,MapReduce Driver类,如图: 添加hadoop依赖jar包, 添加到 项目-properties - Java build path - libraries, 按需加入hadoop目录下及lib下的jar包。 4. 运行如下示例: Mapper代码如下:package test.map;import java.io.IOException;import java.util.StringTokenizer;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Mapper;public class MapA extends Mapper private final static IntWritable one = new IntWritable(1); private Text word = new Text(); public void map(Object key, Text value, Context context) throws IOException, InterruptedException StringTokenizer itr = new StringTokenizer(value.toString(); while (itr.hasMoreTokens() word.set(itr.nextToken(); context.write(word, one); Deducer代码如下:package test.reduce;import java.io.IOException;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Reducer;public class ReduceA extends Reducer private IntWritable result = new IntWritable(); public void reduce(Text key, Iterable values, Context context ) throws IOException, InterruptedException int sum = 0; for (IntWritable val : values) sum += val.get(); result.set(sum); context.write(key, result); MapReduce Driver代码如下:package test;import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Job;import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;import org.apache.hadoop.util.GenericOptionsParser;import test.map.MapA;import test.reduce.ReduceA;public class Driver public static void main(String args) throws IOException, InterruptedException, ClassNotFoundException Configuration conf = new Configuration(); Job job = new Job(conf, word count); job.setJarByClass(Driver.class); job.setMapperClass(MapA.class); job.setCombinerClass(ReduceA.class); job.setReducerClass(ReduceA.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); FileInputFormat.addInputPath(job, new Path(ab); FileOutputFormat.setOutputPath(job, new Path(output2); System.exit(job.waitForCompletion(true) ? 0 : 1); System.exit(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论