hadoop 不同URLTitle文件提取关联URL


package com.sogou.web.selector.updana.wapPc;

import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.io.WritableComparable;
import org.apache.hadoop.io.WritableComparator;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Partitioner;
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.util.Tool;
import org.apache.hadoop.util.ToolRunner;

import com.sogou.web.selector.wapcoverage.GBKOutputFormat;

public class URLTitle extends Configured implements Tool {
private static class KeyPartitioner extends Partitioner<TextPair, Text>{

@Override
public int getPartition(TextPair key, Text value, int numPartitions) {
// TODO Auto-generated method stub
return (key.getFirst().hashCode()&Integer.MAX_VALUE)%numPartitions;
}

}
private static class GroupPartitioner extends WritableComparator{

protected GroupPartitioner() {
super(TextPair.class,true);
}
@Override
public int compare(WritableComparable a, WritableComparable b) {
// TODO Auto-generated method stub
TextPair t1=(TextPair)a;
TextPair t2=(TextPair)b;
return t1.getFirst().compareTo(t2.getFirst());
}

}
public int run(String[] args) throws Exception {
// TODO Auto-generated method stub
Job job = new Job(this.getConf(), "URL_Title_Analysis");
//设置运行job
job.setJarByClass(this.getClass());
//设置Map相关内容
job.setMapperClass(WapPCMapper.class);
job.setMapOutputKeyClass(TextPair.class);
job.setMapOutputValueClass(Text.class);
//设子reduce
job.setReducerClass(WapPcReducer.class);
job.setOutputValueClass(Text.class);
job.setOutputKeyClass(Text.class);
//设置输出入格式文件
job.setInputFormatClass(TextInputFormat.class);
job.setOutputFormatClass(GBKOutputFormat.class);

//设置分区和分组
job.setPartitionerClass(KeyPartitioner.class);
job.setGroupingComparatorClass(GroupPartitioner.class);

System.exit(job.waitForCompletion(true) ? 0 : 1);
return 0;
}

public static void main(String[] args) throws Exception {
Tool UrlTitle = new URLTitle();
ToolRunner.run(UrlTitle, args);
}
}

可以提取A,B两个文件中的URL和Title中相等的Title,并输出需要的Title的关联URL

时间: 2024-12-16 17:33:22

hadoop 不同URLTitle文件提取关联URL的相关文章

Ajax获取 Json文件提取数据

摘自 Ajax获取 Json文件提取数据 1. json文件内容(item.json) [ { "name":"张国立", "sex":"男", "email":"[email protected]", "url":"./img/1.jpg" }, { "name":"张铁林", "sex"

browserify 不打包某些文件或者把公共文件提取出来教程

var gulp = require('gulp') var fs = require("fs") var babelify = require('babelify') var browserify = require('browserify') var rename = require('gulp-rename') var uglifyjs = require('gulp-uglifyjs') var vendors = ['react','react-dom','jquery'];

修改与文件类型关联的默认程序

13/12/27 安装了Planner项目管理软件后,发现.planner文件的默认打开程序为gedit.想要将其修改过来,在open with的程序列表里也没有planner这一项,而且也无法人工指定命令行,似乎这一功能被Nautilus关掉了.通过网上搜索,Gnome系统中文件类型的描述,即mimetype,存放于/usr/share/mime与~/.local/share/mime目录下.而用于描述应用程序所能打开的文件类型则主要放在其中的application子目录中.可以看到,其中已经

RPM包文件校验和文件提取

RPM包文件校验和文件提取,布布扣,bubuko.com

Hadoop之HDFS文件操作

摘要:Hadoop之HDFS文件操作常有两种方式,命令行方式和JavaAPI方式.本文介绍如何利用这两种方式对HDFS文件进行操作. 关键词:HDFS文件    命令行     Java API HDFS是一种分布式文件系统,为MapReduce这种框架下的海量数据分布式处理而设计. Hadoop之HDFS文件操作常有两种方式,一种是命令行方式,即Hadoop提供了一套与Linux文件命令类似的命令行工具:另一种是JavaAPI,即利用Hadoop的Java库,采用编程的方式操作HDFS的文件.

给定a、b两个文件,各存放50亿个url,每个url各占用64字节,内存限制是4G,如何找出a、b文件共同的url?

给定a.b两个文件,各存放50亿个url,每个url各占用64字节,内存限制是4G,如何找出a.b文件共同的url? 可以估计每个文件的大小为5G*64=300G,远大于4G.所以不可能将其完全加载到内存中处理.考虑采取分而治之的方法. 遍历文件a,对每个url求取hash(url)%1000,然后根据所得值将url分别存储到1000个小文件(设为a0,a1,...a999)当中.这样每个小文件的大小约为300M.遍历文件b,采取和a相同的方法将url分别存储到1000个小文件(b0,b1...

MVC验证12-使用DataAnnotationsExtensions对整型、邮件、最小值、文件类型、Url地址等验证

原文:MVC验证12-使用DataAnnotationsExtensions对整型.邮件.最小值.文件类型.Url地址等验证 本文体验来自http://dataannotationsextensions.org/的DataAnnotationsExtensions.MVC3,是DataAnnotation的扩展,可以在客户端和服务端进行双重验证,能验证的类型包括:   ● 邮件验证 ● 整型验证 ● 日期验证 ● 数字验证(即从零开始的数字,不包括带小数点) ● 是否相同验证 ● 文件类型验证

正则表达式提取关联参数

自己也是初学,今天就正则表达式提取关联参数举几个例子. 理论: 1.提取单个字符串: 假如想匹配Web页面的如下部分:name = "file" value = "readme.txt">并提取readme.txt.一个合适的正则表达式:name = "file" value = "(.+?)">. ():封装了待返回的匹配字符串. .:匹配任何单个字符串. +:一次或多次. ?:不要太贪婪,在找到第一个匹配项后停

C# 注册自定义文件类型 实现自定义文件类型关联应用程序

在我们自己编写的应用中,经常会用自定义类型的文件来保存与应用相关的数据,比如.osf文件就是应用程序的项目文件.如果没有向Windows注册表注册该文件类型,那么.osf文件的图标将是windows的文件默认图标,并且你双击一个a.osf文件,也不会自动启动应用程序来加载a.osf文件.如何使.osf文件的图标变成我自己喜爱的图标.如何完成像点击.doc文件就自动打开word 程序的功能,下面将告诉你解决方案. 我们可以通过手动修改注册表来完成上述任务,更好的方式是,通过程序来实现.这样在安装应