版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
互联网大数据早以悄然降临
隐私已经逐渐透明化!!!
互联网软件正在吞噬整个世界!!!
大数据时代已经爆发!!!目录1.Storm2.网络爬虫3.高地网络爬虫介绍storm的背景伴随着信息科技日新月异的发展,信息呈现出爆发式的膨胀,人们获取信息的途径也更加多样、更加便捷,同时对于信息的时效性要求也越来越高。举个例子:当一个卖家发布了一条宝贝信息时,他希望的当然是这个宝贝马上就可以被卖家搜索出来、点击、购买啦,相反,如果这个宝贝要等到第二天或者更久才可以被搜出来,估计这个大哥就没耐心了。再举一个例子:如果用户昨天在淘宝上买了一双袜子,今天想买一副泳镜去游泳,但是却发现系统在不遗余力地给他推荐袜子、鞋子,根本对他今天寻找泳镜的行为视而不见,估计这哥们心里就无语了。Storm是什么?1.Storm是Twitter开源的一个分布式的实时计算系统2.使用场景:数据的实时分析,持续计算,分布式RPC(远程过程调用协议)等等。Storm概念Storm概念1.Spout(消息源)2.Bolt(消息处理者)3.Streamgrouping(数据的分发方式)4.Topology(拓扑)5.Worker(工作进程)6.Task(执行具体逻辑的任务)7.Executor(执行Task的线程)8.Configuration(配置)计算拓补:Topology1.一个实时计算应用程序的逻辑在storm里面被封装到topology对象里面,我把它叫做计算拓补.Storm里面的topology相当于Hadoop里面的一个MapReduceJob,2.区别是在于,一个MapReduceJob最终总是会结束的,然而一个storm的topoloy会一直运行.
(除非你显式的杀死它)。消息源:SpoutSpouts是storm里面一个topology里面的消息生产者。一般来说消息源会从一个外部源读取数据并且向topology里面发出消息:tuple。消息源Spouts可以是可靠的也可以是不可靠的。一个可靠的消息源可以重新发射一个tuple如果这个tuple没有被storm成功的处理,但是一个不可靠的消息源Spouts一旦发出一个tuple就把它彻底忘了—也就不可能再发了。消息源Spouts可以发射多条消息流stream。要达到这样的效果,使用OutFieldsDeclarer.declareStream来定义多个stream,然后使用SpoutOutputCollector来发射指定的sream。消息处理者:Bolt所有的消息处理逻辑被封装在bolts里面。Bolts可以做很多事情:过滤,聚合,查询数据库等等。Bolts的主要方法是execute,它以一个tuple作为输入,Bolts使用OutputCollector来发射tuple,Bolts必须要为它处理的每一个tuple调用OutputCollector的ack方法,以通知storm这个tuple被处理完成了。–从而我们通知这个tuple的发射者Spouts。一般的流程是:Bolts处理一个输入tuple,发射0个或者多个tuple,然后调用ack通知storm自己已经处理过这个tuple了。storm提供了一个IBasicBolt会自动调用ack。NimbusZookeeperSupervisorSupervisorSupervisor控制节点,用于提交、分配任务,集群监控等协调公有数据的存放(一致性数据,集群状态、配置信息等)Nimbus将分配给Supervisor的任务写在Zookeeper中workerworkerworkerworker工作节点,负责接收Nimbus分配的任务,管理属于自己的worker进程执行具体逻辑的进程WorkerSupervisor会监听分配给它那台机器的工作,根据需要启动/关闭工作进程,这个工作进程就是worker每一个worker都会占用工作节点的一个端口,这个端口可以在storm.yarm中配置。一个topology可能会在一个或者多个工作进程里面执行,每个工作进程执行整个topology的一部分,所以一个运行的topology由运行在很多机器上的很多工作进程组成。Task:任务每一个Spout和Bolt会被当作很多task在整个集群里面执行。默认情况下每一个task对应到一个线程(Executor),这个线程用来执行这个task,而streamgrouping则是定义怎么从一堆task发射tuple到另外一堆task。配置Configurationstorm里面有一堆参数可以配置来调整nimbus,supervisor以及正在运行的topology的行为,一些配置是系统级别的,一些配置是topology级别的。所有有默认值的配置的默认配置是配置在default.xml里面的。你可以通过定义个storm.xml在你的classpath厘米来覆盖这些默认配置。并且你也可以在代码里面设置一些topology相关的配置信息–使用StormSubmitter。当然,这些配置的优先级是:default.xml<storm.xml<TOPOLOGY-SPECIFIC配置。消息流:Stream消息流是storm里面的最关键的抽象。一个消息流是一个没有边界的tuple序列,而这些tuples会被以一种分布式的方式并行地创建和处理。对消息流的定义主要是对消息流里面的tuple的定义,我们会给tuple里的每个字段一个名字。并且不同tuple的对应字段的类型必须一样。也就是说:两个tuple的第一个字段的类型必须一样,第二个字段的类型必须一样,但是第一个字段和第二个字段可以有不同的类型。在默认的情况下,tuple的字段类型可以是:integer,long,short,byte,string,double,float,boolean和bytearray。你还可以自定义类型—只要你实现对应的序列化器消息分发策略:StreamgroupingsShuffleGrouping:随机分组,随机派发stream里面的tuple,保证每个bolt接收到的tuple数目相同。FieldsGrouping:按字段分组,比如按userid来分组,具有同样userid的tuple会被分到相同的Bolts,而不同的userid则会被分配到不同的Bolts。AllGrouping:广播发送,对于每一个tuple,所有的Bolts都会收到。GlobalGrouping:全局分组,这个tuple被分配到storm中的一个bolt的其中一个task。再具体一点就是分配给id值最低的那个task。NonGrouping:不分组,这个分组的意思是说stream不关心到底谁会收到它的tuple。目前这种分组和Shufflegrouping是一样的效果,有一点不同的是storm会把这个bolt放到这个bolt的订阅者同一个线程里面去执行。DirectGrouping:直接分组,这是一种比较特别的分组方法,用这种分组意味着消息的发送者指定由消息接收者的哪个task处理这个消息。只有被声明为DirectStream的消息流可以声明这种分组方法。而且这种消息tuple必须使用emitDirect方法来发射。消息处理者可以通过TopologyContext来获取处理它的消息的taskid(OutputCollector.emit方法也会返回taskid)Localorshufflegrouping:如果目标bolt有一个或者多个task在同一个工作进程中,tuple将会被随机发生给这些tasks。否则,和普通的ShuffleGrouping行为一致。
RandomWordSpoutTransferBolt随机发送一个单词给下一个Bolt接收后不做处理,直接传递给下一个BoltWriterBolt将接收到的数据写入到本地文件shuffleGroupingfieldsGrouping
Topology引言-爬虫Crawler,即Spider(网络爬虫),其定义有广义和狭义之分。狭义上指遵循标准的http协议,利用超链接和Web文档检索方法遍历万维网的软件程序;而广义的定义则是能遵循http协议,检索Web文档的软件都称之为网络爬虫。网络爬虫是一个功能很强的自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成部分。网络爬虫爬虫基本原理网络爬虫是通过网页的链接地址来寻找网页,从一个或若干初始网页的URL开始(通常是某网站首页),遍历Web空间,读取网页的内容,不断从一个站点移动到另一个站点,自动建立索引。在抓取网页的过程中,找到在网页中的其他链接地址,对HTML文件进行解析,取出其页面中的子链接,并加入到网页数据库中,不断从当前页面上抽取新的URL放入队列,这样一直循环下去,直到把这个网站所有的网页都抓取完,满足系统的一定停止条件。爬虫基本原理另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索。网络爬虫分析某个网页时,利用HTML语言的标记结构来获取指向其他网页的URL地址,可以完全不依赖用户干预。如果把整个互联网当成一个网站,理论上讲网络爬虫可以把互联网上所有的网页都抓取下来爬虫基本原理而且对于某些主题爬虫来说,这一过程所得到的分析结果还可能对以后抓取过程给出反馈和指导。即从获取的数据里进一步进行抓取。正是这种行为方式,这些程序才被称为爬虫(spider)、crawler、网络机器人。爬虫基本原理Spider怎样抓取所有的Web页面呢?从给定的URL集出发,逐步来抓取和扫描那些新的出链。这样周而复始的抓取这些页面。这些新发现的URL将作为爬行器的未来的抓取的工作。随着抓取的进行,这些未来工作集也会随着膨胀,由写入器将这些数据写入磁盘来释放主存,以及避免爬行器崩溃数据丢失。没有保证所有的Web页面的访问都是按照这种方式进行,爬行器从不会停下来,Spider运行时页面也会随之不断增加。页面中所包含的文本也将呈交给文本索引器,用于基于关键词的信息索引。工作流程网络爬虫是搜索引擎中最核心的部分,整个搜索引擎的素材库来源于网络爬虫的采集,从搜索引擎整个产业链来看,网络爬虫是处于最上游的产业。其性能好坏直接影响着搜索引擎整体性能和处理速度。通用网络爬虫是从一个或若干个初始网页的上的URL开始,获得初始网页上的URL列表,在抓取网页过程中,不断从当前页面上抽取新的URL放入待爬行队列,直到满足系统的停止条件。工作流程网络爬虫基主要功能介绍如下:1.页面采集模块:该模块是爬虫和因特网的接口,主要作用是通过各种web协议(一般以HTTP.FTP为主)来完成对网页数据的采集,保存后将采集到的页面交由后续模块作进一步处理。其过程类似于用户使用浏览器打开网页,保存的网页供其它后续模块处理,例如,页面分析、链接抽取。工作流程2.页面分析模块:该模块的主要功能是将页面采集模块采集下来的页
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保险科技行业创新模式与市场前景
- 2026年海域使用权分割转让收回续期注销制度建设
- 电力数字孪生解决方案
- 2026年工业领域大规模设备更新实施方案编制指南
- 2026年保障AI教育资源普惠共享让偏远地区享受同等数字阳光
- 母婴护理中的服务流程优化
- 2026年反渗透膜元件国产化进展与性能对比测试
- 电信行业云计算方案
- 高强度螺栓连接施工作业指导书
- 美容护理中的营养学基础
- 国开2026年春季《形势与政策》专题测验1-5答案
- 2026离婚协议书标准范文
- 2026四川宜宾发展产城投资有限公司及子公司第一批员工招聘35人考试参考试题及答案解析
- 2026年邮政从业职业技能鉴定考试题库(附答案)
- 2026年临汾职业技术学院单招职业技能考试题库带答案详解(精练)
- 2025-2026学年春季第二学期学校教导处工作计划及安排表
- 北京市丰台区2026届(年)高三年级(上)学期期末考试政治试题卷+答案
- 放射性肠炎诊疗指南(2025年版)
- 2025云南事业单位考试d类真题及答案
- PRP治疗脱发课件
- 【MOOC】《知识创新与学术规范》(南京大学)期末考试慕课答案
评论
0/150
提交评论