大数据:数据采集平台之Scribe

大数据:数据采集平台之Scribe


  1. Apache Flume
    详情请看文章:《大数据:数据采集平台之Apache Flume

  2. Fluentd
    详情请看文章:《大数据:数据采集平台之Fluentd

  3. Logstash
    详情请看文章:《大数据:数据采集平台之Logstash

  4. Apache Chukwa
    详情请看文章:《大数据:数据采集平台之Apache Chukwa

  5. Scribe
    详情请看文章:《大数据:数据采集平台之Scribe

  6. Splunk Forwarder
    详情请看文章:《大数据:数据采集平台之Splunk Forwarder


GitHub地址: https://github.com/facebookarchive/scribe

Scribe是Facebook开发的数据(日志)收集系统。已经多年不维护。部署架构如下:
在这里插入图片描述

参考:https://mp.weixin.qq.com/s/emQ_94T0_Hw3ywQc0-4Dtg

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
⼤数据中数据采集的⼏种⽅式 ⼀、采集⼤数据的⽅法 1.1通过系统⽇志采集⼤数据 ⽤于系统⽇志采集的⼯具,⽬前使⽤最⼴泛的有:Hadoop 的Chukwa、ApacheFlumeAFacebook的Scribe和LinkedIn的Kafka等。这 ⾥主要学习Flume。 Flume是⼀个⾼可靠的分布式采集、聚合和传输系统,Flume⽀持在⽇志系统中定制各类数据发送⽅,⽤于收集数据,同时对数据进⾏简单 处理,并写到诸如⽂本、HDFS这些接受⽅中。 Flume的核⼼其实就是把数据从数据源收集过来,再将收集到的数据送到指定的⽬的地…… 1.2通过⽹络采集⼤数据 ⽹络采集是指通过⽹络爬⾍或⽹站公开API等⽅式,从⽹站上获取⼤数据信息,该⽅法可以将⾮结构化数据从⽹页中抽取出来,将其存储为 统⼀的本地数据⽂件,并以结构化的⽅式存储。它⽀持图⽚、⾳频、视频等⽂件或附件的采集。 ⼀般来说,⽹络爬⾍⼯具基本可以分类3类:分布式⽹络爬⾍⼯具(Nutch)、Java⽹络爬⾍⼯具(Crawler4j、WebMagic、 WebCollector)、⾮Java⽹络爬⾍⼯具( Scrapy)。 1.2.1⽹络爬⾍原理 所谓的⽹络爬⾍,其实是⼀种按照⼀定规则,⾃动地抓取web信息的程序或脚本。 ⽹络爬⾍可以⾃动采集所有其能够访问到的页⾯内容,为搜索引擎和⼤数据分析提供数据来源,⼀般有数据采集、数据处理和数据存储三部 分功能。 ⽹络爬⾍是如何爬数据的? 这是因为⽹页中除了供⽤户浏览的⽂字信息外,还包含⼀些超链接信息,通过获取这些超链接URL,再辅以⼀ 定的算法,爬⾍就能得到数据了。 1.2.2爬⾍⼯作流程 基本情况下,爬⾍会⾸先获取⼀部分种⼦URL,将这些URL放⼊待抓取URL队列,从队列中取出待抓取URL,解析DNS得到主机IP,并将 URL对应⽹页下载储存。最后将这些URL放⼊已抓取队列中,如此循环。 1.2.3爬⾍抓取策略 互联⽹上的⽹页数量以亿级为单位,该以什么样的策略爬这些⽹页的数据成为了⼀个问题,⼤致分为⼏个类型。 通⽤⽹络爬⾍,⼜称为全⽹爬⾍,主要为门户站点搜索引擎和⼤型web服务提供商采集数据,⼜分为深度优先策略和⼴度优先策略。 聚焦⽹络爬⾍,⼜称为主题⽹络爬⾍,是指选择性地爬⾏那些与预先定义好的主题相关的页⾯的⽹络爬⾍。也就是有⼀个明显的主题, ⽐如⽂本、⽐如图⽚……聚焦⽹络爬⾍⼜分为⼏种:1.基于内容、2.基于链接结构、3.基于增强学习(?)、4.基于语境(?) 增量式⽹络爬⾍,是指获取的⽬标⽹页尽量为新⽹页。 深层⽹络爬⾍,如果将那些传统搜索引擎可以索引的页⾯归属于表层⽹页,那么深层⽹络爬⾍获取的页⾯就是之外的"深层⽹页"。 1.3具体的爬⾍⼯具 1.3.1Scrapy Scrapy 是⼀个为了爬取⽹站数据、提取结构性数据⽽编写的应⽤框架,可以应⽤在包括数据挖掘、信息处理或存储历史数据等⼀系列的程 序中。 虽然Scrpay⾮常强⼤,不过它是适⽤于Python的,⽽本⼈正好⼜没有接触过Python,所以这⼀部分暂且只做了解…… 1.3.2Crawler4j、WebMagic、WebCollector 这三者都是JAVA的单机爬⾍开源框架,区别可能是在于算法和调度之类的地⽅?这点搜索了⼀下,都没有能查到,就姑且这样认为吧。 这⾥我就⽤WebMagic做⼀个Demo试⼀试吧! 1.4跑⼀下WebMagic 百度后我找到了WebMagic的 照着⾥⾯的例⼦测试⼀下: ⾸先新建⼀个maven项⽬,是不是web项⽬都可以,只要是maven就⾏了。嗯,当然不要maven也可以⼿动导⼊jar包,不过为了⽅便 还是使⽤maven吧。 官⽹有⼀个官⽅的简单例⼦ public class GithubRepoPageProcessor implements PageProcessor { // 部分⼀:抓取⽹站的相关配置,包括编码、抓取间隔、重试次数等 private Site site = Site.me().setRetryTimes(3).setSleepTime(1000); @Override // process是定制爬⾍逻辑的核⼼接⼝,在这⾥编写抽取逻辑 public void process(Page page) { // 部分⼆:定义如何抽取页⾯信息,并保存下来 page.putField("author", page.getUrl().regex("https://github\\.com/(\\w+)/.*").toString()); page.putField("name", page.getHtml().xpath("//h1[@class='entry-title public']/strong/a/text()").toStri

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王小二(海阔天空)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值