《基于PYTHON语言的大数据分析项目实训.docx》由会员分享,可在线阅读,更多相关《基于PYTHON语言的大数据分析项目实训.docx(7页珍藏版)》请在第一文库网上搜索。
1、基于PYTHON语言的大数据分析项目实训一、项目背景大数据作为时下最火热的IT行业的词汇,随之而来的数据仓库、数据安全、数据分析、数据挖掘等等围绕大数据的商业价值的利用逐渐成为行业人士争相追捧的利润焦点。随着大数据时代的来临,大数据分析也应运而生。大数据分析就是将海量碎片化的信息数据能够及时地进行筛选、分析,并最终归纳、整理出企业需要的决策资讯,从而使企业在市场上拥有更强的竞争力和不断创新的能力。对于拥有巨大价值和能量的大数据,企业如何面对信息时代的冲击和进行管理转型成为必须做出的选择。因此,如何运用已有的先进数据分析技术寻求有效的大数据分析、决策挖掘和可视化效果展现已成为当今企业运营和大数据
2、技术发展的重中之重。Python以其清晰划一的风格、优秀的简洁性、易读性、可扩展性和易维护性等优点,已经成为目前最受欢迎的程序设计语言之一。PyIhon作为多功能编程语言,内置丰富易用的数据分析工具包,同时可支持多种第三方数据分析工具包,可实现强大的大数据分析功能,综合性能优异。本实训项目将使用Python完成影评大数据分析,充分锻炼学生的Python编程能力和数据分析能力,掌握以Python大数据分析师职业岗位为核心的关键职业技能。二、实训内容本项目的实训内容主要包括:掌握HadOoP平台环境部署与基本配置,了解基于大数据计算平台的常见应用。综合利用numpy、pandas、matp1ot1
3、ibscikit模块和MaPRedUCe技术、分布式存储系统HDFS、分布式计算框架MaPRedUCe/Yarn、数据仓库Hive、Python等开发语言工具和技术,并匹配和连接数据源,实现大数据的采集,提取、清洗、转换、分析、挖掘等操作,得出有益于企业发展的运营决策关联信息,并对数据分析结果且实现进行丰富直观的可视化效果呈现。三、实训目标1 .掌握Hadoop平台安装部署和基本配置。2 .掌握HDFS常用操作命令(查询文件类别、上传、删除文件、查询HDFS基本统计信息)。3 .了解规则文件数据和关系型数据库数据抓取以及数据同步(同HadoOP/Hive数据同步)4.掌握HiVe数据仓库导入、
4、导出以及同HadooP数据文件的转换,实现HiVe数据管理常用命令。5 .能够通过Python编程,使用streaming和MaPRedUCe机制实现数据的抓取。6 .掌握基于MapReduce的HDFS文件系统的文件数据的数据查询、整理和计算。7 .能够灵活运用Python和HadooP大数据平台相关技术,实现对企业大数据的采集,提取、清洗、转换、的分析、挖掘和可视化展现的完整流程、系统设计和程序研发等职业技能,具备从事Python数据分析师、PythOn研发工程师等岗位的职业能力。四、知识储备(一)Hadp生态系统 经过多年的发展形成了Hadoop1.X生态系统,其结构如下图所示: HDF
5、S-Hadoop生态圈的基本组成部分是Hadoop分布式文件系统(HDFS)。HDFS是一种分布式文件系统,数据被保存在计算机集群上,HDFS为HBase等工具提供了基础。 MapReduceHadoop的主要执行框架是MapReduce,它是一个分布式、并行处理的编程模型,MapReduce把任务分为map(映射)阶段和reduce(化简)。由于MapReduce工作原理的特性,Hadoop能以并行的方式访问数据,从而实现快速访问数据。 Hbase-HBase是一个建立在HDFS之上,面向列的NoSQ1数据库,用于快速读/写大量数据,HBase使用Zookeeper进行管理。 Zookeep
6、er一用于Hadoop的分布式协调服务。Hadoop的许多组件依赖于Zookeeper,它运行在计算机集群中,用于管理HadOoP集群。 Pig它是MapReduce编程的复杂性的抽象。Pig平台包括运行环境和用于分析Hadoop数据集的脚本语言(Pig1atin),其编译器将Pig1atin翻译成MapReduce程序序列。 HiveHiVe类似于SQ1高级语言,用于运行存储在HadoOP上的查询语句,HiVe让不熟悉MapReduce开发人员也能编写数据查询语句,然后这些语句被翻译为I1adoop上面的MaPRedUCe任务。像Pig一样,HiVe作为一个抽象层工具,吸引了很多熟悉SQ1而
7、不是JaVa编程的数据分析师。 SqoOP是一个连接工具,用于在关系数据库、数据仓库和HadooP之间转移数据。Sqoop利用数据库技术描述架构,进行数据的导入/导出;利用MaPRedUCe实现并行化运行和容错技术。F1Ume提供了分布式、可靠、高效的服务,用于收集、汇总大数据,并将单台计算机的大量数据转移到HDFS。它基于一个简单而灵活的架构,并提供了数据流的流。它利用简单的可扩展的数据模型,将企业中多台计算机上的数据转移到Hadoop中。(二)MapReduce工作机制介绍MaPRedUCe采用“分而治之”的思想,把对大规模数据集的操作,分发给一个主节点管理下的各个分节点共同完成,然后通过
8、整合各个节点的中间结果,得到最终结果。简单地说,MaPRedUCe就是任务的分解与结果的汇总“。在HadOoP中,用于执行MaPRedUCe任务的机器角色有两个:一个是JobTraCker;另一个是TaSkTraCker,JObTraCker是用于调度工作的,TaSkTraCker是用于执行工作的。一个HadooP集群中只有一台JobTraCker。在分布式计算中,MaPRedUCe框架负责处理并行编程中分布式存储、工作调度、负载均衡、容错均衡、容错处理以及网络通信等复杂问题,把处理过程高度抽象为两个函数:map和reduce,map负责把任务分解成多个任务,reduce负责把分解后多任务处理
9、的结果汇总起来.其大致流程如下图:InputSp1ittingMappingShuff1ingReducingFina1resu1t1、假设一个文件有三行英文单词作为MapReduce的InPUt(输入),这里经过SP1itting过程把文件分割为3块。分割后的3块数据就可以并行处理,每一块交给一个map线程处理。2、每个map线程中,以每个单词为key,以1作为词频数VaIUe,然后输出。3、每个InaP的输出要经过ShUff1ing(混洗),将相同的单词key放在一个桶里面,然后交给reduce处理。4、reduce接受到ShUffIe后的数据,会将相同的单词进行合并,得到每个单词的词频数
10、,最后将统计好的每个单词的词频数作为输出结果。上述就是MapReduce的大致流程,前两步可以看做map阶段,后两步可以看做reduce阶段。()hive介绍hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的SqI查询功能,可以将SqI语句转换为MaPRedUCe任务进行运行。其优点是学习成本低,可以通过类SQ1语句快速实现简单的MaPRedUCe统计,不必开发专门的MaPRedUCe应用,十分适合数据仓库的统计分析。HiVe是建立在Hadoop上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ET1),这是一种可以存储
11、、查询和分析存储在Hadoop中的大规模数据的机制。HiVe定义了简单的类SQ1查询语言,称为HQ1,它允许熟悉SQ1的用户查询数据。同时,这个语言也允许熟悉MaPRedUCe开发者的开发自定义的mapper和reducer来处理内建的mapper和reducer无法完成的复杂的分析工作。hive与关系型数据库有以下区别:1hiVe和关系数据库存储文件的系统不同,hive使用的是hadoop的In)FS(hadoop的分布式文件系统),关系数据库则是服务器本地的文件系统:2. hive使用的计算模型是apreduce,而关系数据库则是自己设计的计算模型;3. 关系数据库都是为实时查询的业务进行
12、设计的,而hive则是为海量数据做数据挖掘设计的,实时性很差;实时性的区别导致hive的应用场景和关系数据库有很大的不同;4. Hive很容易扩展自己的存储能力和计算能力,这个是继承hadoop的,而关系数据库在这个方面要比数据库差很多。(四)python数据分析常用库介绍1.Numpy对于科学计算,它是PythOn创建的所有更高层工具的基础。以下是它提供的一些功能:(1) .N维数组,一种快速、高效使用内存的多维数组,它提供矢量化数学运算。(2) .你可以不需要使用循环,就对整个数组内的数据行标准数学运算。(3) .非常便于传送数据到用低级语言(如C或C+)编写的外部库,也便于外部库以NUm
13、Py数组形式返回数据。NUmPy不提供高级数据分析功能,但有了对NUmPy数组和面向数组的计算的理解,能帮助你更有效地使用像Pandas之类的工具。 2.ScipySCiPy库依赖于NUmPy,它提供便捷和快速的N维向量数组操作。SCiPy库的建立就是和NUmPy数组一起工作,并提供许多对用户友好的和有效的数值例程,如:数值积分和优化。SCiPy提供模块用于优化、线性代数、积分以及其它数据科学中的通用任务。 3.PandasPandaS包含高级数据结构,以及和让数据分析变得快速、简单的工具。它建立在NUmPy之上,使以NUmPy为中心的应用变得简单。(1) .带有坐标轴的数据结构,支持自动或明
14、确的数据对齐。这能防止由于数据没有对齐,以及处理不同来源的、采用不同索引的数据而产生的常见错误。(2) .使用PandaS更容易处理缺失数据。(3) .合并流行数据库(如:基于SQ1的数据库)中能找到的关系操作。PandaS是进行数据清洗/整理(CIatamunging)的最好工具。 4.Matp1ot1ibMatIP1Ot1ib是PythOn的一个可视化模块。它让你方便地制作线条图、饼图、柱状图以及其它专业图形。使用MaIP1oI1ib,你可以定制所做图表的任一方面。在IPy1hon中使用时,MatPIOt1ib有一些互动功能,如:缩放和平移。它支持所有的操作系统下不同的GU1后端(back
15、ends),并且可以将图形输出为常见地矢量图和图形格式,如:PDF、SVGsJPG、PNG、BMP和G1F等。 5.Scikit-IearnSCikitTearr1是一个用于机器学习的PyIhor1模块。它建立在SCiPy之上,提供了一套常用机器学习算法,让使用者通过一个统一的接口来使用。SCikitTearn有助于你迅速地在你的数据集上实现流行的算法。看一下SCikitTearn中提供的算法列表,你就会马上意识到它包含了许多用于标准机器学习任务的工具,如:聚类、分类和回归等。(五)线性回归(Iinearregression)所谓线性回归模型就是指因变量和自变量之间的关系是直线型的。回归分析预
16、测法中最简单和最常用的是线性回归预测法。同归分析是对客观事物数量依存关系的分析是数理统计中的一个常用的方法,是处理多个变量之间相互关系的一种数学方法。在现实世界中,我们常与各种变量打交道,在解决实际问题过程中,我们常常会遇到多个变量同处于一个过程之中,它们之间互相联系、互相制约。常见的关系有两种:一类为“确定的关系”即变量间有确定性关系,其关系可用函数表达式表示。例如:路程s,时间3与速度V之间有关系式:s=vt,另外还有一些变量。他们之间也有一定的关系,然而这种关系并不完全确定,不能用函数的形式来表达,在这种关系中,至少有一个变量是随机的。例如:人的身高与体重有一定的关系,一般来讲身高高的人体重相对大一些.但是它们之间不能用一个确定的表达式表示出来。这次变量(或至少其中有一