搭建windows(win7)平台hadoop开发环境
一.环境
- hadoop搭建在Vmware中,分布如下:
192.168.16.131 master
192.168.16.132 node1
192.168.16.133 node2
- hadoop版本:hadoop-2.6.0
- Eclipse+hadoop-eclipse-plugin-2.6.0.jar(该包可以在github中下载)
二.搭建
下载Eclipse,解压到某个文件夹(D:\heclipse),将hadoop-eclipse-plugin-2.6.0.jar放在Eclipse的plugins文件夹下(D:\heclipse\eclipse\plugins),打开Eclipse,出现DFS Locations,表示成功,否则可能是jar包的问题,需要重新下载或制作:
运行hadoop,通过win7访问http://(master_ip):50070查看能否访问,以及节点是否都存活。
插曲:如果没有存活,如下图显示2的地方为0,则可以采取如下措施(只是其中一种方法):
解决方法:将master节点中hadoop/tmp/dfs/name/current/VERSION 中的clusterID改成slaves节点的clusterID(即将clusterID与node1、node2统一)
添加jar包,打开Eclipse,点击window–>preferences–>Hadoop Map/Reduce,选择hadoop的位置(这个要与安装的hadoop版本一样):
点击window–>show view将Map/Reduce Locations显示出来,点击右上角的
出现如下的视图:
- (1)代表的是hadoop的master节点的IP,(2)是指端口号,需要与hadoop配置文件中的core-site.xml中的配置相同,(3)是指端口号,需要与hadoop配置文件的mapred-site.xml中的配置相同。
点击finish,点击DFS Locations,出现如下视图表示连接正确(不同的环境不同的结果):
至此hadoop的win7开发环境搭建完成
三.运行mapreduce程序
- 新建Map/Reduce Project (WordCount)
- 创建package与class( package:org.apache.hadoop.examples class:WordCount.java)
- 运行如下代码:
package org.apache.hadoop.examples;import java.io.IOException;
import java.util.StringTokenizer;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.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.util.GenericOptionsParser;public class WordCount {public static class TokenizerMapper extends Mapper<Object, Text, Text, IntWritable>{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);}}}public static class IntSumReducer extends Reducer<Text,IntWritable,Text,IntWritable> {private IntWritable result = new IntWritable();public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {int sum = 0;for (IntWritable val : values) {sum += val.get();}result.set(sum);context.write(key, result);}}public static void main(String[] args) throws Exception {Configuration conf = new Configuration();String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();if (otherArgs.length != 2) {System.err.println("Usage: wordcount <in> <out>");System.exit(2);}Job job = new Job(conf, "word count");job.setJarByClass(WordCount.class);job.setMapperClass(TokenizerMapper.class);job.setCombinerClass(IntSumReducer.class);job.setReducerClass(IntSumReducer.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);FileInputFormat.addInputPath(job, new Path(otherArgs[0]));FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));System.exit(job.waitForCompletion(true) ? 0 : 1);}
}
正确运行结果:
打开output里面的part-r-00000,出现如下结果:
四.遇到的问题
导入jar包后不能显示DFS Locations
- 可能原因是版本不同的原因,可以自己制作hadoop jar包
- 制作方法:参考http://my.oschina.net/muou/blog/408543?fromerr=ACzJzurH
运行程序出现:
Exception in thread “main”java.lang.NullPointerException atjava.lang.ProcessBuilder.start(Unknown Source)
- 原因:在Hadoop2的bin目录下没有winutils.exe
- 解决方法:在github上下载hadoop-common-2.6.0-bin-master.zip,解压之后将bin目录全部复制到上面在Eclipse中指定的hadoop目录的bin文件夹下,并配置环境变量(重新运行即可):
HADOOP_HOME=D:\heclipse\hadoop PATH=;$HADOOP_HOME\bin
运行程序出现:
Exception in thread “main”java.lang.UnsatisfiedLinkError:
org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
- 原因:C:\Windows\System32下缺少hadoop.dll
- 解决方法:将上一步中bin文件下的hadoop.dll放到系统的C:\Windows\System32下,重启电脑即可。
4.经过第三步运行程序还是出现:
Exception in thread “main”java.lang.UnsatisfiedLinkError:
org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
- 原因:Windows的唯一方法用于检查当前进程的请求,在给定的路径的访问权限,所以我们先给以能进行访问,我们自己先修改源代码,return true 时允许访问。
- 解决方法:下载hadoop源码(版本要一致),将hadoop-2.6.0-src\hadoop-common-project\hadoop-common\src\main\java\org\apache\hadoop\io\nativeio下NativeIO.java 复制到对应的Eclipse的project,然后修改557行为return true如图所示(包名最好与hadoop源码一致):
5.运行程序出现如下warning:
- 解决:将hadoop/etc/hadoop/下的log4j.properties复制到WordCount下即可。
6.运行程序提示没有找到input或者是output已经存在
- 解决方法:在WordCount下新建一个input文件夹,将运行的文件放进去即可;将原来运行产生的ouput文件夹删除即可。
搭建windows(win7)平台hadoop开发环境相关推荐
- 图文详解如何搭建Windows的Android C++开发环境
原地址:http://www.apkbus.com/android-18595-1-1.html //================================================= ...
- 搭建Windows下Android应用开发环境——Eclipse/Android/ADT
搭建Windows下Android应用开发环境--Eclipse/Android/ADT 田海立@CSDN 2011/07/18 Window下Android的应用开发环境,很早以前就在我的机器上搭建 ...
- 搭建Windows Embedded Compact 7开发环境
大家期盼已久的WindowsEmbedded Compact 7是微软2010年发布的第七代嵌入式操作系统!微软可谓对它寄予很大的希望,所以连名字都改了.以下就简称WEC7吧.WEC7 的最大亮点就是 ...
- 搭建windows下的php开发环境
1.PHP是什么? 在网站的服务器端,实现服务器程序(网站功能)业务逻辑的一门常见的编程语言. 做网站:web应用程序开发 web程序的架构:B\S B:browser 浏览器 S:Server ...
- Hadoop完全分布式搭建过程、maven和eclipse配置hadoop开发环境、配置Map/Reduce Locations、简单wordcount测试!
Hadoop完全分布式搭建及测试 项目开始前准备工作 1.下载并安装VM workstation pro 15安装包,这里选择: VMware-workstation-full-15.1.0-1359 ...
- Win7下Android开发环境搭建(8.19,8.24,9.30,10.21)
[2013-10-21 20:06:55 - L9ThreeGong] Unable to resolve target 'android-10' [ 意思就是没有找到android_10,这里的10 ...
- win7下android开发环境搭建(win7 64位)
注意:此为win7 (64)位系统 那么win7下32位系统如何进行android开发环境搭建呢?>>>win7下android开发环境搭建(win7 32位) 一.安装 JDK 下 ...
- Win7下android开发环境搭建
所需软件安装包 1. JDK.文件名为jdk-6u22-windows-i586.exe. 下载地址:http://www.oracle.com/technetwork/java/javase/do ...
- Win7下Android开发环境的搭建(更新于2015/3)
Win7下Android开发环境的搭建(更新于2015/3) --JDK + Eclipse + Android SDK + ADT 的安装.配置 Android开发环境搭建并不复杂,就是资源不好下, ...
最新文章
- 2018年Java生态行业报告
- Python 工匠:善用变量来改善代码质量
- SpringBoot实践:更换启动Logo字样
- 雷军喜获2019年复旦企业管理杰出贡献奖!
- Thrift协议的服务模型
- 使用jQuery写一个简单的轮播图(笔记)
- 页面置换算法java_页面置换算法之Clock算法
- 微信小程序蓝牙通讯、串口通讯、调试助手(HC-08等 )
- RabbitVCS无法自动保存密码的BUG
- 【渝粤教育】国家开放大学2018年春季 8635-22T老年人中医体质辨识与养 参考试题
- java微信授权登录回调地址,微信开发者工具,注册微信公共平台
- 服务器2012系统登录密码忘记6,Server2012忘记管理员密码的处理方法
- 基于IBM Tivoli TSM系统构建某局备份系统实施方案
- 赛效:Xmind思维导图怎么用 新手使用教程分享
- 你还没有变成真正的孙悟空托世
- KMP字符串模式匹配算法【精简代码模板】
- 基于微信云开发的商家转账至零钱
- vue中使用element-ui时单元格内换行的问题
- 网站是用什么来赚钱的?
- 【NOIp普及组 2009】分数线划定
热门文章
- vb6入门级选择结构语句,for循环语句例题分析,声明:材料来自福州机电工程职业技术学校《VB程序设计》省级精品在线课程一一 实验报告
- 微力同步如何运行Linux,微力同步:一款可以在多个设备上同步文件的应用程序...
- 不要再无脑背诵面向对象三大特性了
- 程序员:在一个公司待了5年,环境舒适,是继续温水煮青蛙还是跳槽?
- Linux SysRq
- 小米股价腰斩的原因找到了,在海外两大市场均受挫
- Django-配置媒体资源-设置路由分发规则(下)
- Lucene加中文分词paoding调研结果
- (1)移动广告Mediation简单介绍
- 易语言post发送php数据,易语言post上传文件