本文分三个部分,首先是mac下搭建hadoop伪分布式集群,然后搭建eclispe下hadoop调试环境,最后配置hadoop源码,便于学习。
源码包和编译后的包都要下载。这里我用的是hadoop-2.6.4,下载地址如下:
https://archive.apache.org/dist/hadoop/common/hadoop-2.6.4/
这部分工作网上有很多文章可以借鉴,在此不做重复叙述:
参考以下网址:http://www.cnblogs.com/aijianiula/p/3842581.html
进入hadoop根目录下的sbin文件夹,运行如下命令:
sh start-all.sh
打开:http://localhost:50070
打开:http://localhost:8088/
本人使用eclipse版本为Mars。下载地址:
http://www.eclipse.org/downloads/packages/release/Mars/2
hadoop-eclipse-plugin-2.6.4.jar 下载地址:
http://download.csdn.net/download/tondayong1981/9437360
把插件放到eclipse/ plugins目录下 。
如果插件安装成功,打开eclipse – 偏好设置,在窗口左侧会有Hadoop Map/Reduce选项,点击此选项,在窗口右侧设置Hadoop安装路径。
打开Windows—Open Perspective—Other
选择Map/Reduce,点击OK。在右下方看到如下图所示:
点击Map/Reduce Location选项卡,点击右边小象图标,打开Hadoop Location配置窗口:输入Location Name,任意名称即可.配置Map/Reduce Master和DFS Mastrer,Host和Port配置成与core-site.xml的设置一致即可。
点击”Finish”按钮,关闭窗口。点击左侧的DFSLocations—>myhadoop(上一步配置的location name),如能看到user,表示安装成功。
此时,已经可以和自己本地的Hadoop集群相连接。并可以从集群下载,或上传文件.
File—>Project,选择Map/Reduce Project,输入项目名称WordCount,点finish完成。
新建一个包:hz。再新建一个WordCount.java类。项目结构如下:
wordcount代码如下:
import java.io.IOException;
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 {
private static class WordCountMapper extends Mapper<Object, Text, Text, IntWritable>{
@Override
protected void map(Object key, Text value, Context context)
throws IOException, InterruptedException {
String str=value.toString();
String []strArray=str.split(" ");
for(String s:strArray){
context.write(new Text(s), new IntWritable(1));
}
}
}
private static class WordCountReducer extends Reducer<Text, IntWritable, Text, IntWritable>{
@Override
protected void reduce(Text key, Iterable<IntWritable> values,
Context context)
throws IOException, InterruptedException {
int sum=0;
for(IntWritable count:values){
sum+=count.get();
}
context.write(key, new IntWritable(sum));
}
}
public static void main(String[] args) throws Exception{
Configuration conf=new Configuration();
String []argArray=new GenericOptionsParser(conf,args).getRemainingArgs();
if(argArray.length!=2){
System.out.println("需要两个参数");
System.exit(1);
}
Job job=Job.getInstance(conf,"wordcount");
job.setJarByClass(WordCount.class);
job.setMapperClass(WordCountMapper.class);
job.setMapOutputKeyClass(Text.class);
job.setMapOutputValueClass(IntWritable.class);
job.setReducerClass(WordCountReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
FileInputFormat.addInputPath(job, new Path(argArray[0]));
FileOutputFormat.setOutputPath(job, new Path(argArray[1]));
System.exit(job.waitForCompletion(true)?0:1);
}
}
http://www.bubuko.com/infodetail-1510060.html
http://www.51itong.net/eclipse-hadoop2-7-0-12448.html
如果想深入学习hadoop,阅读源码是非常必要的。之前已经下载了hadoop的源码包,并解压到指定路径下,我的路径为:/Users/haizhi/hadoop-2.6.4-src。接下来,只要在eclipse下的工程中,只要做简要配置即可。
如想查看Text类的源码。只要右键如下图选择:
选择之前源码解压的路径即可。源码如下显示:
●档案 名称: 首页四栏最新主题列表 繁简中文加强版●插件 译名: 首页四栏最新主题列表加强版●插件 版本: 3.0' 繁体/简体中文加强版●档案 类型: 首页增强外挂●适用 版本: vBulltein 3.5.x/3.6.x●档案 编者: Developer●档案 增修: Lilyandy休闲资讯网: Lilyandy●繁简中文化: Lilyandy休闲资讯网...
安装前先关闭杀毒软件和360卫士,注意安装路径不能有中文,安装包路径也不要有中文。1.鼠标右击【Halcon17】压缩包选择【解压到Halcon17】。2.双击打开解压后的【Halcon17】文件夹。3.双击打开【setup】文件夹。4.鼠标右击【halcon-17.12.0.0-windows.exe】选择【以管理员身份运行】。5.点击【Next】。6.将滚动条拉至最下方,然后勾选【I accept the terms ofthe Softwar...
本文内容出自《高质量C、C++编程指南》,这本书对内存管理这些内容说得很好,故整理出来跟大家分享。一、内存分配方式1、从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。2、在栈上创建。如函数内局部变量,在函数执行结束时会被自动释放。栈上创建的变量效率很高,但是分配的内存容量有限。3、
转载于:https://my.oschina.net/macfeeupdate/blog/5828
公司新买一台激光打印机HP M315a,用来打印宣传册。打印的时候, 发现总是会有边距,想了好多办法,都不行。咨询HP售后,得到结果是HP激光打印机都不支持无边距打印,要想实现无边距打印,HP的喷墨打印机有这一功能。打印机已经拆封了,想换是不可能的了,所以在些,提醒各位准备买打印机的朋友,一定要注意这个情况,打印机是分支持无边距和不支持无边距两种功能的。打印出来的效果是,上...
1、web项目出现如上问题,可能是版本问题:JSTL 1.0 的声明是:http://java.sun.com/jstl/core " %>JSTL1.1 的声明是:Java.sun.com/jsp/jstl/core %>目前项目版本为Java EE5,已经是 jstl 1.2 版本了,页面中用http://java.sun.com/jsp/jstl/co
九月份又到了,时间过得好快!好长时间没有写些什么了!我唯一感觉的旧时间过得很快!我还有很多事情没有做!我的努力了!
谈及“奇葩规定”四个字,单纯的加班不给加班费,已然弱爆了。前程无忧论坛曾经对“奇葩公司奇葩规定奇葩老板”展开了相关调查,在网友们对各自公司进行强烈吐槽的同时,公司给出的解释看上去又似乎合情合理。我们列举了以下十条“奇葩”规定,博君一笑的同时也希望员工和公司都能互相体谅,毕竟大家是利益共同体。 1.去卫生间也受限制 奇葩指数:十只烂番茄 员工:公司的做法太没人性了。人总有
拓扑排序的入门题。刚开始理解起来有一点困难,现在还是半知半解,当初学树的时候也这样。过几天
第7课 微信小程序实现图片搜索器案例:效果图如下:来我们来看看代码的全局样式:首先在app.json内的pages把需要的index1、index2页面注册之后我们只需写index1、index2两个页面 即可实现图片搜索小案例首先我们来看以下index1页面内的代码:index1.js代码:// pages/index1/index1.jsPage({ data: ...
suds for Python3.X should be suds-jurko-rw-r--r-- 1 root root 255758 Dec 21 06:29 suds-jurko-0.6.zip[[email protected] ~]# unzip suds-jurko-0.6.zipArchive: suds-jurko-0.6.zip inflating: s
Observable Utility Operators(辅助操作符)delay顾名思义,Delay操作符就是让发射数据的时机延后一段时间,这样所有的数据都会依次延后一段时间发射。 log("start subscrib:" + System.currentTimeMillis()/1000); Observable<Long> observable = Obser