日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hadoop之MapReduce程序应用一读取专利引用数据集并对它进行倒排

發(fā)布時(shí)間:2024/1/23 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hadoop之MapReduce程序应用一读取专利引用数据集并对它进行倒排 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

摘要:MapReduce程序處理專利數(shù)據(jù)集。

關(guān)鍵詞:MapReduce程序 ? 專利數(shù)據(jù)集

數(shù)據(jù)源:專利引用數(shù)據(jù)集cite75_99.txt。(該數(shù)據(jù)集可以從網(wǎng)址http://www.nber.org/patents/下載)

問題描述:

讀取專利引用數(shù)據(jù)集并對它進(jìn)行倒排。對于每一個(gè)專利,找到那些引用它的專利并進(jìn)行合并。top5輸出結(jié)果如下:

1 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?3964859, 4647229

10000 ? ? ? ? ? ? ? ? ? ? ? ? ? ?4539112

100000 ? ? ? ? ? ? ? ? ? ? ? ? ? 5031388

1000006 ? ? ? ? ? ? ? ? ? ? ? ? ?4714284

1000007 ? ? ? ? ? ? ? ? ? ? ? ? ?4766693

解決方案:

1 ?開發(fā)工具: ?VM10+Ubuntu12.04+hadoop1.1.2+eclipse

2 ?在eclipse中創(chuàng)建一個(gè)工程,并且在工程里添加一個(gè)Java類。

程序清單如下:

package com.wangluqing;

import java.io.IOException;?
import java.util.Iterator;?
import org.apache.Hadoop.conf.Configuration;?
import org.apache.hadoop.conf.Configured;?
import org.apache.hadoop.fs.Path;?
import org.apache.hadoop.io.Text;?
import org.apache.hadoop.mapred.FileInputFormat;?
import org.apache.hadoop.mapred.FileOutputFormat;?
import org.apache.hadoop.mapred.JobClient;?
import org.apache.hadoop.mapred.JobConf;?
import org.apache.hadoop.mapred.KeyValueTextInputFormat;?
import org.apache.hadoop.mapred.MapReduceBase;?
import org.apache.hadoop.mapred.Mapper;?
import org.apache.hadoop.mapred.OutputCollector;?
import org.apache.hadoop.mapred.Reducer;?
import org.apache.hadoop.mapred.Reporter;?
import org.apache.hadoop.mapred.TextOutputFormat;?
import org.apache.hadoop.util.Tool;?
import org.apache.hadoop.util.ToolRunner;

public class MyJob1 extends Configured implements Tool {
public static class MapClass extends MapReduceBase implements Mapper<Text,Text,Text,Text> {

@Override
public void map(Text key, Text value, OutputCollector<Text, Text> output,
Reporter reporter) throws IOException {
// TODO Auto-generated method stub

output.collect(value, key);
}

}

public static class Reduce extends MapReduceBase implements Reducer<Text,Text,Text,Text> {

@Override
public void reduce(Text key, Iterator<Text> values,
OutputCollector<Text, Text> output, Reporter reporter)
throws IOException {
// TODO Auto-generated method stub
String csv = "";
while(values.hasNext()) {
if(csv.length()>0)?
csv += ",";
csv += values.next().toString();
}

output.collect(key, new Text(csv));

}
}

public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
String[] arg={"hdfs://hadoop:9000/user/root/input/cite75_99.txt","hdfs://hadoop:9000/user/root/output"};
int res = ToolRunner.run(new Configuration(),new MyJob1(), arg);
System.exit(res);
}

public int run(String[] args) throws Exception {
// TODO Auto-generated method stub
Configuration conf = getConf();?
JobConf job = new JobConf(conf, MyJob1.class);?
Path in = new Path(args[0]);?
Path out = new Path(args[1]);?
FileInputFormat.setInputPaths(job, in);?
FileOutputFormat.setOutputPath(job, out);

job.setJobName("MyJob");?
job.setMapperClass(MapClass.class);?
job.setReducerClass(Reduce.class);?
job.setInputFormat(KeyValueTextInputFormat.class);?
job.setOutputFormat(TextOutputFormat.class);?
job.setOutputKeyClass(Text.class);?
job.setOutputValueClass(Text.class);?
job.set("key.value.separator.in.input.line", ",");?
JobClient.runJob(job);?
return 0;

}

}

運(yùn)行Run on hadoop,在Ubuntu 下執(zhí)行命令

hadoop fs -cat ?/usr/root/output/part-00000 ?| ?head

可以查看到經(jīng)過MapReduce程序處理后的結(jié)果。

總結(jié):

第一:可以采用裝有Hadoop版本對應(yīng)插件的Eclipse集成開發(fā)工具進(jìn)行MapReduce程序開發(fā)。

第二:根據(jù)數(shù)據(jù)流和問題域設(shè)計(jì)和編寫MapReduce程序。

Resource:

1?http://www.wangluqing.com/2014/03/hadoop-mapreduce-programapp1/?

2 參考《Hadoop實(shí)戰(zhàn)》第四章 MapReduce基礎(chǔ)程序

總結(jié)

以上是生活随笔為你收集整理的Hadoop之MapReduce程序应用一读取专利引用数据集并对它进行倒排的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。