`

基于hadoop源码开发环境搭建

阅读更多

基于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应用开发环境的配置.doc

    ### 基于Eclipse 的 Hadoop 应用开发环境配置详解 #### 一、引言 随着大数据技术的发展,Hadoop 成为了处理大规模数据集的重要工具之一。而在实际开发过程中,选择合适的集成开发环境(IDE)对于提高开发效率至关...

    毕业设计-基于Hadoop平台开发的视频收视率分析源码+项目说明.zip

    毕业设计-基于Hadoop平台开发的视频收视率分析源码+项目说明.zip ​ 本项目分为四个模块,分别为爬虫模块、离线数据分析模块、公共基础模块、web展示模块。首先用WebMagic爬取的B站视频数据作为数据源,构建以离线...

    hadoop集群的搭建(apache)

    在实际应用中,可以使用Hadoop的Java API编写MapReduce程序,或者使用基于Hadoop的高级框架,如Apache Pig、Hive或Spark,它们提供了更高级别的抽象,简化了大数据处理。 总结来说,搭建Hadoop集群涉及Java环境配置...

    基于Hadoop的云计算试验平台搭建研究.docx

    ### 基于Hadoop的云计算试验平台搭建研究 #### 一、引言 随着大数据时代的到来,数据处理的需求日益增长,传统的数据处理方法已经难以满足当前的数据处理需求。因此,构建一个高效、稳定的云计算试验平台显得尤为...

    ubuntu-14.04.1+hadoop2.4完全分布式搭建要点

    总结来说,搭建Ubuntu 14.04.1上的Hadoop 2.4完全分布式系统需要安装Java环境,下载并解压Hadoop源码,配置相关XML文件,启动Hadoop服务,并确保所有节点间通信正常。对于初学者,这是一个深入了解Hadoop分布式计算...

    Hadoop集群环境搭建

    在所有节点上安装Java运行环境(JRE)是必要的,因为Hadoop是基于Java开发的。确保所有服务器上的JRE版本一致,并且安装路径相同,以避免环境变量问题。 配置Hadoop环境涉及以下几个关键步骤: 1. 设置环境变量:...

    基于Linux的Hadoop集群搭建的探索与实现.docx

    2. 安装配置Hadoop:下载Hadoop源码或二进制包,然后根据集群规模进行配置,包括设置HDFS的副本数量、内存分配等参数。 3. 初始化HDFS:格式化NameNode,初始化HDFS文件系统。 4. 启动Hadoop服务:启动NameNode、...

    基于Windows eclipse maven Hadoop 的WordCount源码

    总结来说,基于Windows、Eclipse、Maven和Hadoop实现WordCount源码的过程主要包括以下步骤:配置开发环境、创建Maven项目、编写MapReduce代码、打包成jar文件,以及在Hadoop集群上运行作业。通过这个过程,我们可以...

    Hadoop虚拟机搭建Hadoop-3.3.0集群环境

    总之,搭建Hadoop虚拟机集群环境是一项涉及多方面知识的工作,包括虚拟化技术、Linux操作、网络配置以及Java环境。理解Hadoop的基本原理和配置细节是成功部署的关键。在实际操作中,要保持耐心,逐步解决问题,最终...

    Hadoop分布式搭建配置/Hive/HBase

    《Hadoop源码分析完整版》是对Hadoop源码的深度解析,适合对Hadoop底层机制感兴趣的开发者。通过阅读这本书,你可以深入理解Hadoop的工作原理,包括HDFS的数据块管理、MapReduce的作业调度等,从而更好地进行二次...

    hadoop3.3.4 winutils

    3. **自编译Hadoop源码**:为了在Windows 11上运行Hadoop,我们需要从源码编译Hadoop,这涉及到Java开发环境(JDK)的安装,Apache Maven的配置,以及对Hadoop源码进行修改以适应Windows环境。这通常包括修改配置...

    基于Hadoop和MapReduce实现的朴素贝叶斯分类器源码+项目说明.zip

    基于Hadoop和MapReduce实现的朴素贝叶斯分类器源码+项目说明.zip 环境搭建 搭建 `Hadoop` 环境,本项目在Mac系统上搭建的 `hadoop-2.8.5`环境下完成。 数据集说明 数据集在项目文件`\Data\NBCorpus\`中 包含二个子...

    软件工程课程设计报告Hadoop配置

    【软件工程课程设计报告Hadoop配置】主要涵盖了在软件工程课程中使用Hadoop进行课程设计的相关内容,包括环境搭建、Eclipse中的应用测试、遇到的问题与解决方案以及对Hadoop源码的分析。以下是对这些知识点的详细...

    基于Hadoop+Spark奥运会奖牌变化大数据分析实现毕业源码案例设计.zip

    这是一个基于Hadoop和Spark的大数据分析项目,用于分析奥运会奖牌变化情况,适用于毕业设计学习。项目的核心在于利用大数据处理框架处理海量数据,提取有价值的信息,为体育赛事的研究提供支持。 首先,Hadoop是...

    基于hadoop+hbase+springboot实现分布式网盘系统.zip

    标题 "基于hadoop+hbase+springboot实现分布式网盘系统.zip" 描述了一个融合了多种技术的分布式存储解决方案,主要用于毕业设计项目。这个系统利用了Hadoop的分布式处理能力,HBase的分布式数据库特性,以及...

    hadoop1.0.2 hbase0.94安装

    最后,HBase 0.94是基于Hadoop的分布式列式存储系统,适合实时读写操作。其安装步骤包括: 1. **配置环境**:与Hadoop类似,需要配置Java环境和HBase所需的Hadoop配置。 2. **下载和解压HBase**:从官方获取HBase ...

    hadoop 2.0搭建集群

    **Hive**是基于Hadoop的数据仓库工具,用于处理结构化数据。在Hadoop集群上搭建Hive环境涉及以下步骤: 1. **安装Hive**:下载并解压Hive的二进制包,配置`hive-site.xml`,指定Hadoop的相关路径。 2. **创建...

    基于Hadoop下MapReduce框架实现的的并行C4.5算法.zip

    * 具体的Hadoop集群搭建,集成开发环境(IDE)的构建,如果以后能够用到,我会将详细过程放在我的个人博客上(见“关于作者”部分)。 -------- 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的...

    Hadoop集群搭建共10页.pdf.zip

    13. **应用开发**:学习使用Hadoop的API开发MapReduce程序,或者使用基于Hadoop的高级框架如Spark、Flink进行大数据处理。 通过这份10页的文档,读者应该能够掌握Hadoop集群的基本搭建流程,并具备初步的实践能力。...

Global site tag (gtag.js) - Google Analytics