为您找到搜索结果:815个
MR案例:倒排索引
1.map阶段:将单词和URI组成Key值(如“MapReduce:1.txt”),将词频作为value。 利用MR框架自带的Map端排序,将同一文档的相同单词的词频组成列表,传递给Combine过程,实现类似于WordCount的功能。ClassMap<Longwritable,Text,Text,Longwritable>{methodmap(){//获取输入分片对应的文件名StringfileName=((FileSplit)context.getInputSplit()).getPath().getName();for(Stringword:value.split()){//输出:<key,value>---<"MapReduce:1.txt",1>context.write(newText(word+":"+fileName),newLongwritable(1))}}}2.Combiner阶段:将key值相同的value值累加,得到一个单词在文档中的词频。如果直接将Map的输出作为Reduce的输入,当前key值...
MR案例:路径过滤PathFilter
问题描述:现有一批cookie日志,按照日期进行存放,如目录“dir/2015-08-08”下存放2015-08-08这一天的所有cookie。而目录“/2015-08-08/”下又根据数据文件名称的不同存放不同项目的cookie,如“project-flag-cookie”文件中存放的是flag项目相关的cookie。实际需求:统计出某一天属于项目A的唯一cookie数是多少?(唯一cookie是指去重)1.自定义PathFilter类由于项目是根据文件名字来区分,所以就要把文件名不符合条件的过滤掉。//Job配置文件设置FileInputFormat.setInputPathFilter(job,CookieFilter.class);//自定义PathFilter类publicclassCookieFilterimplementsPathFilter{@Overridepublicbooleanaccept(Pathpath){if(StringUtils.split(path.getName(),Strin...
MR案例:分区和排序
现有一学生成绩数据,格式如下:<学号,姓名,学院,成绩> //<id,name,institute,grade>。需求描述:查询成绩大于等于60分的学生数据,按学院分组,组内按成绩从小到大排序。使用SQL描述:Select*fromtablewheregrade>=60groupbyinstituteorderbygrade;在MR下应该怎么做?1.map阶段选择成绩>=60分的学生。ClassSelectMappermethodmap(LongWritable,Text,InfoWritable,Text){splited[]=value.toString().split(",");InfoWritable=newInfoWritable(splited[2],splited[3]);TextOut=newText(splited[0]+""+splited[1]);if(splited[3]>=60)//选择成绩满足条件的输出context.write(InfoWritable,TextOut)}2.partition阶段按照学生...
MR案例:单表关联查询
"单表关联"这个实例要求从给出的数据中寻找所关心的数据,它是对原始数据所包含信息的挖掘。需求:实例中给出child-parent(孩子—父母)表,要求输出grandchild-grandparent(孙子—爷奶)表。packagetest;importjava.io.IOException;importjava.util.ArrayList;importjava.util.List;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.io.LongWritable;importorg.apache.hadoop.io.Text;importorg.apache.hadoop.mapreduce.Job;importorg.apache.hadoop.mapreduce.Mapper;importorg.apache.hadoop.mapreduce.Reducer;importorg.apache.hadoop.map...
MR案例:小文件处理方案
HDFS被设计来存储大文件,而有时候会有大量的小文件生成,造成NameNode资源的浪费,同时也影响MapReduce的处理效率。有哪些方案可以合并这些小文件,或者提高处理小文件的效率呢?1).所有HDFS小文件数据导出到本地单个文件后,再存入HDFS[root@ncst~]#hadoopfs-ls/test/in/small/Found3items-rw-r--r--1rootsupergroup12015-08-2522:17/test/in/small/small.1-rw-r--r--1rootsupergroup12015-08-2522:17/test/in/small/small.2-rw-r--r--1rootsupergroup12015-08-2522:17/test/in/small/small.3 1.1).利用hadoopfs-cat或hadoopfs-text命令,将所有内容导出到本地文件,然后put到HDFS即可。如:[root@ncsttest]#hadoopfs-cat/test/in/small/small.*>small_data[root@...
MR案例:链式ChainMapper
类似于Linux管道重定向机制,前一个Map的输出直接作为下一个Map的输入,形成一个流水线。设想这样一个场景:在Map阶段,数据经过mapper01和mapper02处理;在Reduce阶段,数据经过sort和shuffle后,交给对应的reducer处理。reducer处理后并没有直接写入到Hdfs, 而是交给了另一个mapper03处理,它产生的最终结果写到hdfs输出目录中。注意:对任意MR作业,Map和Reduce阶段可以有无限个Mapper,但reduer只能有一个。 packagechain;importjava.io.IOException;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.io.LongWritable;importorg.apache.hadoop.io.Text;importorg.apache.hadoop.io.VLongWritable;importorg.apac...
MR案例:定制Partitioner
可以继承基类Partitioner,也可以继承默认的HashPartitioner类,覆写其中的getPartition()方法实现自己的分区。需求:本例是对上一个实例的改写,需求不变 packagecountry;importjava.io.IOException;importjava.io.UnsupportedEncodingException;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.io.Text;importorg.apache.hadoop.mapreduce.Job;importorg.apache.hadoop.mapreduce.Mapper;importorg.apache.hadoop.mapreduce.Partitioner;importorg.apache.hadoop.mapreduce.Reducer;importorg.apache.hadoop.mapreduce.lib.input....
MR案例:多文件输出MultipleOutputs
问题描述:现有ip-to-hosts.txt数据文件,文件中每行数据有两个字段:分别是ip地址和该ip地址对应的国家,以''分隔。要求汇总不同国家的IP数,并以国家名为文件名将其输出。解读:MultipleOutputs类测试数据:ip-to-hosts.txt18.217.167.70UnitedStates206.96.54.107UnitedStates196.109.151.139Mauritius174.52.58.113UnitedStates142.111.216.8Canada代码实现:packagecountry;importjava.io.IOException;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.io.IntWritable;importorg.apache.hadoop.io.LongWritable;importorg.apache.hadoop.io.Text;importorg.apache.ha...
MR案例:定制InputFormat
数据输入格式InputFormat类用于描述MR作业的输入规范,主要功能:输入规范检查(比如输入文件目录的检查)、对数据文件进行输入切分和从输入分块中将数据记录逐一读取出来、并转化为Map的输入键值对。细节详见解读:标准输入/输出格式Hadoop中最常用的数据输入格式包括:TextInputFormat 和 KeyValueInputFormat。 1).TextInputFormat 是系统默认的数据输入格式,可以将文件的每一行解析成一个键值对。其中,Key是当前行在整个文件中的字节偏移量,而Value就是该行的内容。默认的RecordReader是LineRecordReader。 2).KeyValueInputFormat是将一个按照<key,value>格式存放的文本文件逐行读出,并自动解析生成相应的key和value。默认是KeyValueLineRecordReader。 定制数据输入格式 用户可以从基类InputFormat和RecordReader开始定制过程,主要实现InputFormat中的crea...
python爬虫神器PyQuery的使用方法
你是否觉得XPath的用法多少有点晦涩难记呢?你是否觉得BeautifulSoup的语法多少有些悭吝难懂呢?你是否甚至还在苦苦研究正则表达式却因为少些了一个点而抓狂呢?你是否已经有了一些前端基础了解选择器却与另外一些奇怪的选择器语法混淆了呢?嗯,那么,前端大大们的福音来了,PyQuery来了,乍听名字,你一定联想到了jQuery,如果你对jQuery熟悉,那么PyQuery来解析文档就是不二之选!包括我在内!PyQuery是Python仿照jQuery的严格实现。语法与jQuery几乎完全相同,所以不用再去费心去记一些奇怪的方法了。天下竟然有这等好事?我都等不及了!有这等神器还不赶紧安装了!来! pipinstallpyquery 还是原来的配方,还是熟悉的味道。本文内容参考官方文档,更多内容,大家可以去官方文档学习,毕竟那里才是最原汁原味的。目前版本1.2.4(2016/3/24)官方文档pyqueryallowsyoutomakejqueryqueriesonxmldocuments.TheAPIisasmuchaspossiblethesimilartojqu...
服务器反爬虫攻略:Apache/Nginx/PHP禁止某些User Agent抓取网站(转)
服务器反爬虫攻略:Apache/Nginx/PHP禁止某些UserAgent抓取网站(转)...
thinkphp结合swagger自动生成接口文档,附案例使用
1、swagger安装去这里下载https://github.com/swagger-api/swagger-ui下载完成之后,将文件夹放到你的网站根目录上面,例如我是放在我wamp下面的www目录。接着找到dist目录,打开index.html把其中的那一串url改成自己的比如http://localhost/tp/public/swagger.json注意这个url就是后面swagger.json的路径;如果你想支持中文在index.html中加上<scriptsrc='lang/translator.js'type='text/javascript'></script><scriptsrc='lang/zh-cn.js'type='text/javascript'></script>然后打开URL输入http://localhost/swagger-ui/dist/index.html就可以看到前端界面了,应该是没内容的,因为还没生成swagger.json,生成好之后你设置的URL就起了作用。swagger.json我是放在tp框...
viewerjs 在html打开图片或打开pdf文件使用案例
开发者常用到在线访问pdf,txt,浏览图片的插件,这里推荐viewer.js这个插件,简单好用。它的核心亮点就是查看图片和pdf功能。老早以前就用过的,昨天一个小伙伴问我Android开发在线浏览pdf怎么弄?我一下想到这个插件,帮人搞出来了,感觉这个还是得总结一下才好,不然觉得简单又容易忘记。1.使用viewerjs浏览图片使用前需要先引入:css.js <linkrel="stylesheet"type="text/css"href="./viewer.min.css"/> <scriptsrc="./viewer.min.js"type="text/javascript"charset="utf-8"></script>其次简单使用代码如下:单个图片就用图片元素new 一个viewer就可以了;批量多个的图片的管理可以直接给父元素new 一个Viewer对象;<div>单张图片:<imgsrc="./a3.png"class="difimg"id="dimg"&...
echarts 多图任意布局案例
随着文档的更新,布局越来越个性化,完全可以替代整个元素界面,随意布局展示数据,下面发布一个小的文件源码文件:https://files.cnblogs.com/files/mobeisanghai/mobeihsanghai.rar 属作者原创,如有转载,请表明出处:https://www.cnblogs.com/mobeisanghai/p/html.html ...
爬虫技术:从sougou网站访问微信公众号的过程
一:分析过程:fidder+chrome开发者工具1:输入nba跳转的页面,每页显示10条相关公众号的信息2:分析网站得到每条标题的详情页链接地址在:3,请求上图中的url,会返回一段js代码,js代码的作用是,构造一个的新的url,并对新的url进行了请求。认真分析一下这段js代码,除了更换请求的url,还做了些什么。<metacontent="always"name="referrer"><script>varurl='';url+='http://mp.w';url+='eixin.qq.co';url+='m/s?src=11&';url+='timestamp=1';url+='569657625&v';url+='er=1879&sig';url+='nature=EtbL';每一个title的signature都不一样。url+='qcBn3zLfhrG';url+='-3E1bon8g8i';url+='tE*ZzQ-9aDa';url+='myXb5jH7M2ioQfn7GbekEK2cn2BCeNQZa1Pl70JDL...