中企动力 > 商学院 > 数据采集处理平台
  • ?

    实时数据采集 将平台资源匹配

    夏灵枫

    展开

    匹配算法实现,通过将用户属性、用户学习状态属性、用户操作行为统计属性与资源属性进行匹配,数据容量大,遥测距离远,人机界面友好,可靠性高的优点,可广泛用于学校和社区小区域范围环境服务。

    也适合于气象、海洋、环境、机场、港口、工及等领域使用.实时数据采集与上传该模块主要功能是通过无线方式获取环境观测站采集的实时数据并显示.数据采集的基本算法如下:首先判断是否到发送数据时间,若到了执行数据发送命令。

    为了方便学习者查找资源以及系统推送资源,须对学习者和资源的属性进行标记,即创建属性元数据.本研究采用标签技术分别建立学习者和资源的属性元数据.学习者的属性标签主要来自于用户注册时的信息(用户属性)、学习者的学习状态属性以及学习者系统操作行为统计属性(对上传、下载、浏览、评论等操作的统计)。

    资源的属性标签主要来自于资源提供者根据学科和关键字分类的标签以及资源使用者对资源的评价、标记等.根据研究性学习的主题、用户学习进度,系统可以将用户可能感兴趣,其他用户感兴趣或评分高、浏览次数多,相同领域的最优资源或相似领域的最佳资源推送给用户,系统根据学习者的学习主题,将平台中评价最高的相关资源、教师指定的资源和拓展的相关资源进行匹配,

  • ?

    数据交互平台:Data interactive platfo

    以彤

    展开

    导读:现在我们所使用和认知的平台如:天猫、淘宝、京东、p2p、中介、众筹等属于是信息交互。而媒体,视频,语音是数字交互。数据交互的基础是建立在价值链配置市场和工厂的产业链。大数据的作用:预测未来。小数据的作用:诊断需求。

    促成数据交互平台的条件及意义

    我们真正意义上的数据交互平台不光只是大数据,更重要的是如何激活大数据,让数据流动起来,让用户得到不同程度的数据交互,这样子才能实现预测、诊断等需求!那需要什么样的条件才能促进数据交互呢?参照(图1)

    数据交互平台

    通过我们对数据交互的多年研究,总结出一个庞大的体系理论,因为促使数据交互它必须要通过底层算法和大数据及各个定制属性的管理,才能形成真正意义上的数据交互!

    智能数据(Intelligence data)

    智能数据是通过“大量化”(Volume)、“多样化”(Variety)和“快速化”(Velocity)的采集,得到数据基础,然后通过智能方式的处理,让数据流动起来(活起来),激活庞大的数据库,让数据产生Value(价值)。

    智能设计(Intelligent design)

    智能设计是指应用先进的数据交互技术,采用一套算法体系,去模拟人类的思维活动。它的底层技术是智能计算(一切的结果都来自模型计算。单一技术的应用已经不具有前景,模型理论将会引领各行各业。商业模式进化成商业模型、利润模式进化成利润模型。技术应用进化成技术模型集成开发等等在金融、教育、工业、农业、国家政策广泛应用。模式不是被兼容就是主动去兼容)。

    智能计算(Intelligent Computing)

    智能计算是一种学习型的智能思考性程序,但是在数据交互平台里面,他是一套学习型的智能思考程序,是现代AI体系的重要组成部分,是帮助人类去处理各式问题的具有独立思考和学习能力的系统。

    消费诊断(Consumer diagnostics)

    消费诊断是结合人类行为基础理论、生物算法体系及量子学和能量的影响对消费行为进行诊断的一种方式。它可以通过智能关联的数据计算,得到解决方案(所有解决方案的前提都是先诊断)。

    数据营销(Data marketing)

    数据营销是通过采集智能设计、智能计算、智能数据的应用,抓取和记录用户的个性数据及生命信息,经过数据交互后,测算出或者是诊断出用户的需求及评估,形成用户的能量交互,再通过算法得出用户的私人属性,汇聚成定制产品和定制社交。目的是赋予用户更加个性化的体验,使 “ 一对一的用户私人属性交互” 成为可能。

    私人属性(Private property)

    私人属性是通过用户的个性特征和生命信息的是采集,应用智能计算,测算出用户的能量指数,而能量指数做为后期用户定制社交的基础。

    智能交互(Intelligentinteraction)

    智能交互的底层技术是基于可视计算和数据激活。它是通过智能数据交互模式,其中包括语音识别,图片识别,数据识别,生命信息识别等,得到用户反馈结果。

    定制社交(Customized Social contact)

    QQ、微信、陌陌等社交工具都是属于标签化社交,通过用户自身的内容标签进行用户之间的推荐和交互。定制社交的区别在于它不光是需要甄选出用户的标签外,还需要采集到用户的个性特征及生命信息,然后通过一系列的智能应用和算法,测算出用户所具备的能量指数,通过能量指数的交互匹配出相等能量指数的用户!技术实现是智能算法、数据交互等!

    数字化供应链(Digital Supply Chain)

    数字化供应链(DSC)Digital Supply Chain是全球化、智能化、柔性化生产的基础,在设计或对实物数字化、可视化。通过平台实现B2B或C2M的批量生产或是单件定制。数字化供应链是基于云端数字化大数据实现智能机器人的处理及应用。只有把物数字化后才可能实现全球的智能化生产。

    总结:DID是数据交互平台的实践者和倡导者。它为追求个性的用户提供情感交互的数据平台,更是供应链的重要承包商!它拥有国际上唯一可视化的独立元素数据库,用户只需数据交互,即可对数据库中海量的独立数据激活,最后对接工厂进行生产!

    以上文字摘自于刘科《数据交互平台》研究论文

  • ?

    前嗅:手把手教你数据采集

    甄新波

    展开

    ForeSpider 前嗅:手把手教你数据采集

    ForeSpider是一款非常好用的数据采集软件,因为属于专业性工具,除了帮助文档外很少有使用教程。所有有很多人在使用的过程中遇到问题难以解决,今天给大家介绍ForeSpider数据采集系统的使用教程,希望能对大家的工作有所帮助。

    教程的示例网站是大众点评,要得到50页内所有医院名称,该医院评论总数,医院总体星级,各项评分,医院评论的用户名,评论内容,评论时间,用户点评星级,获赞数量和回应数量。

    首先我们先新建一个频道,我给它命名为大众点评,然后在频道配置里输入我们想要爬取数据的网址,需要在频道配置处输入想要得到数据的网址,大众点评需要开启cookie,从右面可以开启,网站不同有的不需要,视情况而定。 现在默认模板(1)就是我们要的网站页面,鼠标放在医院标题处如图,从左下角能看到医院的网址链接。

    现在点一下右上角的采集预览,我们能得到整个页面的所有网页链接,下拉滚动条到这个位置就会发现跟上图相同格式的链接,这就是我们需要的所有医院的链接。

    我们用不到的需要过滤一下,可以通过地址过滤和标题过滤方法筛选。点击软件右上角模板抽取配置里面的链接抽取,里面有地址过滤和标题过滤两个选项,点击地址过滤,软件右下角如图:

    过滤规则选择包含,过滤串内输入想要得到的医院链接,后面这串数字我们用“\d”表示,用“\e”表示结束,例如https://dianping/shop/\d\e,这样就能采集网页内所有这种格式的网页链接。

    当我们想要采集的网页下面有翻页的链接,就必须配置翻页。除了在右上角默认模板处抽取我们想要的得到的医院链接外,还要再新建一个链接抽取,抽取页面翻页的地址。

    我们继续从采集预览处得到翻页的链接,过滤规则选择包含,通过观察发现几个链接的相同点,输入到过滤串里就能得到想要的翻页链接了。

    第一层级的模板建好了,下面我们随便点进一个医院主页内,复制链接建立下一层级模板。在默认模板(2)的示例地址内输入医院主页的链接。

    因为我们需要采集该医院所有用户评论,所以我们找到下面的“更多点评”,通过刚刚地址过滤的方法,过滤出更多点评的链接,并建立模板(3),示例地址输入刚刚过滤的得到的“更多点评”的网址。

    注:点击链接抽取,看左下角关联模板处,一定要关联到下一层级的模板,如果是翻页的链接抽取,要关联自身模板,否则会数据采集失败。这点一定要注意。

    这样模板的基本配置就完成了,下一步是建立表单,下图是我们的需求,红色字体我们能从模板二采集到,蓝色字体我们能从模板三采集到,所以我们需要建立两个表单。

    点击表单配置,新建一个表单,添加一个网页主键如图,一定要勾选索引字段,键值唯一,主键字段三个选项,取值类型选择网页主键点击确定。

    然后添加下一个字段如标题“title”

    取值类型选择“选区内全部文本”,变量类型选择“string”,选择合适的字符长度点击确定。依次建立所有字段。

    这是我建立的两个表单的所有字段,表单名称分别为“大众点评1”、“大众点评2”,建立好以后点击保存即可。点开模板配置,每一个模板对应相应的表单,右键模板二“添加数据抽取”,表单名称选择“大众点评1”。

    同样在模板三处再添加另外一个数据抽取表单,添加好后如下图所示:

    单击“title”,然后按住ctrl键同时鼠标左键点击对应标题,内容过多的话按住shift可以调整内容大小,选好后点击保存。

    全部选取完后点击左上角的文件,然后全部保存。

    下一步点击数据,连接数据库,然后再次点击数据,选择数据表,选择刚刚新建两个数据表的字段后创建表,创建好后勾选并确定,就可以进行数据采集了(如果表单有问题需要更改,改好后需要重新创建表单),速度慢可以点击设置里面的线程设置,设置多线程。

    这只是一个简单的教程,软件还有很多强大的功能,祝大家使用愉快!

  • ?

    线下大数据智能采集投放平台

    牧小霜

    展开

    智能硬件结合大数据优势,全方位挖掘用户线下、线上行为,精准定义目标客群特征、消费偏好、地域分布,为零售客户提供选址招商、运营管理、客群洞察、推广营销、实现 营销的“点对点”高效精准的传播,是新一代人工智能思维下的营销新武器。

    店内优化

    客流实时监测

    顾客质量和转化率

    顾客运动轨迹热点动图

    店内商品试用、转化率

    新客招募

    厘米级精准定位新客,信息采集分析

    对接各个广告平台,精准投放

    广告效果评估

    提高活动效果

    展示真实人流,轨迹动图,客观评估活动效果

    场景式营销,广告实时送达

    用户画像

    了解品牌受众,帮助品牌定位

    进店顾客人群画像采集

    人员、物品管理

    优化员工管理系统,监测到岗及工作时间

    贵重物品定位,防盗防损

    优化库存管理

    探针

    集探针,iBeacon,商品触碰探测为一体

    wifi与gprs两种上报信息方式

    搭载gps模块,采集地理位置信息

    出色的定位技术

    手机号与mac地址绑定方案

    平台化运作,提供丰富的上层接口给集成商

    解决方案

    购买地址:https://detail.1688/offer/551150997804.html?spm=b26110380.sw1688.mof001.1.b4WnET

    或阿里巴巴搜索:58数云、潜客宝

  • ?

    携程用户数据采集与分析系统

    成危

    展开

    一、携程实时用户数据采集系统设计实践

    随着移动互联网的兴起,特别是近年来,智能手机、pad等移动设备凭借便捷、高效的特点风靡全球,同时各类APP的快速发展进一步降低了移动互联网的接入门槛,越来越多的网民开始从传统PC转移至移动终端上。但传统的基于PC网站和访问日志的用户数据采集系统已经无法满足实时分析用户行为、实时统计流量属性和基于位置服务(LBS)等方面的需求。

    我们针对传统用户数据采集系统在实时性、吞吐量、终端覆盖率等方面的不足,分析了在移动互联网流量剧增的背景下,用户数据采集系统的需求,研究在多种访问终端和多种网络类型的场景下,用户数据实时、高效采集的方法,并在此基础上设计和实现实时、有序和健壮的用户数据采集系统。此系统基于Java NIO网络通信框架(Netty)和分布式消息队列(Kafka)存储框架实现,其具有实时性、高吞吐、通用性好等优点。

    1、技术选型和设计方案:

    一个典型的数据采集分析统计平台,对数据的处理,主要由如下五个步骤组成:

    图1、数据平台处理流程

    其中,数据采集步骤是最核心的问题,数据采集是否丰富、准确和实时,都直接影响整个数据分析平台的应用的效果。本论文关注的步骤主要在数据采集、数据传输和数据建模存储这三部分。

    为满足数据采集服务实时、高效性、高吞吐量和安全性等方面的要求,同时能借鉴互联网大数据行业一些优秀开源的解决方案,所以整个系统都将基于Java技术栈进行设计和实现。整个数据采集分析平台系统架构如下图所示:

    图2(数据采集分析平台系统架构)

    其中整个平台系统主要包括以上五部分:客户端数据采集SDK以Http(s)/Tcp/Udp协议根据不同的网络环境按一定策略将数据发送到Mechanic(UBT-Collector)服务器。服务器对采集的数据进行一系列处理之后将数据异步写入Hermes(Kafka)分布式消息队列系统。为了关联业务服务端用户业务操作埋点、日志,业务服务器需要获取由客户端SDK统一生成的用户标识(C-GUID),然后业务服务器将用户业务操作埋点、日志信息以异步方式写入Hermes(Kafka)队列。最后数据消费分析平台,都从Hermes(Kafka)中消费采集数据,进行数据实时或者离线分析。其中Mechanic(UBT-Collector)系统还包括对采集数据和自身系统的监控,这些监控信息先写入Hbase集群,然后通过Dashboard界面进行实时监控。

    (1)基于NIO的Netty网络框架方案

    要满足前面提到的高吞吐、高并发和多协议支持等方面的要求。我们调研了几种开源异步IO网络服务组件(如Netty、MINI、xSocket),用它们和NginxWeb服务器进行了性能对比,决定采用Netty作为采集服务网络组件。下面对它进行一些概要介绍:Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。

    图3(Netty框架内部组件逻辑结构)

    Netty的优点有:

    a、功能丰富,内置了多种数据编解码功能、支持多种网络协议。

    b、高性能,通过与其它主流NIO网络框架对比,它的综合性能最佳。

    c、可扩展性好,可通过它提供的ChannelHandler组件对网络通信方面进行灵活扩展。

    d、易用性,API使用简单。

    e、经过了许多商业应用的考验,在互联网、网络游戏、大数据、电信软件等众多行业得到成功商用。

    Netty采用了典型的三层网络架构进行设计,逻辑架构图如下:

    图4(Netty三层网络逻辑架构)

    第一层:Reactor通信调度层。该层的主要职责就是监听网络的连接和读写操作,负责将网络层的数据读取到内存缓冲区中,然后触发各种网络事件,例如连接创建、连接激活、读事件、写事件等,将这些事件触发到Pipeline中,再由Pipeline充当的职责链来进行后续的处理。

    第二层:职责链Pipeline层。负责事件在职责链中有序的向前(后)传播,同时负责动态的编排职责链。Pipeline可以选择监听和处理自己关心的事件。

    第三层:业务逻辑处理层,一般可分为两类:a. 纯粹的业务逻辑处理,例如日志、订单处理。b. 应用层协议管理,例如HTTP(S)协议、FTP协议等。

    我们都知道影响网络服务通信性能的主要因素有:网络I/O模型、线程(进程)调度模型和数据序列化方式。

    在网络I/O模型方面,Netty采用基于非阻塞I/O的实现,底层依赖的是JDKNIO框架的Selector。

    在线程调度模型方面,Netty采用Reactor线程模型。常用的Reactor线程模型有三种,分别是:

    a、Reactor单线程模型:Reactor单线程模型,指的是所有的I/O操作都在同一个NIO线程上面完成。对于一些小容量应用场景,可以使用单线程模型。

    b、Reactor多线程模型:Rector多线程模型与单线程模型最大的区别就是有一组NIO线程处理I/O操作。主要用于高并发、大业务量场景。

    c、主从Reactor多线程模型:主从Reactor线程模型的特点是服务端用于接收客户端连接的不再是一个单独的NIO线程,而是一个独立的NIO线程池。利用主从NIO线程模型,可以解决一个服务端监听线程无法有效处理所有客户端连接的性能不足问题。Netty线程模型并非固定不变的,它可以支持三种Reactor线程模型。

    在数据序列化方面,影响序列化性能的主要因素有:

    a、序列化后的码流大小(网络带宽占用)。

    b、序列化和反序列化操作的性能(CPU资源占用)。

    c、并发调用时的性能表现:稳定性、线性增长等。

    Netty默认提供了对GoogleProtobuf二进制序列化框架的支持,但通过扩展Netty的编解码接口,可以实现其它的高性能序列化框架,例如Avro、Thrift的压缩二进制编解码框架。

    通过对Netty网络框架的分析研究以及对比测试(见后面的可行性分析测试报告)可判断,基于Netty的数据采集方案能解决高数据吞吐量和数据实时收集的难点。

    》》点击阅读全文

  • ?

    精准数据采集平台+高效营销工具降低人工成本,全面提升销售业绩

    流浪

    展开

    一台电脑控制50个微信,自动加好友,发朋友圈去做营销,让你的效率及业绩无限倍增。

    一键掌控,批量管理维护;自动化营销,营销效率更快:一台电脑,控制50个微信,大范围营销,维护现有用户,开发更多客户:省人力资源,省人工成本:一台电脑控制50个微信,相当于上百个业务员在自动工作,降低人工成本,提高管理效率。

    量变,产生质变,假设,一个微信号五千个好友,一百个微信,就是五十万个客户群体,一个人,一天让你获得一元的利润,一天就是五十万,如果成交率在1%,就有五万的成交量,如果成交率在千分之一,每天就有五千的成交量,如果你的营销方案实在烂透了,成交率只有万分之一,每天也有五百的订单,说到这里你明白了吗?

    铁拐李精控:

    主要应用行业:

    金融行业应用,

    电话管控日益严格,客户拒接率越来越高,成本上升!

    铁拐李金控提供精准客户数据解决方案,提供高效营销工具,为您提供完美的营销解决方案。

    百度竞价行不通,传单杂志效率低,报纸受众少,铁拐李精控系统是您完美的替代解决方案!

  • ?

    2018年最值得推荐的6款大数据采集工具

    郁血茗

    展开

    数据肯定是无价的。但分析数据并非易事,因为结果越准确,成本就越高。鉴于数据急剧增长,需要一个过程来提供有意义的信息,最终变成实用的洞察力。

    数据挖掘是指这个过程:在庞大数据集当中发现模式,将它转换成有效的信息。该技术利用特定的算法、统计分析、人工智能和数据库系统,从庞大数据集中提取信息,并转换成易于理解的形式。本文介绍了广泛用于大数据行业的6种综合数据挖掘工具。

    1. Rapid Miner

    Rapid Miner是一个数据科学软件平台,为数据准备、机器学习、深度学习、文本挖掘和预测分析提供一种集成环境。它是领先的数据挖掘开源系统之一。

    该程序完全用Java编程语言编写。该程序提供了一个选项,以便用户试用大量可任意嵌套的操作符,这些操作符在XML文件中有详细说明,可由Rapid Miner的图形用户界面来构建。

    2. Oracle Data Mining

    它是Oracle高级分析数据库的代表。市场领先的公司用它最大限度地发掘数据的潜力,做出准确的预测。该系统配合强大的数据算法,锁定最佳客户。

    此外,它可识别异常情况和交叉销售机会,让用户能够根据需要运用不同的预测模型。此外,它以所需的方式定制客户画像。

    3. IBM SPSS Modeler

    说到大规模项目,IBM SPSS Modeler最适合。在这个建模器中,文本分析及其最先进的可视化界面极具价值。它有助于生成数据挖掘算法,基本上不需要编程。

    它可广泛用于异常检测、贝叶斯网络、CARMA、Cox回归以及使用多层感知器和反向传播学习的基本神经网络。

    4. KNIME

    Konstanz Information Miner是一个开源数据分析平台。你可以迅速在其中部署、扩展和熟悉数据。在商业智能界,KNIME号称是有助于为毫无经验的用户提供预测智能的平台。

    此外,数据驱动的创新系统有助于发掘数据潜力。此外,它包括数千个模块和随时可用的示例以及一大批集成的工具和算法。

    5. Python

    Python是一种免费的开源语言,因易用性常常与R相提并论。与R不同,Python学起来往往很容易上手,易于使用。许多用户发现可以在几分钟内开始构建数据,并进行极其复杂的亲和度分析。

    只要你熟悉变量、数据类型、函数、条件语句和循环等基本编程概念,最常见的业务用例数据可视化就很简单。

    6.火车采集器

    火车采集器由合肥乐维信息技术有限公司开发,是一款专业的网络数据采集/信息挖掘处理软件,通过灵活的配置,可以很轻松迅速地从网页上抓取结构化的文本、图片、文件等资源信息,可编辑筛选处理后选择发布到网站后台,各类文件或其他数据库系统中。

  • ?

    好程序员:大数据采集与处理

    道格拉斯

    展开

    |本文由好程序员特训营编辑

    |作者:好程序员

    1. 大数据处理之一:采集

    大数据的采集是指利用多个数据库来接收发自客户端(Web、App或者传感器形式等)的 数据,并且用户可以通过这些数据库来进行简单的查询和处理工作。比如,电商会使用传统的关系型数据库MySQL和Oracle等来存储每一笔事务数据,除 此之外,Redis和MongoDB这样的NoSQL数据库也常用于数据的采集。

    在大数据的采集过程中,其主要特点和挑战是并发数高,因为同时有可能会有成千上万的用户来进行访问和操作,比如火车票售票网站和淘宝,它们并发的访问量在峰值时达到上百万,所以需要在采集端部署大量数据库才能支撑。并且如何在这些数据库之间进行负载均衡和分片的确是需要深入的思考和设计。

    2. 大数据处理之二:导入/预处理

    虽然采集端本身会有很多数据库,但是如果要对这些海量数据进行有效的分析,还是应该将这些来自前端的数据导入到一个集中的大型分布式数据库,或者分布式存储集群,并且可以在导入基础上做一些简单的清洗和预处理工作。也有一些用户会在导入时使用来自Twitter的Storm来对数据进行流式计算,来满足部分业务的实时计算需求。

    导入与预处理过程的特点和挑战主要是导入的数据量大,每秒钟的导入量经常会达到百兆,甚至千兆级别。

    3. 大数据处理之三:统计/分析

    统计与分析主要利用分布式数据库,或者分布式计算集群来对存储于其内的海量数据进行普通的分析和分类汇总等,以满足大多数常见的分析需求,在这方面,一些实时性需求会用到EMC的GreenPlum、Oracle的Exadata,以及基于 MySQL的列式存储Infobright等,而一些批处理,或者基于半结构化数据的需求可以使用Hadoop。

    统计与分析这部分的主要特点和挑战是分析涉及的数据量大,其对系统资源,特别是I/O会有极大的占用。

    4. 大数据处理之四:挖掘

    与前面统计和分析过程不同的是,数据挖掘一般没有什么预先设定好的主题,主要是在现有数据上面进行基于各种算法的计算,从而起到预测(Predict)的效果,从而实现一些高级别数据分析的需求。比较典型算法有用于聚类的Kmeans、用于 统计学习的SVM和用于分类的NaiveBayes,主要使用的工具有Hadoop的Mahout等。该过程的特点和挑战主要是用于挖掘的算法很复杂,并 且计算涉及的数据量和计算量都很大,常用数据挖掘算法都以单线程为主。

    欢迎关注【“好程序员”百家号】高端IT教育--从平凡到卓越 为梦想而拼搏

  • ?

    六大主流大数据采集平台架构分析

    傲霜

    展开

    随着大数据越来越被重视,数据采集的挑战变的尤为突出。今天为大家介绍几款数据采集平台:

    Apache Flume Fluentd Logstash Chukwa Scribe Splunk Forwarder

    大数据平台与数据采集

    任何完整的大数据平台,一般包括以下的几个过程:

    数据采集–>数据存储–>数据处理–>数据展现(可视化,报表和监控)

    其中,数据采集是所有数据系统必不可少的,随着大数据越来越被重视,数据采集的挑战也变的尤为突出。这其中包括:

    我们今天就来看看当前可用的六款数据采集的产品,重点关注它们是如何做到高可靠,高性能和高扩展。

    1、Apache Flume

    Flume 是Apache旗下的一款开源、高可靠、高扩展、容易管理、支持客户扩展的数据采集系统。 Flume使用JRuby来构建,所以依赖Java运行环境。

    Flume最初是由Cloudera的工程师设计用于合并日志数据的系统,后来逐渐发展用于处理流数据事件。

    Flume设计成一个分布式的管道架构,可以看作在数据源和目的地之间有一个Agent的网络,支持数据路由。

    每一个agent都由Source,Channel和Sink组成。

    Source

    Source负责接收输入数据,并将数据写入管道。Flume的Source支持HTTP,JMS,RPC,NetCat,Exec,Spooling Directory。其中Spooling支持监视一个目录或者文件,解析其中新生成的事件。

    Channel

    Channel 存储,缓存从source到Sink的中间数据。可使用不同的配置来做Channel,例如内存,文件,JDBC等。使用内存性能高但不持久,有可能丢数据。使用文件更可靠,但性能不如内存。

    Sink

    Sink负责从管道中读出数据并发给下一个Agent或者最终的目的地。Sink支持的不同目的地种类包括:HDFS,HBASE,Solr,ElasticSearch,File,Logger或者其它的Flume Agent。

    Flume在source和sink端都使用了transaction机制保证在数据传输中没有数据丢失。

    Source上的数据可以复制到不同的通道上。每一个Channel也可以连接不同数量的Sink。这样连接不同配置的Agent就可以组成一个复杂的数据收集网络。通过对agent的配置,可以组成一个路由复杂的数据传输网络。

    配置如上图所示的agent结构,Flume支持设置sink的Failover和Load Balance,这样就可以保证即使有一个agent失效的情况下,整个系统仍能正常收集数据。

    Flume中传输的内容定义为事件(Event),事件由Headers(包含元数据,Meta Data)和Payload组成。

    Flume提供SDK,可以支持用户定制开发:

    Flume客户端负责在事件产生的源头把事件发送给Flume的Agent。客户端通常和产生数据源的应用在同一个进程空间。常见的Flume 客户端有Avro,log4J,syslog和HTTP Post。另外ExecSource支持指定一个本地进程的输出作为Flume的输入。当然很有可能,以上的这些客户端都不能满足需求,用户可以定制的客户端,和已有的FLume的Source进行通信,或者定制实现一种新的Source类型。

    同时,用户可以使用Flume的SDK定制Source和Sink。似乎不支持定制的Channel。

    2、Fluentd

    Fluentd是另一个开源的数据收集框架。Fluentd使用C/Ruby开发,使用JSON文件来统一日志数据。它的可插拔架构,支持各种不同种类和格式的数据源和数据输出。最后它也同时提供了高可靠和很好的扩展性。Treasure Data, Inc 对该产品提供支持和维护。

    Fluentd的部署和Flume非常相似:

    Fluentd的架构设计和Flume如出一辙:

    Fluentd的Input/Buffer/Output非常类似于Flume的Source/Channel/Sink。

    Input

    Input负责接收数据或者主动抓取数据。支持syslog,http,file tail等。

    Buffer

    Buffer负责数据获取的性能和可靠性,也有文件或内存等不同类型的Buffer可以配置。

    Output

    Output负责输出数据到目的地例如文件,AWS S3或者其它的Fluentd。

    Fluentd的配置非常方便,如下图:

    Fluentd的技术栈如下图:

    FLuentd和其插件都是由Ruby开发,MessgaePack提供了JSON的序列化和异步的并行通信RPC机制。

    Cool.io是基于libev的事件驱动框架。

    FLuentd的扩展性非常好,客户可以自己定制(Ruby)Input/Buffer/Output。

    Fluentd从各方面看都很像Flume,区别是使用Ruby开发,Footprint会小一些,但是也带来了跨平台的问题,并不能支持Windows平台。另外采用JSON统一数据/日志格式是它的另一个特点。相对去Flumed,配置也相对简单一些。

    3、Logstash

    Logstash是著名的开源数据栈ELK (ElasticSearch, Logstash, Kibana)中的那个L。

    Logstash用JRuby开发,所有运行时依赖JVM。

    Logstash的部署架构如下图,当然这只是一种部署的选项。

    一个典型的Logstash的配置如下,包括了Input,filter的Output的设置。

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

    4、Chukwa

    官网:https://chukwa.apache.org/

    Apache Chukwa是apache旗下另一个开源的数据收集平台,它远没有其他几个有名。Chukwa基于Hadoop的HDFS和Map Reduce来构建(显而易见,他用Java来实现),提供扩展性和可靠性。Chukwa同时提供对数据的展示,分析和监视。很奇怪的是它的上一次 github的更新事7年前。可见该项目应该已经不活跃了。

    Chukwa的部署架构如下:

    Chukwa的主要单元有:Agent,Collector,DataSink,ArchiveBuilder,Demux等等,看上去相当复杂。由于该项目已经不活跃,我们就不细看了。

    5、Scribe

    代码托管:https://github/facebookarchive/scribe

    Scribe是Facebook开发的数据(日志)收集系统。已经多年不维护,同样的,就不多说了。

    6、Splunk Forwarder

    以上的所有系统都是开源的。在商业化的大数据平台产品中,Splunk提供完整的数据采金,数据存储,数据分析和处理,以及数据展现的能力。

    Splunk是一个分布式的机器数据平台,主要有三个角色:

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

    Indexer负责数据的存储和索引 Forwarder,负责数据的收集,清洗,变形,并发送给Indexer

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

    这里要注意的是,Search Head和Indexer都支持Cluster的配置,也就是高可用,高扩展的,但是Splunk现在还没有针对Farwarder的Cluster的功能。也就是说如果有一台Farwarder的机器出了故障,数据收集也会随之中断,并不能把正在运行的数据采集任务Failover到其它的 Farwarder上。

    总结

    我们简单讨论了几种流行的数据收集平台,它们大都提供高可靠和高扩展的数据收集。大多平台都抽象出了输入,输出和中间的缓冲的架构。利用分布式的网络连接,大多数平台都能实现一定程度的扩展性和高可靠性。

    其中Flume,Fluentd是两个被使用较多的产品。如果你用ElasticSearch,Logstash也许是首选,因为ELK栈提供了很好的集成。Chukwa和Scribe由于项目的不活跃,不推荐使用。

    Splunk作为一个优秀的商业产品,它的数据采集还存在一定的限制,相信Splunk很快会开发出更好的数据收集的解决方案。

  • ?

    福利,数据采集工具和一些云平台推荐

    Skuru

    展开

    目前有很多数据采集云平台,如百度统计,腾讯统计、乐驰云采集等等,还有一些平台也非常不错:

    一. 友盟+

    支持移动端和web端数据采集,个性化场景数据定制采集方案。官网给的一些demo可以参考来设计大数据的分析展现,例如:

    友盟的:

    百度的:

    值得借鉴~

    二. 乐驰云采集

    以高性能分布式采集、存储为核心,建立分工明确的功能模块进行高度协作,融合打码、分词、代理、排重等实用性服务,帮助用户以最低成本、最少人力、最高效率完成大数据应用开发,从而满足当下广大中小企业对“实时、高难、海量”级大数据业务场景的根本需求。

    http://lewell/service.html#tabcon_4

    值得一看

    三. 火车采集器

    火车采集器,一款专业的互联网数据抓取、处理、分析,挖掘软件,可以灵活迅速地抓取网页上散乱分布的数据信息,并通过一系列的分析处理,准确挖掘出所需数据。火车采集器历经十二年的升级更新,积累了大量用户和良好口碑,是目前最受欢迎的网页数据采集软件。

    对于网站采集数据的主流实现方式是通过javascript脚本引入,记录页面动作与变化,搜集数据后作为参数,通过gif图片(gif图片格式请求可以解决跨域问题)请求上报。

    比如一些大型网站,可以看到他们的数据采集方式:如淘宝,百度,京东,聚划算等

    个人设计的web采集数据方案:

    lg.js脚本引入页面中通过gif图片请求到后端服务器服务器记录请求参数到日志文件日志文件实时抓取到消息队列实时计算系统消费队列消息,完成分析整理分析结果入ES,kibana二次开发展示ES历史数据入Hadoop

数据采集处理平台

所有视频需要登录后,才能观看

请先登录您的帐号,即可完整播放,如果您尚未注册帐号,请先点击注册。

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP