版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
全国高校标准教材《云计算》姊妹篇,剖析大数据核心技术和实战应用大数据刘鹏主编张燕张重生张志立副主编BIGDATA全国高校标准教材《云计算》姊妹篇,剖析大数据核心技术和实战应刘鹏教授,清华大学博士。现任南京大数据研究院院长、中国信息协会大数据分会副会长、中国大数据技术与应用联盟副理事长。主持完成科研项目25项,发表论文80余篇,出版专业书籍15本。获部级科技进步二等奖4项、三等奖4项。主编的《云计算》被全国高校普遍采用,被引用量排名中国计算机图书第一名。创办了知名的中国云计算()和中国大数据()网站。曾率队夺得2002PennySort国际计算机排序比赛冠军,两次夺得全国高校科技比赛最高奖,并三次夺得清华大学科技比赛最高奖。荣获“全军十大学习成才标兵”(排名第一)、南京“十大杰出青年”、江苏省中青年科学技术带头人、清华大学“学术新秀”等称号。刘鹏教授,清华大学博士。现任南京大数据研究院第二章数据采集与预处理2.1
2.2数据预处理原理2.3数据仓库与ETL工具习题全国高校标准教材《云计算》姊妹篇,剖析大数据核心技术和实战应用大数据采集架构of423第二章数据采集与预处理2.12.2数据预处理原理2.32.1大数据采集架构第二章数据采集与预处理如今,社会中各个机构、部门、公司、团体等正在实时不断地产生大量的信息,这些信息需要以简单的方式进行处理,同时又要十分准确且能迅速满足各种类型的数据(信息)需求者。这给我们带来了许多挑战,第一个挑战就是在大量的数据中收集需要的数据,下面介绍常用的大数据采集工具。of4242.1.1概述2.1大数据采集架构第二章数据采集与预处理如今,社会中各个2.1大数据采集架构第二章数据采集与预处理FlumeChukwaScribleKafka大数据采集工具of4252.1.2常用大数据采集工具数据采集最传统的方式是企业自己的生产系统产生的数据,除上述生产系统中的数据外,企业的信息系统还充斥着大量的用户行为数据、日志式的活动数据、事件信息等,越来越多的企业通过架设日志采集系统来保存这些数据,希望通过这些数据获取其商业或社会价值。2.1大数据采集架构第二章数据采集与预处理FlumeChu2.1大数据采集架构第二章数据采集与预处理of426在Flume中,外部输入称为Source(源),系统输出称为Sink(接收端)。Channel(通道)把Source和Sink链接在一起。ApacheChukwa项目与Flume有些相类似,Chukwa继承了Hadoop的伸缩性和鲁棒性。也内置一个功能强大的工具箱,用于显示系统监控和分析结果。互联网时代,网络爬虫也是许多企业获取数据的一种方式。Nutch就是网络爬虫中的娇娇者,Nutch是Apache旗下的开源项目,存在已经超过10年,拥有大量的忠实用户。Flume体系架构2.1大数据采集架构第二章数据采集与预处理of426在Fl2.1大数据采集架构第二章数据采集与预处理of4272.1.3ApacheKafka数据采集ApacheKafka被设计成能够高效地处理大量实时数据,其特点是快速的、可扩展的、分布式的,分区的和可复制的。Kafka是用Scala语言编写的,虽然置身于Java阵营,但其并不遵循JMS规范。Topics(话题):消息的分类名。Producers(消息发布者):能够发布消息到Topics的进程。Consumers(消息接收者):可以从Topics接收消息的进程。Broker(代理):组成Kafka集群的单个节点。基本Kafka集群的工作流程2.1大数据采集架构第二章数据采集与预处理of4272.12.1大数据采集架构第二章数据采集与预处理of4281、TopicsTopics是消息的分类名(或Feed的名称)。Kafka集群或Broker为每一个Topic都会维护一个分区日志。每一个分区日志是有序的消息序列,消息是连续追加到分区日志上,并且这些消息是不可更改的。2、日志区分一个Topic可以有多个分区,这些分区可以作为并行处理的单元,从而使Kafka有能力高效地处理大量数据。Topics与日志分析2.1大数据采集架构第二章数据采集与预处理of4281、2.1大数据采集架构第二章数据采集与预处理of4293、ProducersProducers是向它们选择的主题发布数据。生产者可以选择分配某个主题到哪个分区上。这可以通过使用循环的方式或通过任何其他的语义分函数来实现。4、ConsumersKafka提供一种单独的消费者抽象,此抽象具有两种模式的特征消费组:Queuing和Publish-Subscribe。5、ApacheKafka的安装及使用因为Kafka是处理网络上请求,所以,应该为其创建一个专用的用户,这将便于对Kafka相关服务的管理,减少对服务器上其他服务的影响。2.1大数据采集架构第二章数据采集与预处理of4293、2.1大数据采集架构第二章数据采集与预处理of4210使用useradd命令来创建一个Kafka用户:
$sudouseraddkafka–m使用passwd命令来设置其密码:$sudopasswdkafaka接下来把kafaka用户添加到sudo管理组,以便kafaka用户具有安装ApacheKafka依赖库的权限。这里使用adduser命令来进行添加:$sudoadduserkafkasudo这时就可以使用kafka账户了。切换用户可以使用su命令:$su-kafka在ApacheKafka安装所依赖的软件包前,最好更新一下apt管理程序的软件列表:$sudoapt-getupdateApacheKafka需要Java运行环境,这里使用apt-get命令安装default-jre包,然后安装Java运行环境:$sudoapt-getinstalldefault-jre通过下面的命令测试一下Java运行环境是否安装成功,并查看Java的版本信息:$java-version2.1大数据采集架构第二章数据采集与预处理of4210使用2.1大数据采集架构第二章数据采集与预处理of4211机器有如下显示:2.1大数据采集架构第二章数据采集与预处理of4211机器2.1大数据采集架构第二章数据采集与预处理of42122.1大数据采集架构第二章数据采集与预处理of42122.1大数据采集架构第二章数据采集与预处理of42132.1大数据采集架构第二章数据采集与预处理of42132.1大数据采集架构第二章数据采集与预处理of42142.1大数据采集架构第二章数据采集与预处理of42142.1大数据采集架构第二章数据采集与预处理of42156、使用Java来编写Kafka的实例首先,编写KafkaPperties文件:zk.connect=localhost:2181broker.list=localhost:9092serializer.class=kafka.serializer.StringEncoderrequest.required.acks=1下面的代码是使用Java编写了一个Kafka消息发布者:importducer.Producer;importducer.KeyedMessage;importducer.ProducerConfig;publicclassMyKafkaProducer{privateProducer<String,String>producer;privatefinalStringtopic;publicMyKafkaProducer(Stringtopic)throwsException{InputStreamin=Properties.class.getResourceAsStream("KafkaPperties");Propertiesprops=newProperties();props.load(in);ProducerConfigconfig=newProducerConfig(props);producer=newProducer<String,String>(config);}publicvoidsendMessage(Stringmsg){KeyedMessage<String,String>data=newKeyedMessage<String,String>(topic,msg);producer.send(data);producer.close();}publicstaticvoidmain(String[]args)throwsException{MyKafkaProducerproducer=newMyKafkaProducer("HelloTopic");Stringmsg="HelloKafka!";producer.sendMessage(msg);}}2.1大数据采集架构第二章数据采集与预处理of42156、2.1大数据采集架构第二章数据采集与预处理of4216下面创建Comsumer,首先编写KafkaProperties文件:zk.connect=localhost:2181group.id=testgroupzookeeper.session.timeout.ms=500zookeeper.sync.time.ms=250erval.ms=1000上述参数配置,十分容易理解,具体的详细说明,可以参考Kafka的官方文档。下面的代码是使用Java编写了一个Kafka的Comsumer。importjava.io.InputStream;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importjava.util.Properties;importkafka.consumer.ConsumerConfig;importkafka.consumer.ConsumerIterator;importkafka.consumer.KafkaStream;importkafka.javaapi.consumer.ConsumerConnector;importkafka.consumer.Consumer;
publicclassMyKafkaConsumer{privatefinalConsumerConnectorconsumer;privatefinalStringtopic;publicMyKafkaConsumer(Stringtopic)throwsException{InputStreamin=Properties.class.getResourceAsStream("KafkaPperties");Propertiesprops=newProperties();props.load(in);ConsumerConfigconfig=newConsumerConfig(props);consumer=Consumer.createJavaConsumerConnector(config);this.topic=topic;}publicvoidconsumeMessage(){Map<String,String>topicMap=newHashMap<String,String>();topicMap.put(topic,newInteger(1));Map<String,List<KafkaStream<byte[],byte[]>>>consumerStreamsMap=consumer.createMessageStreams(topicMap);List<KafkaStream<byte[],byte[]>>streamList=consumerStreamsMap.get(topic);for(finalKafkaStream<byte[],byte[]>stream:streamList){ConsumerIterator<byte[],byte[]>consumerIte=stream.iterator();while(consumerIte.hasNext())System.out.println("message::"+newString(consumerIte.next().message()));}if(consumer!=null)consumer.shutdown();}publicstaticvoidmain(String[]args)throwsException{StringgroupId="testgroup";Stringtopic="HelloTopic";MyKafkaConsumerconsumer=newMyKafkaConsumer(topic);consumer.consumeMessage();}}2.1大数据采集架构第二章数据采集与预处理of4216下面第二章数据采集与预处理2.1
2.2数据预处理原理2.3数据仓库与ETL工具习题全国高校标准教材《云计算》姊妹篇,剖析大数据核心技术和实战应用大数据采集架构of4217第二章数据采集与预处理2.12.2数据预处理原理2.32.2数据预处理原理第二章数据采集与预处理通过数据预处理工作,可以使残缺的数据完整,并将错误的数据纠正、多余的数据去除,进而将所需的数据挑选出来,并且进行数据集成。数据预处理的常见方法有数据清洗、数据集成与数据变换。of42182.2数据预处理原理第二章数据采集与预处理通过数据预处理工2.2数据预处理原理第二章数据采集与预处理填
充缺
失值数据属性分为数值属性和非数值属性进行处理,通过利用已存数据的多数信息来推测缺失值数据属性分为数值属性和非数值属性进行处理,通过利用已存数据的多数信息来推测缺失值大量采用同一属性值,可能会误导挖掘程序得出有偏差甚至错误的结论数据偏离的问题小,但该方法十分费时,不具备实际的可操作性通常当在缺少类标号时,通过这样的方法来填补缺失值利用均值替换缺失值忽略元组人工填写缺失值使用一个全局常量填充缺失值用属性的均值填充缺失值用同类样本的属性均值填充缺失值使用最可能的值填充缺失值of42192.2.1数据清洗2.2数据预处理原理第二章数据采集与预处理填充缺失值数2.2数据预处理原理第二章数据采集与预处理of4220分箱方法通过考察某一数据周围数据的值,即“近邻”来光滑有序数据的值。分箱01回归02光滑数据可以通过一个函数拟合数据来实现。线性回归的目标就是查找拟合两个属性的“最佳”线,使得其中一个属性可以用于预测出另一个属性。聚类03离群点可通过聚类进行检测,将类似的值组织成群或簇,离群点即为落在簇集合之外的值。许多数据光滑的方法也是涉及离散化的数据归约方法。噪声是被测量的变量的随机误差或方差。给定一个数值属性,如何才能使数据“光滑”,去掉噪声?下面给出数据光滑技术的具体内容。2.2数据预处理原理第二章数据采集与预处理of4220分箱2.2数据预处理原理第二章数据采集与预处理of4221数据清洗可以视为一个过程,包括检测偏差与纠正偏差两个步骤:2纠正偏差1检查偏差可以使用已有的关于数据性质的知识发现噪声、离群点和需要考察的不寻常的值。这种知识或“关于数据的数据”称为元数据。即一旦发现偏差,通常需要定义并使用一系列的变换来纠正它们。但这些工具只支持有限的变换,因此,常常可能需要为数据清洗过程的这一步编写定制的程序。2.2数据预处理原理第二章数据采集与预处理of4221数据2.2数据预处理原理第二章数据采集与预处理(1)模式集成和对象匹配问题(2)冗余问题(3)元组重复(4)数据值冲突的检测与处理问题数据挖掘经常需要数据集成合并来自多个数据存储的数据。数据还可能需要变换成适于挖掘的形式。数据分析任务多半涉及数据集成。问题of42222.2.2数据集成2.2数据预处理原理第二章数据采集与预处理(1)模式集成和2.2数据预处理原理第二章数据采集与预处理1、光滑。去除数据中的噪声2、聚集。对数据进行汇总或聚集。3、
数据泛化。使用概念分层,用高层概念替换低层或“原始”数据4、规范化。将属性数据按比例缩放,使之落入一个小的特定区间5、属性构造。可以构造新的属性并添加到属性集中,以帮助挖掘过程of42232.2.3数据变换数据变换的目的是将数据变换或统一成适合挖掘的形式。数据变换主要涉及以下内容:2.2数据预处理原理第二章数据采集与预处理1、光滑。去除第二章数据采集与预处理2.1
2.2数据预处理原理2.3数据仓库与ETL工具习题全国高校标准教材《云计算》姊妹篇,剖析大数据核心技术和实战应用大数据采集架构of4224第二章数据采集与预处理2.12.2数据预处理原理2.32.3数据仓库与ETL工具第二章数据采集与预处理数据仓库中的数据来自于多种业务数据源,这些数据源可能处于不同硬件平台上,使用不同的操作系统,数据模型也相差很远。如何获取并向数据仓库加载这些数据量大、种类多的数据,已成为建立数据仓库所面临的一个关键问题。of42252.3.1数据仓库与ETL工具数据仓库,是在企业管理和决策中面向主题的、集成的、随时间变化的、非易失性数据的集合。2.3数据仓库与ETL工具第二章数据采集与预处理of422.3数据仓库与ETL工具第二章数据采集与预处理如何获取并向数据仓库加载数据量大、种类多的数据,一般要使用专业的数据抽取、转换和装载工具,这些工具合并起来被称为ETL(Extract-Transform-Load)。InformaticaPowerCenter常用ETL工具IBMDatastageWarehouseBuilder(OWB)OracleDataIntegrator(ODI)MicrosoftSQLServerIntegrationServices开源Kettleof42262.3.2常用ETL工具2.3数据仓库与ETL工具第二章数据采集与预处理如何获取2.3数据仓库与ETL工具第二章数据采集与预处理of4227PowerCenterIBMDatastageKettleInformatica的PowerCenter是一个可扩展、高性能企业数据集成平台,应用于各种数据集成流程,通过该平台可实现自动化、重复使用及灵活性IBMInfoSphereDataStage是一款功能强大的ETL工具,是IBM数据集成平台IBMInformationServer的一部分,是专门的数据提取、数据转换、数据发布的工具。Kettle是Pentaho中的ETL工具,Pentaho是一套开源BI解决方案。Kettle是一款国外优秀的开源ETL工具,由纯Java编写,可以在Windows、Linux、UNIX上运行,无须安装,数据抽取高效稳定。2.3数据仓库与ETL工具第二章数据采集与预处理of422.3数据仓库与ETL工具第二章数据采集与预处理of422801(1)Chef可使用户创建任务(Job)。它是提供图形用户界面的工作设计工具。02(2)Kitchen可使用户批量使用由Chef设计的任务,一般在自动调度时借助此命令调用调试成功的任务。它是一个后台运行的程序,以命令行方式,没有图形用户界面。03(3)Spoon
可使用户通过图形界面来设计ETL转换过程,一般在编写和调试ETL时用到。04(4)Span可使用户批量运行由Spoon设计的ETL转换,Span是一个后台执行的程序,以命令行方式,没有图形界面,一般在自动调度时借助此命令调用调试成功的转换。Kettle目前包括如下4个产品:2.3数据仓库与ETL工具第二章数据采集与预处理of422.3数据仓库与ETL工具第二章数据采集与预处理案例:Kettle数据迁移可以在Kettle的官网/下载进入主界面在“输入”文件夹下选择“表输入”,并把它拖动到右侧编辑区of42292.3.3案例:Kettle数据迁移2.3数据仓库与ETL工具第二章数据采集与预处理案例:K2.3数据仓库与ETL工具第二章数据采集与预处理案例:Kettle数据迁移编辑数据来源
配置数据库的参数
选择输入表
设置“字段选择”of42302.3数据仓库与ETL工具第二章数据采集与预处理案例:K2.3数据仓库与ETL工具第二章数据采集与预处理案例:Kettle数据迁移将每一个输入字段改成和输出字段相同的名字自动列出之前表输入中的所有字段of42312.3数据仓库与ETL工具第二章数据采集与预处理案例:K2.3数据仓库与ETL工具第二章数据采集与预处理案例:Kettle数据迁移of4232在“输出”文件夹中拖出一个“表输出”到右侧编辑区,并画连接配置数据库将输出表对象设置为Oracle数据库
映射输入/输出关系单击“确定”按钮关闭窗口2.3数据仓库与ETL工具第二章数据采集与预处理案例:K2.3数据仓库与ETL工具第二章数据采集与预处理案例:Kettle数据迁移of4233执行转换去本地Oracle数据库中查看实时显示转换过程2.3数据仓库与ETL工具第二章数据采集与预处理案例:K1.采用哪些方式可以获取大数据?2.常用大数据采集工具有哪些?3.简述什么是ApacheKafka数据采集。4.Topic可以有多个分区,这些分区有什么作用?5.Kafka抽象具有哪种模式的特征消费组?6.查阅相关资料,实例演示ApacheKafka的安装及使用。7.使用Java来编写Kafka的实例。8.简述数据预处理的原理。9.数据清洗有哪些方法?10.数据集成需要重点考虑的问题有哪些?11.数据变换主要涉及哪些内容?12.分别简述常用ETL工具。习题:1.采用哪些方式可以获取大数据?习题:百度排名首位的大数据资料和交流中心百度排名首位的大数据资料和交流中心百度排名首位的云计算资料和交流中心百度排名首位的云计算资料和交流中心数据采集与预处理培训课件数据采集与预处理培训课件BDRack大数据实验一体机虚拟出百套集群,并行开展大数据实验预装各种流行云计算和大数据平台提供配套实验教程、课件、PPT和培训BDRack大数据实验一体机虚拟出百套集群,并行开展大数据实学习大数据必须关注的公众号知名微信公众号推荐刘鹏看未来云计算头条云创大数据中国大数据微信号:chinacloudnj微信号:cstorbigdata资源丰富、分析深入、更新及时的云计算知识共享平台。微信号:lpoutlook微信号:cStor_cn国内大数据龙头企业。提供领先的云存储、云数据库、云视频、云传输产品和解决方案。眼光决定成败,与刘鹏教授看未来。刘鹏,清华博士,《云计算》作者。分享大数据技术,剖析大数据案例,讨论大数据话题。学习大数据必须关注的公众号知名微信公众号推荐刘鹏看未来云计算运用大数据,精彩你生活免费大数据App推荐运用大数据,精彩你生活免费大数据App推荐感谢聆听感谢聆听演讲完毕,谢谢观看!演讲完毕,谢谢观看!全国高校标准教材《云计算》姊妹篇,剖析大数据核心技术和实战应用大数据刘鹏主编张燕张重生张志立副主编BIGDATA全国高校标准教材《云计算》姊妹篇,剖析大数据核心技术和实战应刘鹏教授,清华大学博士。现任南京大数据研究院院长、中国信息协会大数据分会副会长、中国大数据技术与应用联盟副理事长。主持完成科研项目25项,发表论文80余篇,出版专业书籍15本。获部级科技进步二等奖4项、三等奖4项。主编的《云计算》被全国高校普遍采用,被引用量排名中国计算机图书第一名。创办了知名的中国云计算()和中国大数据()网站。曾率队夺得2002PennySort国际计算机排序比赛冠军,两次夺得全国高校科技比赛最高奖,并三次夺得清华大学科技比赛最高奖。荣获“全军十大学习成才标兵”(排名第一)、南京“十大杰出青年”、江苏省中青年科学技术带头人、清华大学“学术新秀”等称号。刘鹏教授,清华大学博士。现任南京大数据研究院第二章数据采集与预处理2.1
2.2数据预处理原理2.3数据仓库与ETL工具习题全国高校标准教材《云计算》姊妹篇,剖析大数据核心技术和实战应用大数据采集架构of4246第二章数据采集与预处理2.12.2数据预处理原理2.32.1大数据采集架构第二章数据采集与预处理如今,社会中各个机构、部门、公司、团体等正在实时不断地产生大量的信息,这些信息需要以简单的方式进行处理,同时又要十分准确且能迅速满足各种类型的数据(信息)需求者。这给我们带来了许多挑战,第一个挑战就是在大量的数据中收集需要的数据,下面介绍常用的大数据采集工具。of42472.1.1概述2.1大数据采集架构第二章数据采集与预处理如今,社会中各个2.1大数据采集架构第二章数据采集与预处理FlumeChukwaScribleKafka大数据采集工具of42482.1.2常用大数据采集工具数据采集最传统的方式是企业自己的生产系统产生的数据,除上述生产系统中的数据外,企业的信息系统还充斥着大量的用户行为数据、日志式的活动数据、事件信息等,越来越多的企业通过架设日志采集系统来保存这些数据,希望通过这些数据获取其商业或社会价值。2.1大数据采集架构第二章数据采集与预处理FlumeChu2.1大数据采集架构第二章数据采集与预处理of4249在Flume中,外部输入称为Source(源),系统输出称为Sink(接收端)。Channel(通道)把Source和Sink链接在一起。ApacheChukwa项目与Flume有些相类似,Chukwa继承了Hadoop的伸缩性和鲁棒性。也内置一个功能强大的工具箱,用于显示系统监控和分析结果。互联网时代,网络爬虫也是许多企业获取数据的一种方式。Nutch就是网络爬虫中的娇娇者,Nutch是Apache旗下的开源项目,存在已经超过10年,拥有大量的忠实用户。Flume体系架构2.1大数据采集架构第二章数据采集与预处理of426在Fl2.1大数据采集架构第二章数据采集与预处理of42502.1.3ApacheKafka数据采集ApacheKafka被设计成能够高效地处理大量实时数据,其特点是快速的、可扩展的、分布式的,分区的和可复制的。Kafka是用Scala语言编写的,虽然置身于Java阵营,但其并不遵循JMS规范。Topics(话题):消息的分类名。Producers(消息发布者):能够发布消息到Topics的进程。Consumers(消息接收者):可以从Topics接收消息的进程。Broker(代理):组成Kafka集群的单个节点。基本Kafka集群的工作流程2.1大数据采集架构第二章数据采集与预处理of4272.12.1大数据采集架构第二章数据采集与预处理of42511、TopicsTopics是消息的分类名(或Feed的名称)。Kafka集群或Broker为每一个Topic都会维护一个分区日志。每一个分区日志是有序的消息序列,消息是连续追加到分区日志上,并且这些消息是不可更改的。2、日志区分一个Topic可以有多个分区,这些分区可以作为并行处理的单元,从而使Kafka有能力高效地处理大量数据。Topics与日志分析2.1大数据采集架构第二章数据采集与预处理of4281、2.1大数据采集架构第二章数据采集与预处理of42523、ProducersProducers是向它们选择的主题发布数据。生产者可以选择分配某个主题到哪个分区上。这可以通过使用循环的方式或通过任何其他的语义分函数来实现。4、ConsumersKafka提供一种单独的消费者抽象,此抽象具有两种模式的特征消费组:Queuing和Publish-Subscribe。5、ApacheKafka的安装及使用因为Kafka是处理网络上请求,所以,应该为其创建一个专用的用户,这将便于对Kafka相关服务的管理,减少对服务器上其他服务的影响。2.1大数据采集架构第二章数据采集与预处理of4293、2.1大数据采集架构第二章数据采集与预处理of4253使用useradd命令来创建一个Kafka用户:
$sudouseraddkafka–m使用passwd命令来设置其密码:$sudopasswdkafaka接下来把kafaka用户添加到sudo管理组,以便kafaka用户具有安装ApacheKafka依赖库的权限。这里使用adduser命令来进行添加:$sudoadduserkafkasudo这时就可以使用kafka账户了。切换用户可以使用su命令:$su-kafka在ApacheKafka安装所依赖的软件包前,最好更新一下apt管理程序的软件列表:$sudoapt-getupdateApacheKafka需要Java运行环境,这里使用apt-get命令安装default-jre包,然后安装Java运行环境:$sudoapt-getinstalldefault-jre通过下面的命令测试一下Java运行环境是否安装成功,并查看Java的版本信息:$java-version2.1大数据采集架构第二章数据采集与预处理of4210使用2.1大数据采集架构第二章数据采集与预处理of4254机器有如下显示:2.1大数据采集架构第二章数据采集与预处理of4211机器2.1大数据采集架构第二章数据采集与预处理of42552.1大数据采集架构第二章数据采集与预处理of42122.1大数据采集架构第二章数据采集与预处理of42562.1大数据采集架构第二章数据采集与预处理of42132.1大数据采集架构第二章数据采集与预处理of42572.1大数据采集架构第二章数据采集与预处理of42142.1大数据采集架构第二章数据采集与预处理of42586、使用Java来编写Kafka的实例首先,编写KafkaPperties文件:zk.connect=localhost:2181broker.list=localhost:9092serializer.class=kafka.serializer.StringEncoderrequest.required.acks=1下面的代码是使用Java编写了一个Kafka消息发布者:importducer.Producer;importducer.KeyedMessage;importducer.ProducerConfig;publicclassMyKafkaProducer{privateProducer<String,String>producer;privatefinalStringtopic;publicMyKafkaProducer(Stringtopic)throwsException{InputStreamin=Properties.class.getResourceAsStream("KafkaPperties");Propertiesprops=newProperties();props.load(in);ProducerConfigconfig=newProducerConfig(props);producer=newProducer<String,String>(config);}publicvoidsendMessage(Stringmsg){KeyedMessage<String,String>data=newKeyedMessage<String,String>(topic,msg);producer.send(data);producer.close();}publicstaticvoidmain(String[]args)throwsException{MyKafkaProducerproducer=newMyKafkaProducer("HelloTopic");Stringmsg="HelloKafka!";producer.sendMessage(msg);}}2.1大数据采集架构第二章数据采集与预处理of42156、2.1大数据采集架构第二章数据采集与预处理of4259下面创建Comsumer,首先编写KafkaProperties文件:zk.connect=localhost:2181group.id=testgroupzookeeper.session.timeout.ms=500zookeeper.sync.time.ms=250erval.ms=1000上述参数配置,十分容易理解,具体的详细说明,可以参考Kafka的官方文档。下面的代码是使用Java编写了一个Kafka的Comsumer。importjava.io.InputStream;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importjava.util.Properties;importkafka.consumer.ConsumerConfig;importkafka.consumer.ConsumerIterator;importkafka.consumer.KafkaStream;importkafka.javaapi.consumer.ConsumerConnector;importkafka.consumer.Consumer;
publicclassMyKafkaConsumer{privatefinalConsumerConnectorconsumer;privatefinalStringtopic;publicMyKafkaConsumer(Stringtopic)throwsException{InputStreamin=Properties.class.getResourceAsStream("KafkaPperties");Propertiesprops=newProperties();props.load(in);ConsumerConfigconfig=newConsumerConfig(props);consumer=Consumer.createJavaConsumerConnector(config);this.topic=topic;}publicvoidconsumeMessage(){Map<String,String>topicMap=newHashMap<String,String>();topicMap.put(topic,newInteger(1));Map<String,List<KafkaStream<byte[],byte[]>>>consumerStreamsMap=consumer.createMessageStreams(topicMap);List<KafkaStream<byte[],byte[]>>streamList=consumerStreamsMap.get(topic);for(finalKafkaStream<byte[],byte[]>stream:streamList){ConsumerIterator<byte[],byte[]>consumerIte=stream.iterator();while(consumerIte.hasNext())System.out.println("message::"+newString(consumerIte.next().message()));}if(consumer!=null)consumer.shutdown();}publicstaticvoidmain(String[]args)throwsException{StringgroupId="testgroup";Stringtopic="HelloTopic";MyKafkaConsumerconsumer=newMyKafkaConsumer(topic);consumer.consumeMessage();}}2.1大数据采集架构第二章数据采集与预处理of4216下面第二章数据采集与预处理2.1
2.2数据预处理原理2.3数据仓库与ETL工具习题全国高校标准教材《云计算》姊妹篇,剖析大数据核心技术和实战应用大数据采集架构of4260第二章数据采集与预处理2.12.2数据预处理原理2.32.2数据预处理原理第二章数据采集与预处理通过数据预处理工作,可以使残缺的数据完整,并将错误的数据纠正、多余的数据去除,进而将所需的数据挑选出来,并且进行数据集成。数据预处理的常见方法有数据清洗、数据集成与数据变换。of42612.2数据预处理原理第二章数据采集与预处理通过数据预处理工2.2数据预处理原理第二章数据采集与预处理填
充缺
失值数据属性分为数值属性和非数值属性进行处理,通过利用已存数据的多数信息来推测缺失值数据属性分为数值属性和非数值属性进行处理,通过利用已存数据的多数信息来推测缺失值大量采用同一属性值,可能会误导挖掘程序得出有偏差甚至错误的结论数据偏离的问题小,但该方法十分费时,不具备实际的可操作性通常当在缺少类标号时,通过这样的方法来填补缺失值利用均值替换缺失值忽略元组人工填写缺失值使用一个全局常量填充缺失值用属性的均值填充缺失值用同类样本的属性均值填充缺失值使用最可能的值填充缺失值of42622.2.1数据清洗2.2数据预处理原理第二章数据采集与预处理填充缺失值数2.2数据预处理原理第二章数据采集与预处理of4263分箱方法通过考察某一数据周围数据的值,即“近邻”来光滑有序数据的值。分箱01回归02光滑数据可以通过一个函数拟合数据来实现。线性回归的目标就是查找拟合两个属性的“最佳”线,使得其中一个属性可以用于预测出另一个属性。聚类03离群点可通过聚类进行检测,将类似的值组织成群或簇,离群点即为落在簇集合之外的值。许多数据光滑的方法也是涉及离散化的数据归约方法。噪声是被测量的变量的随机误差或方差。给定一个数值属性,如何才能使数据“光滑”,去掉噪声?下面给出数据光滑技术的具体内容。2.2数据预处理原理第二章数据采集与预处理of4220分箱2.2数据预处理原理第二章数据采集与预处理of4264数据清洗可以视为一个过程,包括检测偏差与纠正偏差两个步骤:2纠正偏差1检查偏差可以使用已有的关于数据性质的知识发现噪声、离群点和需要考察的不寻常的值。这种知识或“关于数据的数据”称为元数据。即一旦发现偏差,通常需要定义并使用一系列的变换来纠正它们。但这些工具只支持有限的变换,因此,常常可能需要为数据清洗过程的这一步编写定制的程序。2.2数据预处理原理第二章数据采集与预处理of4221数据2.2数据预处理原理第二章数据采集与预处理(1)模式集成和对象匹配问题(2)冗余问题(3)元组重复(4)数据值冲突的检测与处理问题数据挖掘经常需要数据集成合并来自多个数据存储的数据。数据还可能需要变换成适于挖掘的形式。数据分析任务多半涉及数据集成。问题of42652.2.2数据集成2.2数据预处理原理第二章数据采集与预处理(1)模式集成和2.2数据预处理原理第二章数据采集与预处理1、光滑。去除数据中的噪声2、聚集。对数据进行汇总或聚集。3、
数据泛化。使用概念分层,用高层概念替换低层或“原始”数据4、规范化。将属性数据按比例缩放,使之落入一个小的特定区间5、属性构造。可以构造新的属性并添加到属性集中,以帮助挖掘过程of42662.2.3数据变换数据变换的目的是将数据变换或统一成适合挖掘的形式。数据变换主要涉及以下内容:2.2数据预处理原理第二章数据采集与预处理1、光滑。去除第二章数据采集与预处理2.1
2.2数据预处理原理2.3数据仓库与ETL工具习题全国高校标准教材《云计算》姊妹篇,剖析大数据核心技术和实战应用大数据采集架构of4267第二章数据采集与预处理2.12.2数据预处理原理2.32.3数据仓库与ETL工具第二章数据采集与预处理数据仓库中的数据来自于多种业务数据源,这些数据源可能处于不同硬件平台上,使用不同的操作系统,数据模型也相差很远。如何获取并向数据仓库加载这些数据量大、种类多的数据,已成为建立数据仓库所面临的一个关键问题。of42682.3.1数据仓库与ETL工具数据仓库,是在企业管理和决策中面向主题的、集成的、随时间变化的、非易失性数据的集合。2.3数据仓库与ETL工具第二章数据采集与预处理of422.3数据仓库与ETL工具第二章数据采集与预处理如何获取并向数据仓库加载数据量大、种类多的数据,一般要使用专业的数据抽取、转换和装载工具,这些工具合并起来被称为ETL(Extract-Transform-Load)。InformaticaPowerCenter常用ETL工具IBMDatastageWarehouseBuilder(OWB)OracleDataIntegrator(ODI)MicrosoftSQLServerIntegrationServices开源Kettleof42692.3.2常用ETL工具2.3数据仓库与ETL工具第二章数据采集与预处理如何获取2.3数据仓库与ETL工具第二章数据采集与预处理of4270PowerCenterIBMDatastageKettleInformatica的PowerCenter是一个可扩展、高性能企业数据集成平台,应用于各种数据集成流程,通过该平台可实现自动化、重复使用及灵活性IBM
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 路基安全培训
- 大学会计实习报告范文锦集五篇
- 预防校园欺凌安全教育工作总结
- 学生个人实习报告模板合集五篇
- 安全工作计划锦集六篇
- 《丑小鸭》教学反思
- 消防工作计划4篇
- 营销实习报告模板集锦10篇
- 操作员工作总结
- 物业员工上半年工作总结5篇
- 《西游记知识竞赛》题库及答案(单选题100道、多选题100道)
- 2024年行政执法人员执法资格考试必考题库及答案(共190题)
- QC-提高地铁车站直螺纹钢筋机械连接一次性合格率
- 《2025酒店预算的进与退》
- 民办学校教职工入职背景审查制度
- 《中国政治思想史》课程教学大纲
- 2024年新人教版四年级数学上册《教材练习21练习二十一(附答案)》教学课件
- 商业伦理与社会责任智慧树知到期末考试答案2024年
- MOOC 创新思维与创业实验-东南大学 中国大学慕课答案
- 二级公立医院绩效考核三级手术目录(2020版)
- 6人小品《没有学习的人不伤心》台词完整版
评论
0/150
提交评论