博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
window 如何访问虚拟机的mapreduce(遇到的坑)
阅读量:5249 次
发布时间:2019-06-14

本文共 3422 字,大约阅读时间需要 11 分钟。

首先 先把你虚拟机和本机网络链接弄通 (详情看上一篇)  一些关于mapreduce 和hadoop的配置都在上一篇

安装eclipse 的hadoop Map/Reduce插件详情 看其他博客园.........

这里里面配置的是你windows下的hadoop 高版本貌似兼容低版本   下载请参考网上

我这里有hadoop-2.6.4的链接大家参考下载  https://www.lanzous.com/i2h1e2b  

一般都会报winutils.exe 找不到呀各种错误 需要吧 你hadoop bin下的 hadoop.dll  文件放在你windows下system32文件夹下 就会解决

代码不贴了自己玩吧

 

忘了          你写的代码main函数或者函数中要包括

 System.setProperty("hadoop.home.dir", "D:\\Program Files\\windowshadoop\\hadoop-2.6.4");

这个不弄会写不出文件到虚拟机里的  后面路径是你windows系统下的hadoop路径 网上的有的要改什么配置 修改什么xml还有环境变量都是不存在的 不用弄就能访问

 

还有 你windows下访问虚拟机hdfs文件权限问题 你可能无法直接删除  你可以设置一下文件路径权限为所有用户共有  hdfs dfs -chmod 777 /+你的路径 举个例子 hdfs dfs -chmod 777 /mymapreduce1/in   修改 mymapreduce1/in 下的目录权限

 

一个wordcount代码 别copy运行了我没给你文件格式大致看一下  

package mapreduce;import java.io.IOException;  import java.util.StringTokenizer;  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;  public class WordCount{       public static class MyMapper extends Mapper
{ private final static IntWritable one = new IntWritable(1); private static String word = new String(); public void map(Object key, Text value, Context context) throws IOException,InterruptedException{ StringTokenizer itr = new StringTokenizer(value.toString()); while (itr.hasMoreTokens()){ word=itr.nextToken(); System.out.println(word); String id=word.substring(0,word.indexOf(" ")); Text word2=new Text(); word2.set(id); context.write(word2,one); } } } public static class MyReducer 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); } } public static void main(String[] args) throws Exception{ System.setProperty("hadoop.home.dir", "D:\\Program Files\\windowshadoop\\hadoop-2.6.4"); Job job = Job.getInstance(); job.setJobName("WordCount"); job.setJarByClass(WordCount.class); job.setMapperClass(MyMapper.class); job.setReducerClass(MyReducer.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); Path in = new Path("hdfs://hadoop:9000/mymapreduce1/in/buyer_favorite1") ; Path out = new Path("hdfs://hadoop:9000/mymapreduce1/newout") ; FileInputFormat.addInputPath(job,in); FileOutputFormat.setOutputPath(job,out); System.exit(job.waitForCompletion(true)?0:1); } }

这个DFSLOCATION 自己配吧注意端口号要和你虚拟机hadoop上的端口号相同我这里是9000

 

转载于:https://www.cnblogs.com/xuexidememeda/p/10029127.html

你可能感兴趣的文章
exit和return的区别
查看>>
Django 相关
查看>>
比较安全的获取站点更目录
查看>>
空间分析开源库GEOS
查看>>
前端各种mate积累
查看>>
Python(软件目录结构规范)
查看>>
Windows多线程入门のCreateThread与_beginthreadex本质区别(转)
查看>>
Nginx配置文件(nginx.conf)配置详解1
查看>>
linux php编译安装
查看>>
redis哨兵集群、docker入门
查看>>
hihoCoder 1233 : Boxes(盒子)
查看>>
codeforces水题100道 第二十二题 Codeforces Beta Round #89 (Div. 2) A. String Task (strings)
查看>>
c++||template
查看>>
[BZOJ 5323][Jxoi2018]游戏
查看>>
条件断点 符号断点
查看>>
Python Web框架Django (五)
查看>>
.net学习之继承、里氏替换原则LSP、虚方法、多态、抽象类、Equals方法、接口、装箱拆箱、字符串------(转)...
查看>>
python的多行注释
查看>>
连接Oracle需要jar包和javadoc文档的下载
查看>>
UVA 10976 - Fractions Again?!
查看>>