基于hadoop源码开发环境搭建
在开发hadoop的MR,以及研究hadoop源码,都需要将hadoop源码java部署到开发工具中,
例如常用的eclipse,具体做法如下:
第一步:在Eclipse新建一个Java项目
第二步:将Hadoop程序src下core, hdfs, mapred, tools几个目录copy到上述新建项目的src目录
第三步:修改将Java Build Path,删除src,添加src/core, src/hdfs....几个源码目录
第四步:为Java Build Path添加项目依赖jar,可以导入Hadoop程序的lib下所有jar包(别漏掉其子目录jar包),导入ant程序lib下所有jar包。
第五步:理论上第四步就OK了,但是可能会报大量如下错误:
Access restriction: The method arrayBaseOffset(Class) from the type Unsafe is not accessible due to restriction on required library C:\Program Files\JDK\jre\lib\rt.jar xxx.java xxxx line 141 Java Problem
解决办法是:右键项目“propertiyes” > "Java Build Path" > "Libraries",展开"JRE System Library",双击"Access rules",点击"Add"按钮,在"Resolution"下拉框选择"Accessible","Rule Pattern"填写"**/*",保存后就OK了。
测试wordcount实例:
reduce:
package test; import java.io.IOException; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Reducer; public class MyReduce extends Reducer<Text, IntWritable, Text, IntWritable> { public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException { int sum = 0; for (IntWritable val : values) { sum += val.get(); } context.write(key, new IntWritable(sum)); } }
map:
package test; 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 MyMap extends Mapper<Object, Text, Text, IntWritable> { private final static IntWritable one = new IntWritable(1); private Text word; public void map(Object key, Text value, Context context)throws IOException, InterruptedException { String line = value.toString(); StringTokenizer tokenizer = new StringTokenizer(line); while (tokenizer.hasMoreTokens()) { word = new Text(); word.set(tokenizer.nextToken()); context.write(word, one); } } }
driver:
package test; 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.input.TextInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat; public class MyDriver { public static void main(String[] args) throws Exception, InterruptedException { Configuration conf = new Configuration(); conf.set("dfs.permissions", "flase"); Job job = new Job(conf, "Hello Hadoop"); job.setJarByClass(MyDriver.class); job.setMapOutputKeyClass(Text.class); job.setMapOutputValueClass(IntWritable.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); job.setMapperClass(MyMap.class); job.setCombinerClass(MyReduce.class); job.setReducerClass(MyReduce.class); job.setInputFormatClass(TextInputFormat.class); job.setOutputFormatClass(TextOutputFormat.class); FileInputFormat.setInputPaths(job, new Path(args[0])); FileOutputFormat.setOutputPath(job, new Path(args[1])); // JobClient.runJob(conf); job.waitForCompletion(true); } }
配置响应的运行参数,运行即可。
相关推荐
基于Hadoop图书推荐系统源码+数据库.zip基于Hadoop图书推荐系统源码+数据库.zip基于Hadoop图书推荐系统源码+数据库.zip基于Hadoop图书推荐系统源码+数据库.zip基于Hadoop图书推荐系统源码+数据库.zip基于Hadoop图书...
此文档在hadoop集群搭建完毕之后,在集群之外搭建一个hadoop集群的开发环境,用于编写hadoop实际处理程序,还包括了如何提交任务等。整体非常详细,如需要其他hadoop集群搭建资源可以联系我,免费给q:1487954071
涉及到了Hadoop2.0、Hbase、Sqoop、Flume、Hive、Zookeeper的具体环境搭建
Hadoop完全分布式环境搭建Hadoop完全分布式环境搭建Hadoop完全分布式环境搭建
windows下搭建hadoop2.6开发环境详细说明,包括各种错误解决方法及参考文档;包括所需插件及测试代码
详细的hadoop2 伪分布式环境搭建以及eclipse部署。demo示例代码测试运行。文中有插件包。资源包等参考链接参考下载。
基于Hadoop Hive健身馆可视化分析平台项目源码+数据库文件.zip启动方式 环境启动 hadoop hive2元数据库 sql导入 导入hivesql脚本,修改application.yml 启动主程序 HadoopApplication 基于Hadoop Hive健身馆可视化...
一种基于Hadoop的云计算平台搭建与性能调优方法,周磊,李昕,随着互联网技术的飞速发展和应用的推广,云计算正作为当前计算机技术的热点被越来越多的企业和科研机构研究和使用。Hadoop作为一个
基于Eclipse的Hadoop应用开发环境配置
2022毕业设计,基于 Hadoop 的游戏数据分析系统源码.zip
hdfs源码剖析 基于hadoop2.6 hdfs源码剖析 基于hadoop2.6
基于Hadoop的电影推荐系统的设计与实现源码(毕业设计)java+Hadoop,使用Hadoop2.7,jdk1.8;分为前台,后台和推荐三个子系统,可直接运行。sql私信
Hadoop完全分布式环境搭建文档,绝对原创,并且本人亲自验证并使用,图文并茂详细介绍了hadoop完全分布式环境搭建所有步骤,条例格式清楚,不能成功的,请给我留言!将给与在线支持!
hadoop集群环境的搭建
Hadoop 开发环境搭建第一篇: 1、是用Virtual Box 系统使用的是Redhat ,linux不熟的朋友们可以顺便学习一下linux, 2、环境配置包括防火墙关闭,IP分配,更改域名等 3、服务软件:远程服务SSH等安装
毕业设计,基于hadoop的云盘系统,技术选型springboot+mysql+layui+hdfs+hbase(未完成)
基于Hadoop的物品租赁-基于Hadoop的物品租赁系统-基于Hadoop的物品租赁系统源码-基于Hadoop的物品租赁管理系统-基于Hadoop的物品租赁管理系统java代码-基于Hadoop的物品租赁系统设计与实现-基于springboot的基于...
这是一个基于hadoop的云盘系统,实现的界面是用javaweb完成的,使用的是spring Struts2 hibernate集合框架,配有sql文件。直接导入后运行这是一个基于hadoop的云盘系统,实现的界面是用javaweb完成的,使用的是...
hadoop本地测试环境搭建工具包 1.hadoop.dll 2.hadoop源码请到官网下载
Hadoop开发环境搭建所需文件(hadoop-eclipse-plugin-2.2.0.jar、winutils.exe)