版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 计算机与数据科学学院2019 年 12 月 17 日目录12 2 3p451 1.1 开发目的随着计算机技术以及互联网的快速发展特别是网络的普及,金融、通信等大众行业对信息的需求越来越高,待处理的数据量也越来越大。与此同时,人们对复杂查询操作能力的需求以及高性能联机事务处理能力也在不断提高,分析核心数据成为了公司发展的关键点,但是公司内部的核心数据原始文件庞大,目前大部分是通过人工分析得出结论,因此分析处理海量数据成为待解决的问题。由于公司内部的许多核心数据是必须要产生并且加以分析的,而众多的公司系统则对产生和分析数据造成了相当大的困难,一方面,大规模的数据需要强大的运算能力才能够加以分析,
2、传统的单机处理已经不能够满足当前业务发展的需求,另一方面,众多的业务系统,使得众多数据的处理和分析更加困难,公司内部存在着手工分析分布式系统数据结果的现状不能够得到改善,工作效率严重受到影响。因此,企业迫切的需要一个可以大规模集中处理和分析展现数据的系统模式,统筹规划庞大的数据,实现高效处理。解决问题:此设计使用 Hadoop的相关技术和 HDFS文件系统,分析京东的需求,将海量原始数据通过 Windows下的 Mysql和 Linux Mysql转换成 HDFS数据,通过 Hive据进行可视化,可视化通过交互式视觉表现的方式来帮助企业探索和理解复杂的数据。可视化与可视分析能够迅速和有效地简化
3、与提炼数据流,有助于使用者更快更好地从复杂数据中得到新的发现,成为用户了解复杂数据、开展深入分析不可或缺的手段。1.2 开发语言表编程语言文本标记语言数据库语言Mysql SQLHiveQL11.3 开发环境表文件管理系统HDFS22 2.1 数据处理数据处理把数据转换成便于观察分析、传送或进一步处理的形式。以便从大量的原始数据中抽取部分数据,推导出对人们有价值的信息以作为行动和决策的依据。利用计算机科学地保存和管理经过处理(如校验、整理等)的大量数据,以便人们能方便而充分地利用这些宝贵的信息资源。导入复制导入 入图2.2 数据可视化数据信息会员占比京东销售数据总计平台分类用户印象印象榜TOP
4、5图 22.2.1数据信息商品类型手机型号手机网络图2.2.2会员占比企业会员钻石会员金牌会员银牌会员铜牌会员注册会员图2.2.3京东销售数据总计云南江苏北京上海重庆河北河南辽宁湖南黑龙江图32.2.4平台分类安卓手机微信购物京东PC 端QQ购物Iphone图2.2.5用户印象系统流畅外观漂亮电池耐用待机时间照相不错分辨率高国民手机能齐全价比高图2.2.6印象榜TOP5功能齐全性价比高系统流畅外观漂亮图43 在本次的系统中主要用到了 EclipseMySQLHive Sqoop 传输数据;用Java API 连接数据库;用Eclipse 写 Java 代码,操作Hive 数据库,导出数据;用获
5、得的数据,利用 Echarts 平台进行展示数据可视化。相关技术与原理介绍如下:3.1 HadoopHadoop 是一个由 Apache 基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop 的框架最核心的设计就是:HDFS 和 MapReduceHDFS 为海量的数据提供了存储,则 MapReduce 为海量的数据提供了计算。Hadoop原本来自于谷歌一款名为MapReduceMapReduce框架可以把一个应用程序分解为许多并行计算指令,跨大量的计算节点运行非常巨大的数据集。使用该框架的一个典型例子就是
6、在网络数据上运行的搜索算法。Hadoop 最初只与网页索引有关,迅速发展成为分析大数据的领先平台。目前有很多公司开始提供基于 Hadoop 的商业软件、支持、服务以及培训。Cloudera 2008 年开始提供基于 Hadoop 的软件和服务。GoGrid 2012 Cloudera合作加速了企业采纳基于 Hadoop 应用的步伐。Dataguise 公司是一家数据安全公司,同样在 2012 年该公司推出了一款针对 Hadoop 的数据保护和风险评估。Hadoop 地在 Hadoop 性、高效性、高容错性、低成本优点。Hadoop 得以在大数据处理应用中广泛应用得益于其自身在数据提取、变形和加
7、载(ETL)方面上的天然优势。Hadoop 的分布式架构,将大数据处理引擎尽可能的靠近存储,对例如像 ETL 这样的批处理操作相对合适,因为类似这样操作的批处理结果可以直接走向存储。Hadoop 的MapReduce 功能实现了将单个任务打碎,并将碎片任务(Map)发送到多个节点上,之后再以单个数据集的形式加载(Reduce)到数据仓库里。3.2 SqoopSqoop 是一个用来将 Hadoop 5MySQL,Oracle,Postgres Hadoop(Hive)的 HDFS中,也可以将 HDFS的数据导进到关系型数据库中。Sqoop项目开始于 2009年,最早是作为 Hadoop的一个第三
8、方模块存在,后来为了让使用者能够快速部署,也为了让开发人员能够更快速的迭代开发,Sqoop独立成为一个Apache项目。3.3 MySQLMySQL MySQLAB 公司开发,目前属于Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL 是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的 SQL语言是用于访
9、问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL作为网站数据库。3.4 HiveHive是一种数据仓库架构,建立在 Hadoop之上。主要作用:存储、查询、分析存放在 HDFS/HBase中的大规模数据。Hive有自己的类 SQL,即HQL,它将SQL解析为 M/RJob,然后在Hadoop 上执行。允许开发自定义 Mapper 和 Reducer 来处理内建的 Mapper 和ReducerUDF)。而启动MapReduce是一个高延迟的一件事,每次提交任务和
10、执行任务都需要消耗很多时间,这也就决定 Hive只能处理一些高延迟的应用。存储原理:Hive的数据存储在 HDFS上,Hive的表其实就是 HDFS的目录,Hive没有自己的数据存储格式,存储结构主要包括:数据库、文件、表、视图、索引。Hive默认可以直接加载 textHive的数据的列分隔符与行分隔符,Hive即可解析数据。所以,往 Hive表里面导入数据只是简单的 HDFS系统中,那么是将数据复制到表所在的目录中)。6Hive中主要包含:Table(表),ExternalTable(外部表),Partition(分区),Bucket(桶)几种数据模型。Hive和 hadoop的集群关系:H
11、ive相当于是Hadoop的客户端工具,部署时不一定放在集群管理节点上。系统架构:用户接口包括 CLI(即 shell)、JDBC/ODBC、WebUI。Hive 是一种数据仓库(DataWarehouse),数据仓库将不同的数据库中的数据源整合到一起进行数据分析。数据仓库的输入方是各种各样的数据源,最终的所以靠的是 ETLExtractTransform,数据转换,把原始数据转换成期望的格式和维度。如果用在数据仓库的场景下,Transform 也包含数据清洗,清洗掉噪音数据。Load,数据加载,把处理后的数据加载到目标处,比如数据仓库。Hive的使用:(1)命令行方式 CLIshell脚本文
12、件方式:实际生产中用的最多的方式。(3)JDBC方式:HiveServer。(4)web GUI接口:hwi方式3.5 EchartsECharts 是一个使用 JavaScript 实现的开源可视化库,涵盖各行业图表,满足各种需求。遵循 Apache-2.0 开源协议,免费商用。ECharts 兼容当前绝大IE8/9/10/11ChromeFirefoxSafari等)及兼容多种设备,可随时随地任性展示。ECharts 1)丰富的可视化类型: 提供了常规的折线图、柱状图、散点图、饼图、K 线图,用于统计的盒形图,用于地理数据可视化的地图、热力图、线图,用于关系数据可视化的关系图、treema
13、p、旭日图,多维数据可视 BI2)多种数据格式无需转换直接使用:内置的 dataset4.0+二维表,key-value 等多种格式的数据源,此外还支持输入 TypedArray 格式的3: 4.0+),配合各种细致的优化,ECharts 能够展现千万级的数据量。(4)移动端优化:针对移动端交互做PC端5)多渲染方案,跨平台使用:支持以 Canvas、SVG(4.0+)、VML 的形式渲染图表。(6)深度的交互式数据探索:提供了 tooltip、数据刷选等开箱即用的交互组件,可以对数据进行多维度数据筛取、视图缩放、展示细节等交互77)多维数据的支持以及丰富的视觉编码手段: 对于传统的散点图等,
14、传8:数据的改变驱动图表展现的改变。(9)绚丽的特效:针对线数据,点数据等地理数据的可视化提供了吸引眼球的特10)通过GL实现更多更强大绚丽的三维可视化:在 VR,大屏场景里实现三11)无障碍访问(4.0+:支持自动根据图表配置项智能生成描述,使得盲人可以在朗读设备的帮助下了解图表内容,让图表可以被更多人群访问!3.6 JDBCJDBC(Java数据库连接)是一种用于执行SQL语句的 JavaAPI,可以为多种 Java语言编写的类和接口组成.JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,JDBC实现了所有这些面向标准的目标并且具有简单,严格类
15、型定义且高性能实现的接口。流程原理:12、在Java程序中加载驱动程序。3 DriverManager类创建数据库连接对象 Connection。DriverManager类作用于 Java程序和 JDBC驱动程序之间,用于检查所加载的驱动程序是否可以建立连接,然后通过它的 getConnection方法,根据数据库的 URL、用户名和密码,创建一个 JDBC Connection 对象。4、创建Statement对象:Statement 类的主要是用于执行静态 SQL语句并返回它所生成结果的对象。通过 Connection 对象的 createStatement()方法可以创建一个State
16、ment对象。5、调用 Statement对象的相关方法执行相对应的 SQL 语句:通过 execuUpdate()方法用来数据的更新,包括插入和删除等操作。6、关闭数据Connection的 close()方法及时关闭数据连接。主要用途:简单地说,JDBC 可做三件事:与数据库建立连接、发送 操作数据库的语句并处理结果。3.7 HDFSHadoop 由许多元素构成。其最底部是 Hadoop Distributed File System(HDFS),它存储 Hadoop 集群中所有存储节点上的文件。HDFS(对于本文)的8上一层是 MapReduce JobTrackers 和 TaskTr
17、ackers 对 Hadoop分布式计算平台最核心的分布式文件系统 HDFS、MapReduce处理过程,以及数据仓库工具 Hive和分布式数据库 Hbase的介绍,基本涵盖了 Hadoop分布式平台的所有技术核心。对外部客户机而言,HDFS就像一个传统的分级文件系统。可以创建、删除、移动或重命名文件,等等。但是 HDFS 的架构是基于一组特定的节点构建的,这是由它自身的特点决定的。这些节点包括 NameNode(仅一个),它在 HDFS内部提供元数据服务;DataNode HDFS NameNode,因此这是 HDFS 的一个缺点(单点失败)。存储在 HDFS 中的文件被分成块,然后将这些块
18、复制到多个计算机中(DataNode)。这与传统的 RAID 架构大不相同。块的大小(通常为 64MB)和复制的块数量在创建文件时由客户机决定。NameNode 可以控制所有文件操作。HDFS内部的所有通信都基于标准的 TCP/IP协议。94 4.1 数据处理实现1、将海量数据()导入到 Window Mysql(表 new1),然后导出为 sql 文件;2、复制到 Linux 共享文件夹里(以防虚拟机卡死)然后启动 Mysql 服务: 进入 Mysql 命令行: sql 文件导入数据到 Linux Mysql 中:查看数据库中是否成功导入: 3、利用 Sqoop 上传 Mysql 数据到 H
19、DFS(input2 文件夹不能存在: 1查看 HDFS 数据是否导入成功: 启动 Hive 的两个服务使用默认数据库 default 创建表 HDFS 数据导入 Hive: 104.2Java代码设计实现由于数据源庞大,对数据分析造成很大困难。利用 Eclipse Jee Oxygen 工具查询对可视化分析有价值的数据,本设计共定义五个 Java 类,如下:Area.javaDatanum.javaMember.javaUserimpression.javaUserplat.java。它们分别对应可视化各省或直辖市销售数据总计、京东销售数据总计、会员占比、用户印象、平台分类这五模块内容。 =
20、 11= = = + =12= =13= = = = +/4、Userimpression.java(数据部分省略) =14= = = = = = = = =;15= *了= 东 =16= 东 = = = = + 4.3 可视化实现工作中,无论是哪一种场景,都要接触数据,接触表达。数据可视化就是表+多数企业正逐渐从传统的流程式管理方式过渡到基于数据的管理方式。这是一种必然趋势,数据可视化能够帮助分析的人对数据有更全面的认识,获得更有商业价值的洞见和价值。对于本课设数据可视化,使用图表类插件:Echarts。JavaScript 是一种高级的、多范式、解释型的编程语言,是一门基于原型、JavaS
21、cript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种17广泛用于客户端 Web HTML JavaScript 是一种动态、弱类型、基于原型的语言,内置支持类。CSS(层叠样式表),控制HTML 语句样式。例如,可以改变字符的大小,背景的颜色,图像的排列等。 /* /* 3 /*18 19 ; ; 20 215 5.1 数据处理页面图图图图22图5.2 数据库页面图图23图图图245.3 可视化页面5.3.1 数据信息模块每件商品的来源、性能皆不相同,其基本信息能帮助众多消费者了解商品,根据自身需求购买产品。本系统是在京东销售的一款华为 4G 智能手机展开研究的。图
22、5.3.2 会员占比模块购买产品的消费者阶层不同,决定着产品以后主要的面向对象,提前为不同企业会员、钻石会员、金牌会员、银牌会员、铜牌会员、注册会员。图255.3.3 京东销售数据总计模块对各省份及直辖市销售情况进行统计和排名,可以直观观察出各地消费水平和此产品在不同地区的受欢迎程度。此分析有利于京东预测下期重点在哪些地区投放产品,销售量大的地方提前在节日前存储物资。图5.3.4 平台分类模块通过对消费者购买途径分析可以直观看出大众消费的主要平台,从而加大对此途径的宣传力度,提高销售量。图5.3.5 用户印象模块对用户印象进行统计分析可以直观反映出产品的性能,对产品性能不足的地方加以改善,进行
23、优化,使得产品受到更多消费者的青睐。26图5.3.6 印象榜模块对消费者使用产品的印象进行排名反映出消费者对此产品的满意程度,使用本产品的重点关心方面,显示出此商品的优点,商家可以通过分析结果在销售宣传时突出优点来提升销售量。图5.3.7 可视化整体界面对海量数据进行处理、筛选,对有用信息进行分析和可视化。此可视化界面可以直观看出商品销售总量和各地区消费能力、消费者购买途径、用户评价和产品主要销售对象。通过直观显示方便商家企业对各种情况进行预测,根据实际情况实时调整销售手段。图27此次课程设计从最初的茫然,到慢慢的进入状态,再到对思路逐渐的清晰,整个写作过程难以用语言来表达。历经两周的奋战,紧张而又充实的课程设计终于落下了帷幕。回想这段日子的经历和感受,我感慨万千,在这次课程设计的过程中,我拥有了无数难忘的回忆和收获。本文对海量数据分析系统的代码架构进
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 等比数列的前n项和公式(第二课时)课件-高二上学期数学人教A版选择性
- 托管社保账户合同范本
- 大麦种植产销合同范本
- 学生床铺购买合同范本
- 承包物流公司合同范本
- 学校与医院实习协议书
- 学校协会赞助合同范本
- 娱乐服务合作合同范本
- 如何填写劳动合同范本
- 批发门市购销合同范本
- 2025 AHA 心肺复苏与心血管急救指南 - 第6部分:儿童基本生命支持解读
- 2026年大庆医学高等专科学校单招职业技能测试模拟测试卷附答案
- 中央财经大学金融学院行政岗招聘1人(非事业编制)参考笔试题库及答案解析
- 临床试验风险最小化的法律风险防范策略
- 2025年酒店总经理年度工作总结暨战略规划
- 2025年三基超声试题及答案
- 广场景观及铺装工程施工方案
- 贵州兴义电力发展有限公司2026年校园招聘备考题库及一套完整答案详解
- 《基础护理学(第七版)》考前强化模拟练习试题库500题(含答案)
- 《水电工程水生生态调查与评价技术规范》(NB-T 10079-2018)
- 湖南省乡镇卫生院街道社区卫生服务中心地址医疗机构名单目录
评论
0/150
提交评论