我的编程空间,编程开发者的网络收藏夹
学习永远不晚

常用的大数据采集工具

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

常用的大数据采集工具

1、Flume

Flume作为Hadoop的组件,是由Cloudera专门研发的分布式日志收集系统。尤其近几年随着Flume的不断完善,用户在开发过程中使用的便利性得到很大的改善,Flume现已成为Apache Top项目之一。

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

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

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

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

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"

}

}

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"

}

}

几乎在大部分的情况下,ELK作为一个栈是被同时使用的。在你的数据系统使用ElasticSearch的情况下,Logstash是首选。

4、Chukwa

Chukwa是Apache旗下另一个开源的数据收集平台,它远没有其他几个有名。Chukwa基于Hadoop的HDFS和MapReduce来构建(用Java来实现),提供扩展性和可靠性。它提供了很多模块以支持Hadoop集群日志分析。Chukwa同时提供对数据的展示、分析和监视。该项目目前已经不活跃。

Chukwa适应以下需求:

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

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

(3)合适的架构,用于对收集到的大规模数据进行分析。

Chukwa架构如图4所示。

 

图4  Chukwa架构

5、Scribe

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

Scribe架构如图5所示。

 

图5  Scribe架构

Scribe架构比较简单,主要包括三部分,分别为Scribe agent、Scribe和存储系统。

6、Splunk

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

 

图6  Splunk架构

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

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

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

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

Search Head和Indexer都支持Cluster的配置,即高可用、高扩展的、但Splunk现在还没有针对Forwarder的Cluster的功能。也就是说,如果有一台Forwarder的机器出了故障,则数据收集也会随之中断,并不能把正在运行的数据收集任务因故障切换(Failover)到其他的Forwarder上。

7、Scrapy

python的爬虫架构叫Scrapy。Scrapy是由Python语言开发的一个快速、高层次的屏幕抓取和Web抓取架构,用于抓取Web站点并从页面中提取结构化数据。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)爬虫处理响应并返回爬取到的项目,然后给Scrapy引擎发送新的请求。

(8)Scrapy引擎将抓取到的放入项目管道,并向调度器发送请求。

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



免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

常用的大数据采集工具

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

常用的大数据采集工具

为了高效采集大数据,依据采集环境及数据类型选择适当的大数据采集方法及平台至关重要。下面介绍一些常用的大数据采集平台和工具。

六个大数据采集工具架构分析

随着大数据越来越被重视,数据采集的挑战变的尤为突出。今天为大家介绍几款数据采集平台:Apache Flume、Fluentd、Logstash、Chukwa、Scribe、Splunk Forwarder。

常见的大数据存储工具

大数据分析需求迫使数据存储范式发生巨大转变,从传统的基于块和文件的存储网络转向更具可扩展性的模型,如对象存储、横向扩展 NAS 和数据湖。

2021年用于数据集成的9大ETL工具

ETL工具用于将异构数据转换为同类数据,然后由数据科学家用于从数据中获得有价值的见解。

Linxu下性能指标采集工具之nmon工具的使用

目录前言nmon工具下载nmon使用扩展.nmon文件解析前言 近期在测试JefLogTail,由于JefLogTail使用的是轮询的www.cppcns.com方式来监听文件夹,所以对cpu的消耗可能会高一些,所以在测试的时候着重关注CP
2023-04-27

[离线计算-Spark|Hive] 大数据应用性能指标采集工具改造落地

本文主要介绍了下Uber的开源项目jvm-profiler的产生背景,设计原理以及架构, 后面也设计了一套落地方案,用于采集spark、hive任务的资源消耗相关指标,可用于后续分析以及资源调优. 背景主要介绍针对平台的spark应用程序,在不修改用户程
[离线计算-Spark|Hive] 大数据应用性能指标采集工具改造落地
2019-04-11

面试官:谈谈大数据采集和常见问题

离线数据采集主要包括从数据库中采集,如MySQL、Oracle、MongoDB等;从离线文件采集,如外部系统数据。

5个常用的大数据可视化分析工具

1. Tableau:Tableau是一款强大的数据可视化工具,可以帮助用户创建交互式和动态的图表、地图和仪表板。它支持多种数据源,可以轻松地连接到各种大数据平台。2. Power BI:Power BI是微软推出的一款商业智能工具,可以将
2023-09-22

大数据可视化分析工具常用的有哪些?

大数据可视化分析工具常用的有哪些?企业基础数据才能制定出正确的策略,常用的分析工具有、Tableau、ECharts、Highcharts、魔镜、图表秀等。在大数据时代有价值的商品则是数据,大数据技术为决策提供依据,在政府、企业、科研项目等

用于收集大量数据的十个强大的企业级ELT工具

很多企业每天都在处理海量数据。调研机构Global Data Fabric公司发布的一份市场分析报告指出,“到2021年底,全球各地的企业使用数据获取洞察力获得的收入高达1.8万亿美元。”

Prometheus系统的数据采集器如何工作

Prometheus系统的数据采集器通过展示和存储监控数据来帮助用户了解系统的性能和健康状况。它工作的基本原理如下:数据源:Prometheus数据采集器会定期从被监控的目标系统中获取指标数据,这些目标系统可以是服务器、应用程序、数据库等。
Prometheus系统的数据采集器如何工作
2024-03-04

2024前端数据可视化常用工具大盘点

ECharts是一个基于JavaScript的开源数据可视化库,它由百度开源,现在由 Apache 基金会维护。ECharts提供了丰富的图表类型、灵活的配置选项和强大的交互功能,使得开发者能够轻松构建出美观且功能强大的数据可视化应用。

大数据分析工具BI的应用

大数据分析工具BI,是企业数据化管理的一整套方案,用于将企业中现有的数据进行有效整合,快速准确的提供决策依据,帮助企业做出明智的业务经营决策,解决企业管理问题。

使用亮数据解决数据采集的困境

在大数据时代,数据被视为推动生产力增长的核心资源。然而,获取网络数据的过程远比人们想象的要复杂和具有挑战性。

人工智能数据采集标注行业四大趋势预测

编程学习网:人工智能数据采集标注头部企业云测数据近日发布了《2021 年人工智能数据采集标注行业四大趋势预测》。
人工智能数据采集标注行业四大趋势预测
2024-04-24

爬虫中常见的采集数据方法有哪些

本篇内容主要讲解“爬虫中常见的采集数据方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“爬虫中常见的采集数据方法有哪些”吧!网络数据采集过程本身非常复杂。除了爬虫程序复杂之外,被抓取目标网
2023-06-20

数据采集新篇章:AI与大模型的融合应用

文章概述了在AIGC应用中,大型语言模型(LLM)的重要性及其在实时数据处理方面的局限性。进而介绍了通过网络爬虫技术结合LLM的方法,旨在克服这些限制,通过实时网络请求、HTML内容加载与转换,以及LLM进行的数据抽取和摘要生成,实现对网络

前端常用的数据可视化工具库

今天来推荐几款GitHub上热门的前端数据可视化工具库!

超强盘点:常用的6个大数据可视化分析工具

数据能表现出更为客观、理性的一面,能我们更加直观、清晰的认识世界,而根据数据,企业也才能制定出正确的策略。今天给大家推荐常用的5个大数据可视化分析工具,希望对你们有帮助。

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录