做项目的时候遇到一个问题,在Mapper和Reducer *** 中处理目标数据时,先要去检索和匹配一个已存在的标签库,再对所处理的字段打标签。因为标签库不是很大,没必要用HBase。我的实现 *** 是把标签库存储成HDFS上的文件,用分布式缓存存储,这样让每个slave都能读取到这个文件。
mAIn *** 中的配置:
//分布式缓存要存储的文件路径 string cachePath[] = { "hdfs://10.105.32.57:8020/user/ad-data/tag/tag-set.csv", "hdfs://10.105.32.57:8020/user/ad-data/tag/TagedUrl.csv" }; //向分布式缓存中添加文件 job.addCacheFile(new Path(cachePath[0]).toUri()); job.addCacheFile(new Path(cachePath[1]).toUri());
参考上面代码即可向分布式缓存中添加文件。
在Mapper和Reducer *** 中读取分布式缓存文件:
/*
* 重写Mapper的setup *** ,获取分布式缓存中的文件
*/
@Override
protected void setup(Mapper<LongWritable, Text, Text, Text>.Context context)
throws IOException, InterruptedException {
// TODO Auto-generated method stub
super.setup(context);
URI[] cacheFile = context.getCacheFiles();
Path tagSetPath = new Path(cacheFile[0]);
Path tagedUrlPath = new Path(cacheFile[1]);
文件操作(如把内容读到set或map中);
}
@Override
public void map(LongWritable key, Text value, Context context)
throws IOException, InterruptedException {
在map()中使用读取出的数据;
}
同样,假如在Reducer中也要读取分布式缓存文件,示例如下:
/*
* 重写Reducer的setup *** ,获取分布式缓存中的文件
*/
@Override
protected void setup(Context context)
throws IOException, InterruptedException {
super.setup(context);
mos = new MultipleOutputs<Text, Text>(context);
URI[] cacheFile = context.getCacheFiles();
Path tagSetPath = new Path(cacheFile[0]);
Path tagSetPath = new Path(cacheFile[1]);
文件读取操作;
}
@Override
public void reduce(Text key, Iterable<Text> values, Context context)
throws IOException, InterruptedException {
while(values.iterator().hasNext()){
使用读取出的数据;
}
context.write(key, new Text( *** .toString()));
} 扫描二维码推送至手机访问。
版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。
在Ookla旗下知名测速工具Speedtest发布的2019年第三季度全球网络报告中,基带的活跃用户分野做了描摹,感兴趣的不妨了解下。 图中紫色代表高通,绿色代表Intel,橘色代表华为海思,蓝色代表三星。 可以看到,高通基带在全球的份额依然是统治级的,中国、美国、澳大利亚、印度、巴西、日本等主...
扎根印制电路板技术研发二十年,专注于汽车电子、高频通讯等中高端领域的协和电子(605258)本周启动招股,下周四(11月19日)即将网上申购。 多年的沉淀,令其收获了一批优质客户。不过随着行业规模增长放缓、各类成本抬升以及行业龙头集中度提高,协和电子往日优势逐渐消退,利润水平也逐年降低,此...
1947年,美国贝尔实验室的威廉.肖克利和他的两位助手布拉顿、巴丁,研制出了世界上第一只晶体管,为集成电路产业打开时代大门,也造就了现代信息社会的根基――“芯片”。 但是现代信息社会并不能避不开国与国之间的问题。 “芯片强则产业强,芯片兴则经济兴,没有高端芯片就没有真正的产业安全和国...
威腾电气,一家缺乏科创属性、爱夸夸其谈还带着问题供应商的公司,正在冲击科创板市场。 2021年1月14日,以输配电中母线产品研发、制造及销售为主业的威腾电气,正式通过上市委会议,距离科创板上市又近了一步。 但这对投资者而言,可能并不是一件好事。 由于身在传统电力行业,科研步伐又...
以19%市占率位居精微屏蔽罩市场头部玩家的和林微纳,即将亮相科创板。 2021年3月9日,主要产品为微机电(MEMS)精微电子零部件的和林微纳,开启了科创板招股。公司与楼氏电子、瑞声科技、裕元电子和银河机械,一同成为精微屏蔽罩市场的主要玩家,2019年五家企业合计占到全球市场总份额的80%...
作为“光伏、风电”等大热门行业上游关键零部件供应商的新风光,即将登陆科创资本市场。 2021年3月24日,以大功率电力电子节能控制技术为核心技术平台,构筑电气控制装备产品体系的新风光,在科创板开启招股环节。 招股资料显示,新风光本次共计将募资5.9亿元,其中1.5亿元用于变频器和SV...