直观:大数据常用采集工具

优采云 发布时间: 2022-11-17 06:47

  直观:大数据常用采集工具

  1.水槽

  Flume作为Hadoop的一个组件,是Cloudera专门开发的分布式日志采集系统。特别是近年来,随着Flume的不断完善,用户在开发过程中的便利性得到了极大的提升,Flume现已成为Apache顶级项目之一。

  Flume提供了从Console(控制台)、RPC(Thrift-RPC)、Text(文件)、Tail(UNIX Tail)、Syslog和Exec(命令执行)等数据源采集数据的能力。

  Flume 采用多 Master 的方式。为了保证配置数据的一致性,Flume引入了ZooKeeper来保存配置数据。ZooKeeper 本身保证配置数据的一致性和高可用性。另外,ZooKeeper可以在配置数据发生变化时通知Flume Master节点。Gossip 协议用于在 Flume Master 节点之间同步数据。

  Flume对于特殊场景也有很好的自定义扩展能力,所以Flume适用于大部分日常数据采集场景。由于 Flume 是使用 JRuby 构建的,因此它依赖于 Java 运行环境。Flume被设计为分布式管道架构,可以看作是数据源和目的地之间的Agent网络,支持数据路由。

  Flume支持设置Sink的Failover和负载均衡,这样可以保证当一个Agent出现故障时整个系统仍然可以正常采集数据。Flume中传输的内容被定义为事件(Event),事件由Headers(包括元数据,即Meta Data)和Payload组成。

  Flume 提供了SDK 来支持用户自定义开发。Flume 客户端负责将事件发送到事件源的 Flume Agent。客户端通常与生成数据源的应用程序处于相同的进程空间中。常见的 Flume 客户端是 Avro、Log4J、Syslog 和 HTTP Post。

  2.流利

  Fluentd是另一种开源的数据采集架构,如图1所示。Fluentd使用C/Ruby开发,使用JSON文件统一日志数据。通过丰富的插件,可以采集各种系统或应用的日志,然后根据用户定义对日志进行分类。通过Fluentd,可以非常容易的实现跟踪日志文件并过滤并转储到MongoDB等操作。Fluentd 可以将人们从繁琐的日志处理中完全解放出来。

  图 1 Fluentd 架构

  Fluentd 具有安装方便、占用空间小、半结构化数据记录、灵活的插件机制、可靠的缓冲和日志转发等多种特点。Treasure Data 为本产品提供支持和维护。此外,采用JSON统一的数据/日志格式是它的另一个特点。与Flume相比,Fluentd的配置相对简单。

  Fluentd的扩展性非常好,客户可以自行定制(Ruby)Input/Buffer/Output。Fluentd 存在跨平台问题,不支持 Windows 平台。

  Fluentd 的 Input/Buffer/Output 与 Flume 的 Source/Channel/Sink 非常相似。Fluentd 架构如图 2 所示。

  图 2 Fluentd 架构

  3.日志存储

  Logstash是著名的开源数据栈ELK(ElasticSearch、Logstash、Kibana)中的L。因为Logstash是用JRuby开发的,所以在运行时依赖于JVM。Logstash的部署架构如图3所示,当然这只是一种部署方式。

  图 3 Logstash部署架构

  典型的 Logstash 配置如下,包括 Input 和 Filter Output 设置。

  input {

 file {

 type =>"Apache-access"

 path =>"/var/log/Apache2/other\_vhosts\_access.log"

 } 

 file {

 type =>"pache-error"

 path =>"/var/log/Apache2/error.log"

 }

<p>

}

filter {

 grok {

 match => {"message"=>"%(COMBINEDApacheLOG)"}

 } 

 date {

 match => {"timestamp"=>"dd/MMM/yyyy:HH:mm:ss Z"}

 }

}

output  {

 stdout {}

 Redis {

 host=>"192.168.1.289"

 data\_type => "list"

 key => "Logstash"

 }

}

</p>

  几乎在大多数情况下,ELK 都是作为堆栈同时使用的。如果你的数据系统使用 ElasticSearch,Logstash 是首选。

  4.楚夸

  Chukwa是Apache下的另一个开源数据采集平台,名气远不如其他几家。Chukwa 基于 Hadoop 的 HDFS 和 MapReduce(用 Java 实现)构建,提供可扩展性和可靠性。它提供了很多模块来支持Hadoop集群日志分析。Chukwa还提供数据展示、分析和监控。该项目目前处于非活动状态。

  Chukwa 满足以下需求:

  (1)灵活、动态、可控的数据源。

  (2) 高性能、高扩展性的存储系统。

  (3) 用于分析采集到的*敏*感*词*数据的适当架构。

  Chukwa 架构如图 4 所示。

  图 4 Chukwa 架构

  5.抄写员

  Scribe 是 Facebook 开发的数据(日志)采集系统。其官网多年未维护。Scribe 为日志的“分布式采集和统一处理”提供了一个可扩展和高容错的解决方案。当中央存储系统的网络或机器出现故障时,Scribe会将日志转储到本地或其他位置;当中央存储系统恢复时,Scribe 会将转储的日志重新传输到中央存储系统。Scribe 通常与 Hadoop 结合使用,将日志推送(push)到 HDFS,Hadoop 通过 MapReduce 作业进行周期性处理。

  Scribe 架构如图 5 所示。

  

  图 5 Scribe 架构

  Scribe架构比较简单,主要包括三个部分,分别是Scribe代理、Scribe和存储系统。

  6.斯普伦克

  在商业化的大数据平台产品中,Splunk提供了完备的数据采集、数据存储、数据分析处理、数据展示等能力。Splunk 是一个分布式机器数据平台,具有三个主要角色。Splunk 架构如图 6 所示。

  图片

  图 6 Splunk 架构

  搜索:负责数据的搜索和处理,提供搜索时的信息提取功能。

  Indexer:负责数据的存储和索引。

  Forwarder:负责数据的采集、清洗、变形,并发送给Indexer。

  Splunk 内置了对 Syslog、TCP/UDP 和 Spooling 的支持。同时,用户可以通过开发Input和Modular Input获取具体的数据。Splunk提供的软件仓库中有很多成熟的数据采集应用,例如AWS、数据库(DBConnect)等,可以方便的从云端或数据库中获取数据,进入Splunk的数据平台进行分析。

  Search Head和Indexer都支持Cluster的配置,即高可用和高扩展,但是Splunk还没有Cluster for Forwarder的功能。也就是说,如果一台Forwarder机器出现故障,数据采集也会中断,正在运行的数据采集任务不能因为failover切换到其他Forwarder上。

  7. 碎片化

  Python 的爬虫架构称为 Scrapy。Scrapy 是一种快速、高级的屏幕抓取和网页抓取框架,由 Python 语言开发,用于爬取网站并从页面中提取结构化数据。Scrapy 用途广泛,可用于数据挖掘、监控和自动化测试。

  Scrapy 的魅力在于它是一种任何人都可以根据自己的需要轻松修改的架构。它还为各种类型的爬虫提供了基类,如BaseSpider、Sitemap爬虫等,最新版本提供了对Web 2.0爬虫的支持。

  Scrapy的运行原理如图7所示。

  图片

  图7 Scrapy运行原理

  Scrapy的整个数据处理过程都是由Scrapy引擎控制的。Scrapy运行过程如下:

  (1) 当Scrapy引擎打开一个域名时,爬虫对域名进行处理,让爬虫获取第一个爬取到的URL。

  (2) Scrapy引擎首先从爬虫中获取第一个要爬取的URL,然后在调度器中将其作为请求进行调度。

  (3) Scrapy引擎从调度器中获取下一个要爬取的页面。

  (4)调度返回下一个抓取到的URL给引擎,引擎通过下载中间件发送给下载器。

  (5) 网页被下载器下载后,通过下载器中间件将响应内容发送给Scrapy引擎。

  (6) Scrapy引擎接收到下载器的响应,通过爬虫中间件发送给爬虫进行处理。

  (7) 爬虫处理响应并返回爬取的item,然后向Scrapy引擎发送新的请求。

  (8) Scrapy引擎将抓取的item放入project pipeline,并向scheduler发送请求。

  (9) 系统重复步骤(2)之后的操作,直到调度器中没有请求,然后断开Scrapy引擎与域的连接。

  直观:数据抓取工具有哪些-点点鼠标就能抓取数据的工具

  随着社会的进步,科学技术的发展。无论是企业还是个人,都清楚地知道数据的重要性。不仅可以让我们掌握一手资源,还可以让我们通过数据更好地了解竞争对手。同时,告别手动复制粘贴的痛苦。

  业务人员

  通过抓取动态网页数据分析客户行为,开发新业务,分析竞争对手,超越竞争对手。

  网站人

  实现自动采集、定期发布、自动SEO优化,让您的网站瞬间拥有强大的内容支撑,快速提升流量和知名度。

  个人的

  代替手动复制和粘贴,提高效率并节省更多时间。解决学术研究或生活、工作等数据信息需求,彻底解决无料问题

  什么是数据抓取工具?今天我们就一起来盘点一下,免费的数据爬取工具有哪些?

  1. 指定 网站采集

  您只需轻点鼠标,即可轻松抓取所需数据,无论是导出还是自动发布软件都能支持!详情请看图片!

  

  2. 关键词文章采集

  只需键入 关键词、采集文章。关键词采集的文章与我的网站主题和写作主题100%相关,以后找不到文章麻烦了。

  3. 监控采集

  正所谓“无监控,不运营”,实时获取采集监控数据,准确监控网络数据信息,及时处理不良或危险信息

  4. 批处理多任务 采集

  可以同时创建多个采集任务,多个任务可以采集执行。

  5.自定义发布或导出

  无需花费大量时间学习软件操作,一分钟即可上手。提供全自动系统化,无需人工干预,设置任务,自动执行发布。

  

  六、SEO优化技巧

  当你把大型网站的各种SEO套路(各种内容、目录、关键词、内链系统、自动生成页面...)应用到小型企业网站上,你会发现资源匮乏并没有得到解决。问题,这些大站的套路对你没有用。

  那么从解决资源稀缺、网站缺乏框架开始?然后从网站 框架入手,将小型企业站点变成中型网站。大多数小型企业网站可能只有十几、二十个页面,所以从调整结构开始,变成几百、几千甚至几万个页面。

  小型企业网站的典型结构:首页、产品列表、产品详情页、信息列表、信息详情页(关于联系我们、关于我们等我们就不写了)。

  整个网站都贯穿着tag标签。tag标签可以分为两组。产品用产品标签标记,信息用两个标签标记:产品和关键词标签。通过tag标签,产品和信息链接在一起。根据关键词调用多组页面竞争排名。

  通过大量的关键词挖掘,分析排序词的匹配模式,比如:xx价格,xx厂商,xx品牌等,然后根据标签组合调用生成的页面(生成的页面必须有相关性,不要白用 相关内容在一个页面上显示,会成为百度攻击的目标),生成成百上千,设置几万页问题不大,主要看行业中 关键词 的数量。

  基本结构搭建完成后,解决内容不足的问题,通过大量编辑或者采集内容进行填充(采集的内容一定要重新处理,否则就是百度攻击的目标)。

  完成了基本的结构和内容,把网站变成了一个中型的网站,现在可以使用大网站的内链系统和自动生成的页面了。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线