常用的大数据采集工具_第1页
常用的大数据采集工具_第2页
常用的大数据采集工具_第3页
常用的大数据采集工具_第4页
常用的大数据采集工具_第5页
已阅读5页,还剩8页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

常用的大数据采集工具收录于话题\o"数据治理"#数据治理大数据的来源多种多样,在大数据时代背景下,如何从大数据中采集出有用的信息是大数据发展的最关键因素。大数据采集是大数据产业的基石,大数据采集阶段的工作是大数据的核心技术之一。为了高效采集大数据,依据采集环境及数据类型选择适当的大数据采集方法及平台至关重要。下面介绍一些常用的大数据采集平台和工具。1、FlumeFlume作为Hadoop的组件,是由Cloudera专门研发的分布式日志收集系统。尤其近几年随着Flume的不断完善,用户在开发过程中使用的便利性得到很大的改善,Flume现已成为ApacheTop项目之一。Flume提供了从Console(控制台)、RPC(Thrift-RPC)、Text(文件)、Tail(UNIXTail)、Syslog、Exec(命令执行)等数据源上收集数据的能力。Flume采用了多Master的方式。为了保证配置数据的一致性,Flume引入了ZooKeeper,用于保存配置数据。ZooKeeper本身可保证配置数据的一致性和高可用性。另外,在配置数据发生变化时,ZooKeeper可以通知FlumeMaster节点。FlumeMaster节点之间使用Gossip协议同步数据。Flume针对特殊场景也具备良好的自定义扩展能力,因此Flume适用于大部分的日常数据采集场景。因为Flume使用JRuby来构建,所以依赖Java运行环境。Flume设计成一个分布式的管道架构,可以看成在数据源和目的地之间有一个Agent的网络,支持数据路由。Flume支持设置Sink的Failover和加载平衡,这样就可以保证在有一个Agent失效的情况下,整个系统仍能正常收集数据。Flume中传输的内容定义为事件(Event),事件由Headers(包含元数据,即MetaData)和Payload组成。Flume提供SDK,可以支持用户定制开发。Flume客户端负责在事件产生的源头把事件发送给Flume的Agent。客户端通常和产生数据源的应用在同一个进程空间。常见的Flume客户端有Avro、Log4J、Syslog和HTTPPost。2、FluentdFluentd是另一个开源的数据收集架构,如图1所示。Fluentd使用C/Ruby开发,使用JSON文件来统一日志数据。通过丰富的插件,可以收集来自各种系统或应用的日志,然后根据用户定义将日志做分类处理。通过Fluentd,可以非常轻易地实现像追踪日志文件并将其过滤后转存到MongoDB这样的操作。Fluentd可以彻底地把人从烦琐的日志处理中解放出来。图1

Fluentd架构Fluentd具有多个功能特点:安装方便、占用空间小、半结构化数据日志记录、灵活的插件机制、可靠的缓冲、日志转发。TreasureData公司对该产品提供支持和维护。另外,采用JSON统一数据/日志格式是它的另一个特点。相对Flume,Fluentd配置也相对简单一些。Fluentd的扩展性非常好,客户可以自己定制(Ruby)Input/Buffer/Output。Fluentd具有跨平台的问题,并不支持Windows平台。Fluentd的Input/Buffer/Output非常类似于Flume的Source/Channel/Sink。Fluentd架构如图2所示。

图2

Fluentd架构3、LogstashLogstash是著名的开源数据栈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:ssZ"}

}}output

{

stdout{}

Redis{

host=>"89"

data_type=>"list"

key=>"Logstash"

}}几乎在大部分的情况下,ELK作为一个栈是被同时使用的。在你的数据系统使用ElasticSearch的情况下,Logstash是首选。4、ChukwaChukwa是Apache旗下另一个开源的数据收集平台,它远没有其他几个有名。Chukwa基于Hadoop的HDFS和MapReduce来构建(用Java来实现),提供扩展性和可靠性。它提供了很多模块以支持Hadoop集群日志分析。Chukwa同时提供对数据的展示、分析和监视。该项目目前已经不活跃。Chukwa适应以下需求:(1)灵活的、动态可控的数据源。(2)高性能、高可扩展的存储系统。(3)合适的架构,用于对收集到的大规模数据进行分析。Chukwa架构如图4所示。

图4

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

图5

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

图6

Splunk架构Search:负责数据的搜索和处理,提供搜索时的信息抽取功能。Indexer:负责数据的存储和索引。Forwarder:负责数据的收集、清洗、变形,并发送给Indexer。Splunk内置了对Syslog、TCP/UDP、Spooling的支持,同时,用户可以通过开发Input和ModularInput的方式来获取特定的数据。在Splunk提供的软件仓库里有很多成熟的数据采集应用,如AWS、数据库(DBConnect)等,可以方便地从云或数据库中获取数据进入Splunk的数据平台做分析。SearchHead和Indexer都支持Cluster的配置,即高可用、高扩展的、但Splunk现在还没有针对Forwarder的Cluster的功能。也就是说,如果有一台Forwarder的机器出了故障,则数据收集也会随之中断,并不能把正在运行的数据收集任务因故障切换(Failover)到其他的Forwarder上。7、Scrapypython​的爬虫架构叫Scrapy。Scrapy是由Python语言开发的一个快速、高层次的屏幕抓取和Web抓取架构,用于抓取Web站点并从页面中提取结构化数据。Scrapy的用途广泛,可以用于数据挖掘、监测和自动化测试。Scrapy吸引人的地方在于它是一个架构,任何人都可以根据需求方便地进行修改。它还提供多种类型爬虫的基类,如BaseSpider、Sitemap爬虫等,最新版本提供对Web2.0爬虫的支持。Scrapy运行原理如图7所示。

图7

Scrapy运行原理Scrapy的整个数据处理流程由Scrapy引擎进行控制。Scrapy运行流程如下:(1)Scrapy引擎打开一个域名时,爬虫处理这个域名,并让爬虫获取第一个爬取的URL。(2)Scrapy引擎先从爬虫那获取第一个需要爬取的URL,然后作为请求在调度中进行调度。(3)Scrapy引擎从调度那里获取接下来进行爬取的页面。(4)调度将下一个爬取的URL返回给引擎,引擎将它们通过下载中间件发送到下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论