- ?
在数据采集器中用TensorFlow进行实时机器学习
Ella
展开
最新DataOps平台的真正价值,只有在业务用户和应用程序能够从各种数据源来访问原始数据和聚合数据,并且及时地产生数据驱动的认识时,才能够实现。利用机器学习(Machine Learning),分析师和数据科学家可以利用历史数据,以及实时地使用类似TensorFlow(TF)这样的技术,以做出更好的数据驱动业务的线下决策。
在本文中,你将学习如何利用TensorFlow模型在StreamSets Data Collector3.5.0和StreamSets Data Collector Edge中最新发布的TensorFlow Evaluator*进行预测和分类。
在深入讨论细节之前,我们来看一些基本概念。
机器学习(Machine Learning)
亚瑟·塞缪尔把它描述为:“不需要明确地编写程序而使计算机有能力学习的研究领域。”随着机器学习领域的最新发展,计算机现在有能力做出预测,甚至比人类做的还要好,并且感觉可以解决任何问题。让我们先回顾一下机器学习都解决了什么样的问题吧。
通常来说,机器学习被分为两大类:
监督学习(Supervised Learning)
“监督学习是学习一个函数的机器学习任务,该函数基于输入-输出的实例,将输入映射到输出。”—维基百科(Wikipedia)。
它涉及到构建一个精准的模型,当历史数据被标记为一些结果的时候,模型就可以预测出结果了。
用监督学习解决的常见业务问题:
二元分类(学习预测一个分类值)- 顾客会购买一个特定产品吗?- 癌症是恶性的还是良性的?多级分类(学习预测一个分类值)- 给定的一段文本是否带有病毒、恐吓或淫秽内容?- 这是山鸢尾、蓝旗鸢尾还是北美鸢尾的物种?回归(学习预测一个连续值)- 一个代售房子的预测价格是多少?- 明天旧金山的气温是多少?
无监督学习
无监督学习允许我们在知道很少,或是完全不知道输出应该是什么样子的情况下处理问题。它涉及在之前数据上的标签是不可用的情况下创建模型。在这类的问题中,通过对基于数据中变量之间的关系进行数据聚类来导出结构。
无监督学习的两种常见方法是K-均值聚类(K-means clustering)和DBSCAN。
注意:Data Collector和Data Collector Edge中的TensorFlow Evaluator目前仅支持监督学习模型。
神经网络与深度学习
神经网络是机器学习算法的一种,可以学习和使用受人脑结构启发而来的计算模型。与其它机器学习算法,如决策树、逻辑回归等相比,神经网络具有较高的准确性。
Andrew Ng在传统人工神经网络的背景下对深度学习进行了描述。在题为“深度学习、自我学习与无监督特征学习”的演讲中,他把深度学习的思想描述为:
“利用了大脑结构的模仿, 希望:- 让学习算法更好地、更容易地使用;- 在机器学习和人工智能领域取得革命性的进展;我相信这是我们朝着真正的人工智能前进的最好办法。”
常见的神经网络和深度学习应用包括:
计算机视觉/图像识别/目标检测语言识别/自然语言处理(NLP)推荐系统(产品、婚介等)异常检测(网络安全等)
TensorFlow
TensorFlow是为深度神经网络设计的开源机器学习框架,由Google Brain Team开发的。TensorFlow支持在Windows和Mac操作系统上的可伸缩和便携式的训练,包括CPU、GPU和TPU。迄今为止,它是GitHub上最流行的和最活跃的机器学习项目。
Data Collector中的TensorFlow
随着TensorFlow Evaluator的引入,你现在能够创建管道(pipelines),以获取数据或特征,并在一个可控的环境中生成预测结果或分类,而不必发起对作为Web服务而提供和公布的机器学习模型的HTTP或REST API的调用。例如,Data Collector管道现在可以实时地检测欺诈交易或在文本上执行自然语言处理,因为数据在被存储到最终目的地之前,为了进一步的处理或做决策,正在经过各个阶段。
另外,使用Data Collector Edge,你可以在Raspberry Pi和其它运行在所支持的平台上的设备上运行已经启用了的TensorFlow机器学习管道。例如,在高风险地区检测洪水等自然灾害发生的概率,以防止对人们财产的破坏。
乳腺癌分类
让我们考虑将乳腺癌肿瘤分类成恶性还是良性的例子。乳腺癌是一个经典的数据集,可以作为scikit-learn的一部分。要了解如何在Python中使用该数据集训练和导出一个简单的TensorFlow模型,请查看我在GitHub上的代码。正如你将要看到的那样,模型创建和训练被保持在最小范围,并且非常简单,只有几个隐藏层。最需要注意的重要方面是如何使用TensorFlow SavedModelBuilder*来导出和保存模型。
*注意:要在Data Collector或Data Collector Edge中使用TensorFlow模型,首先应该在你选择支持的开发语言里,如Python,和交互式环境中,如Jupiter Notebook,使用TensorFlow的SavedModelBuilder导出和保存模型。
一旦使用TensorFlow的SavedModelBuilder训练并导出了模型,那么在数据流管道中使用它进行预测或分类就非常简单了 — 只要模型保存在Data Collector或Data Collector Edge可访问的位置上即可。
管道概述
在深入了解细节之前,可以看下管道是什么样的:
管道细节
目录源:- 这将从.csv文件中加载乳腺癌的记录数据(注意:这个输入数据源可以非常简单地替换为其它的来源,包括Kafka、AWS S3、MySQL等等);字段转换器:- 这个处理器将转换供模型所使用的所有输入的乳腺癌记录特征数据,从String类型转换到Float类型(mean_radius,mean_texture,mean_perimeter,mean_area,mean_smoothness,mean_compactness,mean_concavity,mean_concave_points,mean_symmetry,mean_fractal_dimension,radius_error,texture_error,perimeter_error,area_error,smoothness_error,compactness_error,concavity_error,concave_points_error,symmetry_error,fractal_dimension_error,worst_radius,worst_texture,worst_perimeter,worst_area,worst_smoothness,worst_compactness,worst_concavity,worst_concave_points,worst_symmetry,worst_fractal_dimension) ;TensorFlow Evaluator*:- 模型的保存路径:指定要使用的预训练的TensorFlow模型的位置;- 模型标签:设置为“serve”,因为元图(在我们导出的模型中)要用于服务中。有关详细信息,请参见tag_constants.py和相关的TensorFlow API documentation;- 输入配置:指定在训练和导出模型期间配置的输入张量信息(请见Train model and save/export it using TensorFlow SavedModelBuilder部分);- 输出配置:指定在训练和导出模型期间配置的输出张量信息(请见Train model and save/export it using TensorFlow SavedModelBuilder部分);- 输出字段:我们想保存分类值的输出记录字段;Expression Evaluator:-该处理器评估模型输出或分类值为0或1(存储在输出的字段TF_Model_Classification之中) ,并用Benign或Malignantrespectively这两个值创建一个新的记录字段“Condition”;Stream Selector:- 该处理器评估癌症状况(良性或恶性)并发送记录到各自的Kafka生产者;Kafka Producers:- 输入记录以及模型的输出或者分类值被有条件地发送给两个Kafka生产者以获得进一步地处理和分析;*TensorFlow Evaluator配置
注意:一旦TensorFlow Evaluator产生了模型输出结果,本实例中采用的管道阶段是可选的,并且可以根据用例的需要与其它处理器和目标进行互换。
管道执行
在预览管道上,乳腺癌数据记录的输入通过了上面所述的数据流管道过程,包括服务于我们的TensorFlow模型。发送给Kafka生产者的最终输出记录数据(如上所示)包括用于分类的模型所使用的乳腺癌特征,在用户定义的字段TF_Model_Classification中模型输出值为0或1,以及由Expression Evaluator创建的Condition字段中表示相应的癌症状况是良性或恶性。
总结
本文说明了在Data Collector 3.5.0中使用最新发布的TensorFlow Evaluator。一般来说,这个评估器将允许你提供预训练的TensorFlow模型,用于生成预测结果和分类结果,而无需编写任何自己的代码
- ?
汇众泰普(北京)科技有限公司-整车道路数据采集系统
飞雪
展开
xPro_Therm32
32通道同步采样,热电偶转CAN系统
extending CAN-Logging Systems with 32 Thermocouple Inputs
CAN记录系统32通道热电偶扩展模块
xPro_Analog32 is a signal conditioning unit which extends any CAN logger with additional 32 Thermoelemente Typ K inputs.
xPro_Analog32是一款信号调理单元,可以接入任何CAN记录设备,32个K型热电偶输入。
Input Range Thermocouples热电偶输入范围
The input range for Type-K thermocouples is a wide -200 C to 1350 c. Each channel is sampled in paralle with 7 Hz enough even for dynamically changing temperatures.
K型热电偶的输入范围是 -200℃to 1350 ℃,通道在7Hz的采样率下同步采集温度的变化。
By the use of 24-Bits-Technology xPro_Therm32 does not need any pre-amplifiers which usually introduce a lot of drift and noise. Therfore xPro_Therm32 outputs a very stable signal with a high resolution, which provides information down to 0.01 degrees.
xPro_Therm32使用24位技术,无需预放大器,避免带来大的漂移和噪声。因此xPro_Therm32输出高分辨率的稳定的信号,可以带来0.01度的高分辨率。
xPro_Therm32 has been designed with using the latest technology. Each channel does have its own power supply and also channels are galvanically separeted.
xPro_Therm32设计时采用最新的技术,每个通道单独供电,通道间光隔离。
Each inpidual channel is equipped with a local cold junction compensation, which results in an excellent overall precision.
每个通道配有本地冷端补偿,带来完美的精度。
Power Supply供电
xPro_Therm32 comes with a wide range power supply of 10 … 30 VDC.
xPro_Therm32供电范围为: 10 … 30 VDC。
Vehicle Ground and instrument ground are consequently galvanically isolated, thus reliably avoiding ground loops.
汽车地和仪器地是光隔离的,避免地线回路。
xPro_Therm32 does have an electronic protection against wrong polarity of the supply.
xPro_Therm32 带有供电极性保护,防止极性反接损坏设备。
Status-LEDs and internal CAN-Hub
内置状态LED灯显示和CAN路由
Each input channel of xPro_Therm32 is equipped with a separate multi-colour status LED. These LEDs signal if a channel has been activated for acquisition and if the signal is within the predefined range.
xPro_Therm32每个通道配有不同的多个颜色的LED灯,假如通道激活,信号在其设置范围内,LED可以指示其状态。
By using the internal CAN-Hub ofxPro_Therm32 several units can be chained without the need to attach an external router.
xPro_Therm32的CAN路由功能可以将多个设备串联在一起食用,无需额外的路由设备。
- ?
携程用户数据采集与分析系统
慕剑心
展开
一、携程实时用户数据采集系统设计实践
随着移动互联网的兴起,特别是近年来,智能手机、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的数据采集方案能解决高数据吞吐量和数据实时收集的难点。
》》点击阅读全文
- ?
“最牛社保职工”发明采集系统 数据采集3分钟搞定
斯特兰福德
展开
“最牛社保职工”发明采集系统
社保卡数据采集,3分钟搞定 投用一年为安顺市民节约160万元
市民在操作数据采集系统。
“没想到这么方便,几分钟就能办好!”9月12日下午,安顺市社保局办事大厅内,市民王蕾站在社保卡制卡数据采集机前,刷身份证、输入电话号码、根据提示拍照,简单几个步骤,不到3分钟,社保卡信息已采集完毕。
从“便民”出发萌生新创意
这个让市民“少跑路”的信息采集“神器”,正是安顺市社会保险事业局网络管理科科长龙元鑫的新发明。
据了解,以往参保人申请制作社会保障卡,需自费到指定的商业相馆拍照,再到社保经办机构服务窗口排队进行数据采集,如果相片不规范,还得返回相馆重拍,整个过程至少半天才能完成。
从事社保工作15年来,看到参保人长时间排队等待,来回折腾于金融部门——社保机构——工作单位之间,2013年,计算机软件专业出身的龙元鑫萌生了一个想法:自己设计一个集信息采集和拍照于一体的系统!让群众办理业务少掏钱、少跑路、少耗时。
说做就做,于是,龙元鑫开始了一场漫长的创造之旅。
忍受3年的枯燥坚持研发
构思、画图、设计控制板,自掏腰包购买相机、升降机、机柜,绘制电路图、制作电路板、编写程序控制硬件……而这些工作,龙元鑫都只能利用业余时间来完成。
“家里客厅、卧室到处都是我要用的零件。”龙元鑫笑着说,“女儿也总是被我拉过来当模特试验拍照效果,后来一听到爸爸叫拍照就要躲”。并且,长期伏案导致才40岁出头的他犯了颈椎病,也正因为如此,家人免不了有些抱怨。
时间一天天过去了,作品还总是有需要改进的地方,对于这个过程,龙元鑫用了两个字来总结——枯燥。远离了原来一起打羽毛球的朋友,没时间陪孩子,龙元鑫偶尔也想过放弃,第二天却又再次全身心地投入其中。
投用一年为市民节约160万
功夫不负有心人,2016年初,龙元鑫研制的“社保卡制卡数据采集系统”第一代开始投用,参保人只需3分钟就能完成信息录入。
仅投用的第一年,该系统就采集了制卡人数据8万余条,将全市291.8万户籍人口持卡率提高了2.7个百分点。如按每拍摄一张制卡相片花费20元计算,仅拍照费用一项就为制卡人群节约了160万余元。
“目前安顺户籍人口尚有183.4万人未制作社保卡,而这类人群大都居住在农村。”龙元鑫说,他接着对系统进行升级改造,2017年,体积缩小一半,重量约50斤,功能更完善的第二代、第三代便携“社保卡制卡数据采集系统”已覆盖全市98个乡镇,还有30多台可以随时带进高校、农村进行参保数据采集。
初步预算,这一系统可为百姓节省3000多万元,将有效助力扩大社会保障。(实习生甘良莹 记者张光平 来源:贵州都市报)
- ?
NCTech推出虚拟数据采集系统iSTAR Pulsar
辗转
展开
位于爱丁堡的英国公司NCTech正在采用VR/AR并进行扩展,并提供360度真实成像系统来简化图像文档的工作流程,甚至可以将其用于远程设置。他们在这一领域的最新成果是推出全新的虚拟数据采集系统iSTAR Pulsar,以便在移动中捕获数据。
iSTAR Pulsar设计用于车辆,无人机或步行时捕获360度数据。该系统设计简单易用,不需要任何摄影经验甚至电脑操作。iSTAR Pulsar应用程序提供了规划路线,以及在线查看和分享内容的能力。
iSTAR Pulsar专门为捕捉360度移动数据而设计,并与索尼和英特尔联合开发。该系统可用于各种工业和智能城市应用。
产品详情如下:
无与伦比的11K球形分辨率将iSTAR Pulsar定义为几乎是标准8K球形系统像素分辨率的两倍,可提供6050万像素的全景图像。
预先校准到亚像素级别与先进的深度分析算法相结合,确保在移动平台上实现最精确的全景拼接。
iSTAR Pulsar针对移动平台进行了优化,可在处理过程中调整捕获速率,以提供一致的距离间隔,从而最大限度地减少数据存储和处理要求。
全自动后处理流水线包括一个可选的自动水平仪稳定功能,以纠正步行捕捉时产生的任何俯仰和滚动。
坚固的设计,耐候性和防震性,内置高精度GPS和IMU传感器,确保与GIS系统直接集成。
先进的对称和非对称加密技术确保从采集到交付的端到端数据安全。
NCTech在本周早些时候在伦敦Geo商业展上展示了iSTAR Pulsar ,并将在下个月初在加利福尼亚州阿纳海姆会议中心举行SPAR 3D Expo上展示他们的产品 。
“只需轻敲一下,iSTAR Pulsar就可以提供全自动的360°全景图像拍摄功能。它不是传统意义上的摄像头,它捕获大量高分辨率数据,并连接到我们庞大的云处理管道,从捕获到交付提供全自动工作流程。”
- ?
深圳远景达PDA数据采集器有哪些行业应用?
蒋芷文
展开
PDA数据采集器(手持终端)又叫盘点机、移动数据采集终端,指的是一种便携式数据采集和处理终端,具有独立的操作系统。特别是在条码广泛应用的今天,数据采集的重要性非常显著,利用数据采集器可以实现对条形码、标签类的东西快速读取信息。它为各大企业的仓库进出货、盘点和作业提供了便利性,那么数据采集器的具体有哪些行业应用呢?
深圳远景达数据采集器覆盖了医疗、零售、快销、物流、仓储、政府和公共事业等行业,比如在快递员、服装店盘点人员身上我们可以随处可见到它的身影。(1)零售:商超、服装门店等利用PDA可以实现商品盘点、配送、管理、导购、价格查询等功能,提供工作效率和客户的体验;
(2)物流仓储:用于库存管理、运输管理和货物的实时追踪;
(3)医疗:用于药品盘点、出入库管理,还可以实现移动护理,对医护人员查房、患者监护、药剂配药和分发、病历档案查询管理等功能;
(4)生产制造:用于生产计件管理、仓库管理。
- ?
六大主流大数据采集平台架构分析
Curitis
展开
随着大数据越来越被重视,数据采集的挑战变的尤为突出。今天为大家介绍几款数据采集平台:
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很快会开发出更好的数据收集的解决方案。
- ?
前嗅:手把手教你数据采集
白木瓜
展开
ForeSpider 前嗅:手把手教你数据采集
ForeSpider是一款非常好用的数据采集软件,因为属于专业性工具,除了帮助文档外很少有使用教程。所有有很多人在使用的过程中遇到问题难以解决,今天给大家介绍ForeSpider数据采集系统的使用教程,希望能对大家的工作有所帮助。
教程的示例网站是大众点评,要得到50页内所有医院名称,该医院评论总数,医院总体星级,各项评分,医院评论的用户名,评论内容,评论时间,用户点评星级,获赞数量和回应数量。
首先我们先新建一个频道,我给它命名为大众点评,然后在频道配置里输入我们想要爬取数据的网址,需要在频道配置处输入想要得到数据的网址,大众点评需要开启cookie,从右面可以开启,网站不同有的不需要,视情况而定。 现在默认模板(1)就是我们要的网站页面,鼠标放在医院标题处如图,从左下角能看到医院的网址链接。
现在点一下右上角的采集预览,我们能得到整个页面的所有网页链接,下拉滚动条到这个位置就会发现跟上图相同格式的链接,这就是我们需要的所有医院的链接。
我们用不到的需要过滤一下,可以通过地址过滤和标题过滤方法筛选。点击软件右上角模板抽取配置里面的链接抽取,里面有地址过滤和标题过滤两个选项,点击地址过滤,软件右下角如图:
过滤规则选择包含,过滤串内输入想要得到的医院链接,后面这串数字我们用“\d”表示,用“\e”表示结束,例如https://dianping/shop/\d\e,这样就能采集网页内所有这种格式的网页链接。
当我们想要采集的网页下面有翻页的链接,就必须配置翻页。除了在右上角默认模板处抽取我们想要的得到的医院链接外,还要再新建一个链接抽取,抽取页面翻页的地址。
我们继续从采集预览处得到翻页的链接,过滤规则选择包含,通过观察发现几个链接的相同点,输入到过滤串里就能得到想要的翻页链接了。
第一层级的模板建好了,下面我们随便点进一个医院主页内,复制链接建立下一层级模板。在默认模板(2)的示例地址内输入医院主页的链接。
因为我们需要采集该医院所有用户评论,所以我们找到下面的“更多点评”,通过刚刚地址过滤的方法,过滤出更多点评的链接,并建立模板(3),示例地址输入刚刚过滤的得到的“更多点评”的网址。
注:点击链接抽取,看左下角关联模板处,一定要关联到下一层级的模板,如果是翻页的链接抽取,要关联自身模板,否则会数据采集失败。这点一定要注意。
这样模板的基本配置就完成了,下一步是建立表单,下图是我们的需求,红色字体我们能从模板二采集到,蓝色字体我们能从模板三采集到,所以我们需要建立两个表单。
点击表单配置,新建一个表单,添加一个网页主键如图,一定要勾选索引字段,键值唯一,主键字段三个选项,取值类型选择网页主键点击确定。
然后添加下一个字段如标题“title”
取值类型选择“选区内全部文本”,变量类型选择“string”,选择合适的字符长度点击确定。依次建立所有字段。
这是我建立的两个表单的所有字段,表单名称分别为“大众点评1”、“大众点评2”,建立好以后点击保存即可。点开模板配置,每一个模板对应相应的表单,右键模板二“添加数据抽取”,表单名称选择“大众点评1”。
同样在模板三处再添加另外一个数据抽取表单,添加好后如下图所示:
单击“title”,然后按住ctrl键同时鼠标左键点击对应标题,内容过多的话按住shift可以调整内容大小,选好后点击保存。
全部选取完后点击左上角的文件,然后全部保存。
下一步点击数据,连接数据库,然后再次点击数据,选择数据表,选择刚刚新建两个数据表的字段后创建表,创建好后勾选并确定,就可以进行数据采集了(如果表单有问题需要更改,改好后需要重新创建表单),速度慢可以点击设置里面的线程设置,设置多线程。
这只是一个简单的教程,软件还有很多强大的功能,祝大家使用愉快!
- ?
2018年最值得推荐的6款大数据采集工具
Regina
展开
数据肯定是无价的。但分析数据并非易事,因为结果越准确,成本就越高。鉴于数据急剧增长,需要一个过程来提供有意义的信息,最终变成实用的洞察力。
数据挖掘是指这个过程:在庞大数据集当中发现模式,将它转换成有效的信息。该技术利用特定的算法、统计分析、人工智能和数据库系统,从庞大数据集中提取信息,并转换成易于理解的形式。本文介绍了广泛用于大数据行业的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.火车采集器
火车采集器由合肥乐维信息技术有限公司开发,是一款专业的网络数据采集/信息挖掘处理软件,通过灵活的配置,可以很轻松迅速地从网页上抓取结构化的文本、图片、文件等资源信息,可编辑筛选处理后选择发布到网站后台,各类文件或其他数据库系统中。
- ?
PDA数据采集器有哪些行业应用?如何选择优质的数据采集器?
小乐天
展开
PDA数据采集器(手持终端)又叫盘点机、移动数据采集终端,指的是一种便携式数据采集和处理终端,具有独立的操作系统。特别是在条码广泛应用的今天,数据采集的重要性非常显著,利用数据采集器可以实现对条形码、标签类的东西快速读取信息。它为各大企业的仓库进出货、盘点和作业提供了便利性,那么数据采集器的具体有哪些行业应用呢?
数据采集器覆盖了医疗、零售、快销、物流、仓储、政府和公共事业等行业,比如在快递员、服装店盘点人员身上我们可以随处可见到它的身影。(1)零售:商超、服装门店等利用PDA可以实现商品盘点、配送、管理、导购、价格查询等功能,提供工作效率和客户的体验;
(2)物流仓储:用于库存管理、运输管理和货物的实时追踪;
(3)医疗:用于药品盘点、出入库管理,还可以实现移动护理,对医护人员查房、患者监护、药剂配药和分发、病历档案查询管理等功能;
(4)生产制造:用于生产计件管理、仓库管理;
广东南壹信息科技有限公司专注于条码扫描器、移动数据采集器、盘点机扫描器等广泛应用于各行各业,凭雄厚实力和整体方案的研发、生产、销售和服务深受国内外企业的一致好评!至于优质数据采集器的选型不妨咨询广东南壹了解一下吧。
便携式数据采集系统
-
1、只需3秒快速实现求和
-
2、如何快速填充序号
-
3、如何自动填充序号(公式法)
-
4、数据条的神奇应用
-
5、多文本快速合并
-
6、查找与替换的不同玩法
-
7、快速定位到指定区域
-
8、数据排序、工资条制作
-
9、快速筛选(模糊、精确筛选)
-
10、快速插入空行
-
11、快速删除空行
-
12.快速跳转到天涯海角
-
13、.同时查看两个Excel文件
-
14、用条件格式扮靓报表
-
15、一键插入Excel图表
-
16、批量处理行高、列宽
-
17、利用拆分功能查看数据
-
18、批量录入相同内容
-
19、工作表快速跳转
-
20、批量录入表格模板(精品课程)
-
21、Excel函数与公式的应用、公式循环引用的查找
-
22、IF函数单条件判断同比增长
-
23、用sum函数 格式相同,连续多表数据汇总
-
24、excel快捷键
-
25、VLOOKUP函数——根据销售员匹配销售额
-
26、统计各部门销售总额
-
27、统计指定条件个数
-
28、怎样输入当前日期和时间、星期数
-
29、销售业绩排名
-
30、Sumproduct函数-万能函数(销售额汇总求和)
-
31、根据销售员,地区,商品名称汇总
-
32、批量替换PPT字体
-
33、给销售额数据批量添加万元单位
-
34、一秒快速核对两列数据
-
35、快速定位到指定单元格或区域
-
36、快速制作双行标题工资条
-
37、给你的表格做个瘦身
-
38、快速打开常用的Excel文件
-
39、快速打开多个Excel文件
-
40、利用创建组—快速隐藏/展开多列数据
-
41、快速制作下拉菜单
-
42、复制粘贴表格,如何保留数据源列宽格式一致?
-
43、两列数据位置互换
-
44、1秒钟扮靓报表——如何实现表格隔行换色
-
45、快速删除重复记录——保留唯一值
-
46、快速向下填充、向右填充,文本或公式
-
47、给Excel文件添加密码
-
48、插入带图片的批注
-
49、输入公式后不计算?
-
50、如何设置单元格缩进
-
51、快速解决Excel表格总显示货币格式
-
52、批量添加万元单位
-
53、你会四舍五入么?
-
54、用RAND函数机选彩票
-
55、冻结首行你会么?
-
56、超链接的高级应用
-
57、IFERROR函数-屏蔽错误值
-
58、批量填充颜色
-
59、录入数据
-
60、快速输入工号
-
61、快速行列转置
-
62、自定义缩放界面
-
63、多个单元格同时输入
-
64、如何计算立方米?
-
65、快速制作双行标题工资条
-
66、输入带方框的√和×
-
67、快速将姓名对齐
-
68、快速输入性别
-
69、按单位职务排序
-
70、自动计算合同到期日期
-
71、计算时间间隔
-
72、日期和时间的拆分
-
73、快速处理不规范的日期格式
-
74、快速填充合并单元格
-
75、效率加倍的快捷键
-
76、快速复制表格和对象
-
77、快速创建工作表副本
-
78、快速复制序列号
-
79、快速显示公式
-
80、多个单元格同时输入
-
81、快速调整显示比例
-
82、快速自动填充
-
83、快速填充(Ctrl+E)
-
84、Ctrl与数字键结合
-
85、快速将多列数据整理为1列
-
86、快速将1列数据拆分为多列
-
87、快速定位公式
-
88、快速录入数据
-
89、快速累计求和
-
90、身份证号码显示为0怎么办?
-
91、快速制作斜线表头
-
92、文本竖向显示
-
93、神奇的监视窗口
-
94、不一样的格式刷
-
95、快速美化图表
-
96、快速生成当前日期
-
97、快速找出循环引用
-
98、快速提取信息
-
99、二维表快速转换为一维表
-
100、快速多表合并