大数据采集工具

大数据是当下最火热的话题,对于一个公司来讲,如果要搭建自己的大数据平台,至少需要了解这个平台包含哪些过程:

1.数据采集(collect)

2.数据存储(store)

3.数据处理(process)

4.数据展现(可视化(visualize),报表(reporting)和监控(monitoring))

其中,数据采集又是必不可少的,因为当下数据源量大,复杂,所以如何保证数据采集的可靠性,准确性和质量就显得尤为珍贵,

现在的大数据采集平台有很多,它们大多都提供了高可靠和高扩展的数据采集,都抽象出了输入、输出和中间的缓冲的架构。

这里我主要介绍其中的两款,也是用的最多的两款:Flume和Logstash

Apache Flume

flume依赖java运行环境,它以agent为处理单位,每个agent中包含source,channel和sink组件,其中source负责接收数据,并将数据写入channel;channel负责存储数据,这里存储的类型有内存,文件,jdbc等;sink负责将channel中的数据发送给下一个处理节点,sink支持的不同目的地种类包括HDFS,HBASE,Solr,Elasticsearch,File,Logger或者其他的Flume Agent。

source上的数据可以复制到不同的channel上,而每一个channel可以连接不同数量的sink。这样连接不同配置的agent就可以组成一个复杂的数据收集网络。通过对agent的配置,可以组成一个路由复杂的数据传输网络。

当然flume还有较好的课扩展性,它支持用户可以使用flume的sdk来定制source和sink。

Logstash

相信大家都听过ELK,所谓ELK,指的是ElasticSearch家族中的elasticsearch(数据存储和数据处理),logstash(数据采集)和kibana(数据展示)。logstash同样也依赖于JVM,主要组件有input,output和filter,配置比较简单,通常作为ELK栈被同时使用,所以,如果的数据系统采用ElasticSearch的情况下,logstash是首选。

 

你可能感兴趣的:(大数据)