基于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); } }
配置响应的运行参数,运行即可。
相关推荐
### 基于Eclipse 的 Hadoop 应用开发环境配置详解 #### 一、引言 随着大数据技术的发展,Hadoop 成为了处理大规模数据集的重要工具之一。而在实际开发过程中,选择合适的集成开发环境(IDE)对于提高开发效率至关...
毕业设计-基于Hadoop平台开发的视频收视率分析源码+项目说明.zip 本项目分为四个模块,分别为爬虫模块、离线数据分析模块、公共基础模块、web展示模块。首先用WebMagic爬取的B站视频数据作为数据源,构建以离线...
在实际应用中,可以使用Hadoop的Java API编写MapReduce程序,或者使用基于Hadoop的高级框架,如Apache Pig、Hive或Spark,它们提供了更高级别的抽象,简化了大数据处理。 总结来说,搭建Hadoop集群涉及Java环境配置...
### 基于Hadoop的云计算试验平台搭建研究 #### 一、引言 随着大数据时代的到来,数据处理的需求日益增长,传统的数据处理方法已经难以满足当前的数据处理需求。因此,构建一个高效、稳定的云计算试验平台显得尤为...
总结来说,搭建Ubuntu 14.04.1上的Hadoop 2.4完全分布式系统需要安装Java环境,下载并解压Hadoop源码,配置相关XML文件,启动Hadoop服务,并确保所有节点间通信正常。对于初学者,这是一个深入了解Hadoop分布式计算...
在所有节点上安装Java运行环境(JRE)是必要的,因为Hadoop是基于Java开发的。确保所有服务器上的JRE版本一致,并且安装路径相同,以避免环境变量问题。 配置Hadoop环境涉及以下几个关键步骤: 1. 设置环境变量:...
java基于SpringBoot+vue 基于Hadoop的物品租赁系统源码带毕业论文 当今社会,信息技术的快速发展对人们的生活和工作方式产生了深远的影响。为了适应这一趋势,越来越多的高校课程设计和毕业论文项目开始涉及到当下...
2. 安装配置Hadoop:下载Hadoop源码或二进制包,然后根据集群规模进行配置,包括设置HDFS的副本数量、内存分配等参数。 3. 初始化HDFS:格式化NameNode,初始化HDFS文件系统。 4. 启动Hadoop服务:启动NameNode、...
本资源是一个基于Hadoop MapReduce框架实现的酒店评价文本情感分析项目,旨在通过Python编程和大数据处理技术,对大量酒店评论数据进行情感倾向性分析。项目包括完整的Python源码和详细的项目说明文档,适合有一定...
总结来说,基于Windows、Eclipse、Maven和Hadoop实现WordCount源码的过程主要包括以下步骤:配置开发环境、创建Maven项目、编写MapReduce代码、打包成jar文件,以及在Hadoop集群上运行作业。通过这个过程,我们可以...
部署则需要搭建Hadoop集群环境,部署相关的Hadoop服务和应用程序。 最终,项目完成后,会提供完整的源码、毕业设计论文、操作录屏以及启动教程,方便用户理解和操作。这些内容通常会打包成压缩包文件进行分发。本...
总之,搭建Hadoop虚拟机集群环境是一项涉及多方面知识的工作,包括虚拟化技术、Linux操作、网络配置以及Java环境。理解Hadoop的基本原理和配置细节是成功部署的关键。在实际操作中,要保持耐心,逐步解决问题,最终...
这使得基于Hadoop的图书推荐系统在大数据环境下具有更好的扩展性和可靠性,能够为用户提供实时的、个性化的图书推荐服务。 最后,该项目作为毕业设计的一部分,不仅能够展示学生对大数据处理技术的掌握程度,还能够...
《Hadoop源码分析完整版》是对Hadoop源码的深度解析,适合对Hadoop底层机制感兴趣的开发者。通过阅读这本书,你可以深入理解Hadoop的工作原理,包括HDFS的数据块管理、MapReduce的作业调度等,从而更好地进行二次...
3. **自编译Hadoop源码**:为了在Windows 11上运行Hadoop,我们需要从源码编译Hadoop,这涉及到Java开发环境(JDK)的安装,Apache Maven的配置,以及对Hadoop源码进行修改以适应Windows环境。这通常包括修改配置...
基于Hadoop和MapReduce实现的朴素贝叶斯分类器源码+项目说明.zip 环境搭建 搭建 `Hadoop` 环境,本项目在Mac系统上搭建的 `hadoop-2.8.5`环境下完成。 数据集说明 数据集在项目文件`\Data\NBCorpus\`中 包含二个子...
在搭建美妆大数据分析可视化系统时,首先需要使用Python编程语言搭建开发环境,并利用PyCharm这一集成开发环境来编写爬虫程序。在爬虫程序中,会使用到scrapy框架来快速开发爬虫应用,scrapy框架能够帮助开发者高效...
【软件工程课程设计报告Hadoop配置】主要涵盖了在软件工程课程中使用Hadoop进行课程设计的相关内容,包括环境搭建、Eclipse中的应用测试、遇到的问题与解决方案以及对Hadoop源码的分析。以下是对这些知识点的详细...
这是一个基于Hadoop和Spark的大数据分析项目,用于分析奥运会奖牌变化情况,适用于毕业设计学习。项目的核心在于利用大数据处理框架处理海量数据,提取有价值的信息,为体育赛事的研究提供支持。 首先,Hadoop是...