编写一个简单的MapReduce程序大体上需要如下3步:1)实现Mapper,处理输入的对,输出中间结果;2)实现Reducer,对中间结果进行运算,输出最终结果;3)在main方法里定义运行作业,定义一个job,在这里控制job如何运行等。 本文将通过一个实例(字数统计)演示MapReduce基本编程。0 导入Hadoop的jar包导入hadoop目录下和lib目录下的jar包 1 编写Mapper类 Mapper抽象类是一个泛型,有4个形式的参数类型,分别指定map函数的输入键,输入值,输出键,输出值。就上面的示例来说,输入键没有用到(实际代表行在文本中格的位置,没有这方面的需要,所以.. Read More
问题有一个字符串由多个变量拼接而成: "$x1$x2$x3$x4$x5$x6..." ,这个列表可以一直延伸到 $x10000,而每个变量都至少有一种可能的取值,为了简化问题,每个变量不会再引用别的变量。现在,给定一个字符串T,判断这个字符串是否能由上面这个"$x1$x2$x3$x4$x5$x6..." 生成。分析我们可以算出,总的可能性(最多)是 n1*n2*n3*n4*n5*n6...。最笨的办法因为现实中不会有太极端的情况,我们可以将这些字符串全部扩展出来,放入一个hash table。但是,如何得到这些扩展结果呢?这是一个笛卡尔积的问题,可以用最 Read More
一、Crontab介绍crontab命令的功能是在一定的时间间隔调度一些命令的执行。1.1 /etc/Crontab文件在/etc目录下有一个crontab文件,这里存放有系统运行的一些调度程序。每个用户可以建立自己的调度crontab(在/var/spool/cron目录下)。 以下是我本机上的crontab文件,[root@localhost etc]# cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/# run-parts 01 * * * * root run-p Read More
前段时间入手了一本《程序员的职业素养》,谁推荐的忘记了,断断续续看完了,觉得写得还行,翻译这本书的人是公司的同事,但是从来没见过。 Bob大叔的作品,他是一名程序员,编了40多人的程序了。书的序是这样开头的, “如果你选择了这本书,那么我不妨认为你是一名软件工程师” 这句话一针见血啊,如果你不是程序员,估计也没有必要看这本书了。 “请你把这本书看成是我的错误大全,它记录了我干过的所有蠢事” 这句话挺有意思的,和马云之前谈的有点类似,他想写一下阿里巴巴犯过的种种错误,而不是阿里巴巴是如何成功的。或许,我们从过往的错误中能够学习到更多的东西吧。 书的第一章是“专业主义”,之所以这... Read More
描述:采用二分+贪心策略,找出范围值,然后从后往前找就行“/”的位置判断#include <cstdio>#include <cstdlib>int num[510],score[510];int main(){ //freopen("a.txt","r",stdin); int n,m,t,k; long long v,sum,max,count; scanf("%d",&t); while(t--) { scanf("%d %d",&n,&m); sum=v=0; Read More