




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要为了解决网络使用过程中产生恶意流量而影响用户体验及网络安全的问题,设计了网络流量分析系统。应用了离线数据分析的方法,采用Hadoop生态系统、WireShark捕获报文工具和数据可视化图表完成了对TCP/IP协议网络流量进行储存和分析的设计。在Windows系统和Hadoop平台相结合的环境下进行了开发实现,结果表明:该系统能够解决恶意流量对网站或企业内网造成安全影响及网络资源占用的问题,具有可直接观测流量走势和存储大小可扩展的优势。关键词:Hadoop;网络安全;恶意流量;网络流量分析AbstractInordertosolvetheproblemthattheuserexperienceandnetworksecurityareaffectedbythemalicioustrafficintheprocessofnetworkuse,anetworktrafficanalysissystemisdesigned.ThedesignofTCP/IPnetworktrafficstorageandanalysisiscompletedbyusingthemethodofofflinedataanalysis,Hadoopecosystem,WireSharkcapturingmessagetoolanddatavisualizationchart.Theresultsshowthatthesystemcansolvetheproblemsofmalicioustrafficcausingsecurityimpactonwebsitesorintranetsandoccupyingnetworkresources.Ithastheadvantagesofdirectobservationoftraffictrendsandscalabilityofstoragesize.Keywords:Hadoop;Networksecurity;Malicioustraffic;Networktrafficanalysis目录TOC\o"1-2"\h\u第一章课题绪论 第一章课题绪论1.1研究背景和意义介绍近年来,互联网的发展速度一年比一年快,与此同时,网络流量每天都处于快速增长的状态,网络的规模和结构也变得日渐庞大且复杂,而面对采样时间的增加,数据存储量和计算量与日俱增,需要有一些有效工具可以对其进行管理。此时,对于海量网络流量数据的收集存储和统计分析已成为一个急需解决的问题。除此之外,近年来还有一个涉及面很广泛的问题值得我们留意,那便是网络安全。大多数情况下,网络安全性问题都是人为引起,攻击者总是试图获得某些好处,这样的网络安全事件已经越来越多,慢慢地在各个领域渗透,并逐渐影响受害者的正常生活,比如个人信息被盗取、网站遭受攻击等,严重的还会破坏公共设施甚至是危害国家的某些重要系统,假如是后者,那带来的经济损失更是不可估量,同时还会严重影响社会的繁荣稳定。不论是个人还是企业,甚至是国家,我们都应该重视网络安全,重视“大数据隐私”。当前社会,对于网络流量的储存和分析已经越来越重要了,而对于统计出来的流量进行安全检测和分析更是一个重要的环节,就以网站来举例,对网站分析时我们会不断从网站上获取最新的流量数据,而在这过程中我们其实就已经对网站做了一个初步的监控,我们可以上实时地了解网站的网络流量变化,并通过相关的指标检测是否受到安全攻击,而在企业中,除了相应的安全检测,还可以对内部流量走向做出分析并合理安排,本系统就是用于这一类情景进行网络流量的统计和分析,进而通过相应的指标检测网络安全性,这也是本课题的意义所在。1.2网络流量及网络攻击(1)网络流量网络流量即为上网过程中传输的数据流量。网络是当今互联网时代的基础设施,信息传递、沟通交流、办公服务等都需要依靠网络来完成,网络的质量直接影响了社会生活和经济发展的质量。伴随着网络的广泛应用、网络接入设备的增加、网络拓扑的结构复杂化,网络流量正处于不断增长的过程中,为有效的管理网络、维护网络安全,需要对网络进行测量和分析。与些同时,基于传统的单机串行方式的数据算法在时间复杂性和空间复杂性上遇到了瓶颈,同时平台信息的存储能力和计算能力已经很难满足我们在实际生活中应用的要求,退而求其次采用数据抽样技术又会明显降低我们测量的准确性和实用性,所以,对于如何高效、快速的对网络流量进行测量、存储和分析是当代社会所研究的一个重点,这也是本次研究的意义之一。网络流量攻击流量指的是网络资源,也是防火墙处理能力。而网络流量攻击简单而言指的就是DDoS和DoS等类型的网络攻击,这类网络攻击在生活中我们常遇到就有带宽攻击和应用攻击,通常它的攻击方式就是让大数量的数据包去攻击一台或者多台服务器,目的就是让庞大的数据流量去冲垮服务器,让网站处于非正常状态,使得用户无法正常打开或使用,被攻击的对象还有防火墙和路由器,原理相当。此外,再谈谈CC类连接攻击,它也归属于流量攻击,通俗来讲就是模拟多线程用户直接击打被攻击方要害部位的行为,聪明的攻击者会通过代理服务器和网站的大流量页面进行无休止地连接,浪费网站大量的CPU资源,造成其服务器资源疲于供应。同时,无休止的访问代表无休止的连接,这会造成网络阻塞,影响用户访问网站,而为什么说攻击者聪明呢,代理服务器的加入让人很难发现攻击者的位置对其进行反击,所以说CC是一个强横的流量攻击方式。试想一下,一个不知名的网站有多大的概率遭受网络攻击?若不有利可图,很难有人会浪费大量的时间、精力和资源去攻击一个小网站,得不偿失。在这网络安全维护和攻击并存的时代,越多流量访问的地方才越容易遭受网络流量攻击,一个网站很容易遭受竞争者的嫉妒和破坏,有时过大的流量访问不止意味着你受到广大用户的喜欢和支持,也可能是受到了某种流量攻击。攻击者会根据一系列的漏洞,使用合法的数据请求技术,其中就有我们刚提到过的DDoS攻击,我们说过攻击者是很聪明的,代理服务器的出现让DDoS攻击成为当下网络中最难防御的网络攻击之一,同时它的入门门槛非常低,即使是没有基础的群众都能使用,这就使得那些不同懂技术防护的用户极其容易中招。正因如此,DDoS攻击在经济上带来的损失已经稳居榜首,它造成的影响不容小觑。泛洪攻击常见的泛洪攻击有很多,本论文中主要研究的方向是ARP泛洪攻击。常见的ARP攻击主要有两种,一个是ARP欺骗,另一个则是本流量系统所研究的ARP泛洪攻击,它也被称为拒绝服务攻击。ARP欺骗以盗取数据为目的,通过发送经过伪造的报文去更改网关地址,实现交换网络下的数据嗅探。ARP泛洪攻击则是以捣乱破坏为目的,通过攻击主机,持续发送无法解析的ARP报文,造成设备上的ARP表项溢出,抢占网络带宽和资源,阻碍报文的正常转发。ARP欺骗和ARP泛洪攻击都会影响用户的网络稳定,且容易造成企业和网站的网络事故。假如攻击者想通过这类非法行为获取网站或企业的个人信息的话,造成的利益损失更是不可估量。虽然人们现在对ARP攻击已经有着足够认识,但是对于当前多种多样的ARP攻击,防御能力上还是略有不足。(4)以太网帧攻击在网络中,以太网链路上最底层的含MAC地址的数据包被称为以太网帧,有一种攻击方式源自于它,名为小型帧攻击和巨型帧攻击,它的原理是利用并发送小于40或大于5119的数据包对网络进行攻击,它们可能会成为融合网络的障碍。就以超长帧来举例,如果有一个庞大的数据包在线路上传送,一旦长时间占用线路,就会造成网络延迟,从而影响其他人对线路的使用。而小型帧攻击则是以数量来取胜,影响网络的处理效率。在本系统中就是通过查看数据包长度统计观察这些异常数据包占网络总数据包的百分比来发现是否存在攻击或其他网络问题。1.3研究现状在互联网发展的前数十年中,有许多的网络流量分析工具被广泛应用其中包括WireShark、Snort、SILK、Tcpdump等,不得不说,这些分析工具功能颇多,既有网络测量又有性能测量,既有主动测量又有被动测量,它们的相继出现为网络流量分析做出了巨大的贡献。网络流量以量为主,里面包含着许多重要的网络信息,比如个人用户信息,系统运行信息等。但是近几年来,随着网络数据流量的爆炸式增长,对网络流量分析的处理和捕获变得极其困难,传统的基于单点的网络流量分析方法已经很难满足高并发的场景,因此分布式网络测量的概念也进入了大众的视野。[1]随着云计算技术的出现,Hadoop生态圈成为了当代高速运算和存储的一个热点,传统的单点网络流量统计工具遇到大规模或者大流量同时进行的场景,就变得心有余而力不足,更别说是进行流量分析了。Hadoop平台则很好的突破了这一限制,因为它允许更大范围的网络扩展。Hadoop是一个集群,在企业中,当集群的计算能力不足时,我们只需要往集群中加入一个或多个节点,就可以恢复甚至是加快集群的计算速度,这就很好的避免了花钱再买新机器的问题,可以节省大量成本。在如今的互联网时代,基于Hadoop的网络测量研究仍处于初级阶段,如何利用云计算平台的分布式及其高并发的特性来处理网络流量并且利用这些网络流量进行安全分析是当代网络测量的发展方向,也是本次研究的目标方向。[2]1.4论文结构安排本文一共分为六章,每个章节主要内容如下:第一章首先介绍了本课题的研究背景以及研究意义,接着简要地概括网络流量的含义以及当代网络上经常出现的网络攻击模式和概念,最后总结当前该课题在社会上的研究现状。第二章是对本网络流量系统中使用的开发工具以及Hadoop生态圈相关技术两者的简单介绍。第三章是对本课题的可行性分析、安全性分析以及系统功能分析,最后是流量数据图的展示。第四章是系统的概要设计,即如何收集和存储系统所需要到的数据,并合理地设计各个不同类型的数据库。第五章介绍了本系统中的数据算法是如何实现的,其中包括协议占比算法、协议长度算法、宽带使用占比算法。第六章对系统进行测试,先是对Hadoop平台相关组件的启动测试,然后测试系统连接数据库是否成功。第二章相关背景技术2.1系统开发工具常用的Java开发工具有IDEA,MyEclipse,Eclipse,EditPlus,VSCode等,本次研究使用的是IDEA,全称IntelliJIDEA,IDEA无论是在企业还是教育界都是一致好评,主要用于Java开发。在我的Java学习过程中,IDEA和Eclipse的使用次数比较多,因为它们在功能上比较齐全,不过两者还是存在一定的差别。用惯了Eclipse,MyEclipse的人换成IDEA会有很多不习惯,但是当你开始使用IDEA后会现在,IDEA的功能不可谓不强大,首先是它人性化的代码补全功能,在开发项目的过程中,很多代码的格式都是一样的,都可以快速补全,对于变量的封装在这一块就体现的淋漓尽致。其次是它的操作界面,简洁明了,可以快速查看编程错误,许多小功能也是完善的十分好,在此不做赘述。2.2Hadoop生态圈相关技术的简要介绍(1)HadoopHAHadoop集群是一个对大数据进行存储计算和分析的分布式开源框架,它设备廉价为优势而广受欢迎。Hadoop在分布式系统的体系结构上以分布式文件系统HDFS和计算框架MapReduce为核心构成一个庞大的项目,它的优点是即使用户不了解分布式的底层结构,甚至没有相应的开发基础,依然能够使用Hadoop集群进行数据处理和分析。这几年,大数据处理在互联网中越来越热门,有这一方面技术的人才也越来越吃香,很多人在Java学习地足够深入后都会开始向Hadoop的源码进发,要知道Hadoop是一门实践技术,对提升自己的分布式思维和编程实力具有相当高的学习意义。[3]我们知道元数据是数据的数据,如果元数据发生破坏,整个HDFS就失去了意义,而在HDFS集群中NameNode容易出现单点故障,导致整个集群无法正常使用,那么元数据的备份和集群就高可用在这个时候就显得十分重要了,所以在Hadoop2版本中引入了HA的方案和YARN架构,基于Zookeeper协调服务实现资源管理及失效恢复功能,即实现Hadoop的高可用。HA集群提供方案其实和原有集群相类似,只不过多了一台待机节点,集群通过ZKFC机制进行监控,当原有活动节点出现故障时,待机节点就会进行切换,代替成为活动节点进行动作,同时负责对外提供服务。待机节点通过获取活动节点共享存储的Meta信息,保证数据的完整性,同时两个节点的信息都时刻汇报给ZKFC,随时待命以保证集群正常运行不间断。HadoopHA高可用性集群便是通过系统的可靠性和可维护性来度量的,即无故障时间和平均维修时间[4],从而我们可以得出,当一年的宕机时间越短,集群的高可用性就越高。(2)分布式文件系统HDFSHDFS分布式文件系统意如其名,用来提供底层数据存储支持。大数据时代,设计一个文件系统需要考虑的方面很多,其中就包括存储格式和利用性等。HDFS就旨在能存储大流量数据,并通过分布式的特点存储到多台机器上。前面我们就说过,集群的其中一个优点就是可扩容,这恰好就是HDFS的优点之一,它适合用来存储大文件。HDFS的特点还有很多,就比如它是流式访问数据,保证快速响应用户写入和读取的请求。HDFS建立在Java上,用来储存大规模数据,它的结构严谨,不允许进行改变,不支持动态储存,适合于储存一次后数据不再变动再进行多次分析的场景。所以HDFS最适于执行批次分析,而它最大的缺点就是无法执行实时分析。总的来说,HDFS就是一个分割大流量数据文件进行存储的集群式文件系统,它支持一次写入多次读取、无法交互、不支持任意修改,其设计的目标在于硬件故障常态化、流式数据访问、大数据集、移动计算比移动数据更经济这四点上。(3)HBaseHBase即HadoopDatabase,是根据Google三大论文之一的BigTable概念模式所设计出的一个分布式、列储存形数据库。HBase是基于JavaNoSQL数据库,它允许数据进行变动,本身就是一个应用平台,它适用于随机读写储存在HDFS是的数据,所以HBase的定位是处理毫秒级高并发的大数据的一种OLTP实时数据库。我们可以认为HBase是HDFS的一个包装,它的本质是部署在HDFS的非关系型分布式数据库,不支持事务处理,它的表结构由Row、ColumnFamily、Column、Version和Cell组成,在HBase表中,本身没有数据类型这一说法,(4)HiveHive是建立在Hadoop之上提供SQL方式分析数据的框架,它被称为数据仓库,其本身不负责存储和计算数据,它的原理是通过将SQL语言转換成Mapreduce程序,并提交到Yarn上运行,读取HDFS上数据进行处理完成操作,我们可以理解为Hive一个逻辑表,与HBase有极大的不同。本次研究也是通过使用HQL语句来代替MapReduce进行数据分析,相比于MapReduce,Hive在企业中得到了更加广泛的应用,因为它拥有更友好的接口以及更低的学习成本。此外,Hive数据仓库需要存储的部分有两个,存储数据的地方也有两个,它将数据文件存储在HDFS上,将用于记录Hive中数据库和表信息的元数据则保存在数据库中。默认情况下Hive自己使用Derby数据为师来存储元数据信息,但是我们更推荐把元数据存储在关系型数据库中例如Mysql数据库,因为Derby一次只能打开一个会话,比较适合做本地开发测试,对于高并发的开发情况并不适用,所以在企业中通常都会删除自带的Derby换成其他关系型数据库,本流量系统用的是Mysql数据库。(5)ZookeeperApacheZooKeeper是一个分布式应用程序协调服务,它提供了一种集中式信息存储服务,可以看做是一个数据库。Zookeeper在分布式系统中的地位很高,在高并发的场景中,单台服务器无法撑起多线程进行同步访问,这个时候就需要到分布式锁来协同共享资源。基于数据库和Redis实现分布式锁没有Zookeeper锁来的简单可靠和高性能,所以它对于Hadoop集群十分重要,常被用来封装易出错的服务。Zookeeper主要应用在Hadoop和Hbase上,它的底层算法决定了它能用来保证高可用集群的协调和一致性,其中就包括ZKFC故障转移机制和Regionserver管理,它们都是依靠Zookeeper来协调数据。除此之外,Zookeeper还可以在它自带的文件系统里处理数据管理问题,比如命令服务和管理配置。[5]因此,在本流量分析系统中,Zookeeper除了用来协调Hadoop和HBase之外,还用来管理Flume集群的Agent配置和Kafka集群的Broker服务器,充当存储元数据和交换集群信息的工具,提高集群效率。(6)FlumeFlume是Cloudera开发的分布式日志收集系统,直到现在共发行了两个版本分别为FlumeOG和FlumeNG,均可用于日志数据的采集和解析。Flume比较强调用户的自定义开发,单单是配置种类常用的就有五种,其中包括netcatsource监听客户端、syslongtcpsource监控网络进行数据收集、使用httpsource监控浏览器、execsource进行日志数据收集并通过HDFS保存、spoolsouce监控文件夹新增文件进行日志数据收集并通过fileroolsink进行保存等方式,综合来看,它更偏重于数据的传输,数据存储在HDFS或HBase上。Flume由内置的Source、Channel和Sink组成,它们三者都能进行自定义组合并通过event格式的消费数据进行传输。Flume经常和Kafka组成集群使用,在本系统中,共有三台Flume机器,有两负责收集数据并实现负载均衡,另一台负责汇总数据并将不同的数据发送给Kafka消息中间件,保证数据的顺利传输和完整性。(7)KafkaKafka是一个分布式消息订阅系统,官方称之为实时数据处理系统。在系统中,当一个程序向另一个程序发送消息,就会形成一个通道,过程简单明了,但是当程序开始变多起来,他们之间的通信链路就会像蜂窝一般复杂。在这种通信系统中,每个人都做着独立的工作,这样就会赞成很多其他的问题。第一,可能发送重复信息,造成资源浪费。第二,当信息过多无法同步时容易造成信息的丢失。第三,各个程序之间相互依赖耦合度太高。这时,一个消息发布和订阅系统就显得很重要了,当接收者需要时再读取消息,这就是kafka的作用了,保证消息的完整性,同时充当一个消息中间站。Kafka的一个服务器称为一个broker,broker中有一个或多个主题topic,发布者发送各种主题,broker为其排好偏移量,消费者就可以选择需要的topic下的指定偏移量接收消息。在topic中有一个或多个分区partition,一条消息包含了主题,分区,键和值四个部分,分区器会根据算法指引消息被接收。在一个分区里,数据偏移量是唯一的,消费者需要按顺序读取指定偏移量的数据。Kafka支持MQT,创建一个topic是一个很重的操作,Kafka仅仅可以作为MQT的输入。Kafka提供了流式计算可以做一些数据的初步清理。Kafka是落地磁盘,顺序读取磁盘的速度要远高于内存读取。第三章需求分析3.1可行性分析基于Hadoop平台的网络流量分析系统主要目的分析网络流量,通过数据捕获软件对收集的数据包进行统计分析,并将最后的分析结果通过图表形式显示在HTML5页面上。在确定系统的开发目标后,对系统做出以下几方面可行性分析。(1)技术可行性:系统主要使用数据捕获软件+Hadoop下各生态组件+数据库+JAVA+HTML5结合的形式进行开发。对于数据捕获软件,目前市场上对其版本功能已多次完善,界面简洁易懂且功能强大。Hadoop旗下各生态组件符合分布式的开发要求,并专注于大数据的存储和计算,尤其是在Cloudera公司推出CDH后,兼容性和稳定性大大提升。而JAVA和HTML更是广泛的应用在企业开发中,二者结合后,不论是在后台开发,前端设计亦或是数据库的调用开发,都趋于成熟。综上所述,本系统具备开发的技术可行性。(2)社会可行性:
当代社会,传统公司已开始跟不上潮流,在未来,互联网公司才是大趋势。互联网公司中,分布式必将盛行,网络安全和管理更是重中之重,互联网公司是离不开网络的,对于网络流量的操作和管理分析更是不可或缺。尤其是在成本上,Hadoop具有极高地位,本系统既易于操作,又易于观察,成本和可行性更是一大亮点。综上所述,本系统具备开发的社会可行性。(3)法律可行性:本系统作为一个自主研发系统,可在各企业中广泛应用,开发环境及代码都已开源,且数据来源于企业本身,所以不存在违法犯法行为。综上所述,本系统具备开发的法律可行性。3.2安全性分析Hadoop是一个集群,通常都用于企业中,在最初的情况下多用于对大量公共的数据进行管理,用户间的数据信息都能做到很好的保密,所以并不需要考虑到保密安全性。但是随着大数据的发展,内部的用户安全威胁也受到了关注,无论是恶意删除数据或者善意的犯错误删,都可能造成极大的损失。所以本次研究中,对内部保密做了进一步的修改,系统首先对用户配置进行设置,不发放普通用户的root权限,只对可信赖的个别用户发放root密码。同时,系统对文件的位权限控制进行了修改,将HDFS文件包括本地文件的权限组所有者都改为root用户,防止普通用户进行数据删除。[6]3.3系统功能分析本系统的实现功能是通过对Hadoop集群对TCP/IP协议数据包的离线分析,主要的功能是基于引入的百度Echarts图表实现页面可视化。集群设计由三台服务器构建组成,主节点Bigdata-01、从节点Bigdata-02和Bigdata-03,同时在从节点Bigdata-02上进行HA待机节点设置。集群通过从节点保存数据,然后在主节点上完成分析操作。此外,Hadoop集群可以根据实际需要对节点机器进行扩展。前端页面共有三种图表,分别为饼状图,柱形图,折线图。通过饼状图上的协议类型,选择任意个数的协议,可以更直观的看到协议所占百分比,而折线图和柱形图能实现很直观的查看数据。3.4数据流量图协议占比柱形图,如图3-1所示。图3-1协议占比柱形图协议长度折线图、协议长度数据视图分别如图3-2,图3-3所示。图3-2协议长度折线图图3-3协议长度数据视图宽带使用占比饼状图,如图3-4所示。图3-4宽带使用占比饼状图第四章概要设计4.1系统各层设计(1)数据源层使用Wireshark对本机2019-12-2517:00-18:00进行一个小时的数据包捕获,其中数据源层的数据结构为:No+Time+Source+Destination+Sourceport+Destinationport+Protocol+Length+Info,如图4-1所示。图4-1Wireshark捕获内容(2)采集层考虑到数据包以Pacp格式文件既不是按行处理的文体格式也不有固定长度的二进制文件,所以我们通过csv文件格式保存,再另存为带空格符格式的txt文档,最后分别保存在Hadoop集群两台从节点DataNode下的log日志文件中,如图4-2和图4-3所示。图4-2从节点Bigdata02下的日志内容图4-3从节点Bigdata03下的日志内容(3)存储层DataNode下的log日志文件我们以Flume+Kafka+Hbase的集群模式导入到HBase数据库中保存。此时,本系统模拟的是实际企业场景,所以用代码将日志文件逐行打印模拟日志产生。并使用Flume下的Spoolsources模式,监控文件夹新增文件进行日志数据收集,日志产生过程如图4-4,图4-5所示。Flume+Kafka收集系统过程如图4-6,图4-7,图4-8,图4-9,图4-10,图4-11所示。除些之外,在Hive数据仓库中,对HBase的数据创建一个外部表进行最直观的查询操作。当收集进行一定的量后,运行HQL,之后将数据另外通过Sqoop导入到Mysql数据库中,方便页面连接查询。具体过程如图4-12所示。图4-4从节点Bigdata-02模拟产生日志图4-5从节点Bigdata-03模拟产生日志图4-6主节点Flmue收集日志图4-7从节点Bigdata-02Flume收集日志图4-8从节点Bigdata-03Flume收集日志图4-9主节点Kafka运行状态图4-10从节点Bigdata-02Kafka运行状态图4-11从节点Bigdata-03Kafka运行状态图4-12Sqoop将Hive数据转移到Mysql并行算法层本系统的并行算法层,是通过HQL语句完成,Hive将接收到的SQL语句进行转化为MapReduce完成算法,整个编译过程分为六个阶段,简单来说就是将接收到的SQL进行解析,再通过查询遍历转化为相应的Mapreduce逻辑任务,同时提前优化不必要的数据量。具体过程如图4-13所示。图4-13Hive中SQL查询的MapReduce作业转化过程(5)服务层本系统服务层使用JDBCAPI建立Mysql数据库连接。JDBC的意思就是Java数据连接,是Java的一个能执行SQL语句的API接口。JDBC有自己的一套写法,可以访问多种关系型数据库,它提供了统一的借口发表编程开发。在开发过程中,需要引入Jar包,然后配置JDBC和加载驱动,过程方便简单。(6)接口层本系统接口层使用IDEA建立一个基于Maven的WebAPP工程,在Socket端选择实时器WebSocket协议。WebSocket在H5以后提出的一个通讯协议,它的运行依靠于TCP/IP协议,不同于旧web模式中的被动发送消息,它可以实时在客户端和服务器之间互相交换数据,具有节省服务器和带宽资源的优点。[7](7)展示层本系统基于百度Echarts图表框架,将数据与图表进行连接呈现。Echarts工具是百度旗下的一个用于统计分析后展示各种图表的js插件,可以自定义样式,简化开发,用于图形可视化。4.2数据库设计HBase数据库设计对于Hbase来说,最重要的就是rowkey的设计,rowkey需要具有唯一性,且设计时需要遵从长度规则以及主键查询高效的特点,以提高系统性能。所以本系统HBase数据库rowkey的设计为:id+datatime+system.nanotime(),既报文捕获时的ID和时间簇以及插入数据库时的时间纳秒值。而列簇的定义是与捕获的数据相同,即为:id+datatime+source+dst+srcport+dstport+protocol,HBase数据库信息如图4-14所示。图4-14HBase数据库描述Hive数据仓库设计Hive数据仓库相当于是一个逻辑表,所以在执行HQL语句时直接在前面加上insertintotableprotocol_count、insertintotableprotocol_length、insertintotablesrc_count就会自动新建适应表,数据类型一般为String和Int,Hive数据仓库描述如图4-15所示。图4-15Hive数据仓库描述Mysql数据库设计Mysql数据库的数据内容需要和Hive数据库的protocol_count、protocol_length、src_count三个表保持列名一致,否则无法进行转换。但是数据类型需要根据数据进行修改,protocol_count、protocol_length、src_count三个表的表结构设计分别如表4-16、4-17、4-18所示。表4-16protocol_count表的数据结构数据结构成员数据类型含义说明protocolvarchar(8)协议名称countint(11)个数统计表4-17protocol_length表的数据结构数据结构成员数据类型含义说明protocolvarchar(16)协议名称maxint(11)报文最大长度minint(11)报文最小长度表4-18src_count表的数据结构数据结构成员数据类型含义说明srcvarchar(16)源地址ipcountint(11)个数统计Mysql数据库描述如图4-19所示。图4-19Mysql数据库描述Mysql与HBase对比本系统采用两个数据库混合使用,另加上Hive这一逻辑数据仓库,因而需要明确不同类型数据库在系统中的职责和使用范围,以确保系统数据库设计的合理性。在上述文段中,已经明确了各个数据库的数据结构,现在就来分析一下它们之间的优势和不同。相比于Mysql,HBase的架构特点:一是完全分布式(数据分片、故障自恢复),二是底层使用HDFS(存储计算分离)。由架构看到的能力差异:Mysql运维简单(组件少)、延时低(访问路径短),Hbase扩展性好、内置容错恢复与数据冗余。由引擎结构(B+TreevsLSMTree)看到的能力差异:Mysql读写均衡、存在空间碎片,HBase侧重于写、存储紧凑无浪费、IO放大、数据导入能力强。从数据访问上看相同之处:数据以表的模型进行逻辑组织,应用对数据进行增删改查。不同之处:Mysql的SQL功能更丰富,事务能力更强。HBase既可以用API进行更灵活、性能更好的访问,也可以借助Phoenix使用标准SQL访问,只支持单行事务。从生态上看,Mysql一般可独立满足在线应用的数据存储需求,或者与少量组件配合(如缓存、分库中间件。HBase一般需要和较多大数据组件一起配合完成应用场景,场景架构的设计、实施存在较大的挑战。[5]总结来说,Mysql侧重于在线应用,HBase侧重于大数据量场景。第五章算法实现本次研究是通过HQL语句代替MapReduce的复杂代码进行统计分析并将分析结果保存在数据库,所以算法部分为sql语句。在此,我们用MapReduce的思路及伪代码进行算法解释。首先,对于协议占比算法和宽带使用占比算法而言,采用的是WordCount词频统计加上GroupBy(分组排序)和OrderBy(全排序),使其有序(字典序),所以他们的算法和代码都是相同的。而对于协议长度算法则是在按照两个字段进行排序的基础上进行长度的最大值max和最小值min判断。5.1协议占比算法和宽带使用占比算法协议占比算法的HQL语句为:insertintotableprotocol_countselectprotocol,countfromprotocolflowsgroupbyprotocolorderbyprotocoldesc。宽带使用占比算法的HQL语句为:insertintotablesrc_countselectsrc,countfromprotocolflowsgroupbysrcorderbysrcdesc。对于两个算法而言,数据不一样,但是算法内容完全相同。就以协议占比算法来举例,首先实现的是Mapper接口中的map方法,输入的参数中键是数据库名,value是协议算法中需要到的协议名即数据库中protocol的全部数据,将所有数据拆分成单个数据,每产生一个中间键值对就输出结果<协议名,1>,最后写入到OutputCollector中。接着实现Reducer接口中的Reduce方法,得到输出中间结果<协议名,value>,最后只要将所有value相加就可以得到各个协议出现的次数。[8]排序指的是对查询结果进行排序顺序显示,GroupBy/OrderBy均需要在Reduce阶段完成。全过程伪代码如下:AlogorithmFunctionAccountedForInput:<Key1,Value1>Output:<Key2,Value2>OutputCollector<Text,Text>Begin1: map(StringKey1,StringValue1)2: //map阶段分组处理数据,对出现数据进行累计和标记3: //Key1:数据库protocol;Value1:数据库内容4: foreachwordpinValue1:5: EmitIntermediate(p,"1");6:endmap7: reduce(Stringw,IteratorValues)8: //reduce阶段进行词频统计和排序9: //p:一个协议;Values:计数列表10: intresult=0;11: foreachvinValues:12: Count+=ParseInt(v);13: Emit(AsString(Count));14: compareTo(Key1,Count)15: //函数compareTo用于对统计后的协议进行排序16: Collections.sort(Key1,Key1+n)17: endcompareTo18: OutputCollector(key2,value2)19:endreduceEnd5.2协议长度算法协议长度算法的HQL语句为:insertintotableprotocol_lengthselectprotocol,max(length+0)asmax,min(length+0)asminfromprotocolflowsgroupbyprotocolorderbyprotocoldesc。长度算法对比占比算法,多了一个字段数据,同时多了最大最小值的判断[9],所以算法逻辑相对复杂一些,其伪代码如下:AlogorithmFunctionProtocolLengthInput:<Key1,Value1>Output:<Key3,Value3>OutputCollector<Text,Text>Begin1: map(StringKey1,StringValue1):2: //map分组数据,key值唯一,作为数据实现去重3: //Key1:协议名;Value1:报文长度4: fori=0toValue1.length()1:5: EmitIntermediate(Key2,Values);6: reduce(StringKey2,IteratorValues):7: //reduce阶段进行归纳,找出最大最小值以及完成排序8: //Key2:一个协议;Values:协议对应报文长度9: fori=0toValue1.length()1:10: maxormin(Values,Values+1)11: //maxormin函数用来找出最大值和最小值12: endmaxormin13: compareTo(Key2,Values):14: //函数compareTo用于排序协议和最大最小值15: Collections.sort(Key2,Values)16: endcompareTo17: endfor18: OutputCollector(key3,value3)19:endreduceEnd第六章系统测试6.1Hadoop生态组件启动测试Hadoop集群由三台机器组成,分别为主节点B、从节点B和B,jps是Java提供的一个用于显示Linux/Unix当前进程状态的pid命令,三台机器全进程运行情况如图6-1,6-2,6-3所示。图6-1Hadoop主节点B运行状态图6-2Hadoop从节点B运行状态图6-3Hadoop从节点B运行状态Zookeeper软件包中提供了客户端程序用于对服务器上的数据进行操作,使用zkCli.sh命令打开客户端进行检验Zookeeper程序是否处于正常运行状态,客户端连接会话如图6-4所示。图6-4Zookeeper客户端运行状态HadoopHA是保证Hadoop系统高可用和稳定运行的方案,除了通过jps命令查看运行状态之外,通过也会关闭某个节点进行校验是否成功运行,这里是通过Zookeeper客户端进行检验运行状态,结果如图6-5所示。图6-5HadoopHA运行状态HBase客户端与Zookeeper客户端的检验原理相似,HBase客户端除了用于数据的增删改查,也可以用于检验HBase集群的运行状态,如图6-6所示。图6-6HBase客户端运行状态Hive客户端运行测试,如图6-7所示。图6-7Hive客户端运行状态Mysql除了可以使用命令systemctlstatusmysqld检测运行情况,也可以直接登录Mysql或是通过hiveserver2进行远程连接检测,这里用的是最简单的命令检验,其运行状态如图6-8所示。图6-8Mysql运行状态6.2数据库连接测试在流量系统和页面可视化交互时,需要进行与Mysql数据库的连接以获得数据,数据库连接状态在IDEA控制台上日志如图6-9所示。图6-9数据库服务连接状态第七章总结本论文研究的方向是基于Hadoop平台对网络流量进行收集存储和可视化分析,系统中主要使用Hadoop分布式云技术,系统结构清晰简洁、技术成本低,更是便于在企业中使用。系统引入数据可视化,使用圆饼图、柱形图、折线图进行流量图展示,可以帮助网络管理者直观的发现是否有异常流量同时对用户的宽带进行合理的资源分配。本系统主要工作如下:(1)本文以网络流量数据包为分析对象设计分析系统,对局域网内网络流量按时间段进行切割分析。如果是企业中应用,我们可以通过配置交换机镜像,对每个机器进行流量汇总,统一端口收集,十分方便使用。(2)本文合理的设计HBase、Hive、Mysql的表结构,HBase用来存储真实数据,Hive用作计算并存储临时分析结果,Mysql存储最后分析结果,完成数据的存储和分析流程。(3)系统部署了Hadoop集群,Flume+Kafka集群和HBase集群,通过测试,证明了系统性能完整且适用于各种网络流量分析情景。系统不足:Hadoop这一开源的分布式处理架构近年来声名鹊起,因为它可以处理各种不同类型的数据集,同时由于可以随时添加新的节点机器,在成本上大大降低,在企业中成本就是第一,所以使用范围越来越广泛,但是就因为Hadoop一开始开发的时候就是为了分批处理数据,这就使得实时分析成为了Hadoop的一个痛点。Hadoop虽然是个开源集群,可以分布式存储,但它也有一定不足,数据写入HDFS后,用户便很难对数据进行插入、删除或修改,所以本系统暂未加入实时分析。参考文献[1]顾静.电信数据网流量监测系统的设计与实现[D].吉林大学,2007.[2]牛丽君.网络流量采集与分析系统的设计与实现[D].大连交通大学,2007.[3]王菊,徐董冬.基于Hadoop平台的数据压缩技术研究[J].数字技术与应用,2016(08):94-95.[4]周利敏.战术通信系统云仿真技术研究[D].西安工业大学,2015.[5]徐东.基于Hadoop的云教学资源平台设计与实现[D].北京交通大学,2014.[6]缪璐瑶.Hadoop安全机制研究[D].南京邮电大学,2015.[7]王慧平.企业内部即时通讯系统的设计与实现[D].内蒙古大学,2019.[8]曾理.Hadoop的重复数据清理模型研究与实现[D].南华大学,2010.[9]骆明月.基于Map-Reduce分布式日志信息处理研究与实现[D].北京邮电大学,2011.致谢时光飞逝,一眨眼就到了毕业的时候,回望在广东东软学院的四年,似乎过了很久,又似乎还在我刚踏入校园、在我刚进入课室、在我刚拿起书本的一刻。这是难忘的四年,是最精彩的四年,我定将它珍藏在我回忆录的一片四叶草上。四年来,我收获良多。感谢广东东软学院陪伴我成长的各位老师,是你们的辛苦付出、是你们的孜孜教诲、是你们的严谨科研态度,让我每时每刻都在进步。在完成这篇论文的设计过程中,我更要感谢的是我的导师冼敏仪老师,在这几个月里,老师的悉心教导和不断督促下,我的论文设计才能顺利完成,不论是选题指导、开题研究、设计建议和论文框架,都是那么的详细和尽责。在此表达我对导师深深的谢意。同时,我要感谢广东东软学院给我这四年来学习和成长的平台,感谢参考文献中给予我灵感的作者,感谢陪伴我成长的益友,感谢在我成长求学道路上给我理解和支持的父母。是你们不断激励我成长,是你们不断鼓舞我向前,感谢四年来你们对我的帮助。最后,我还要向所有百忙之中抽空审阅论文并参加答辩的专家教授表示衷心的感谢。
ExcelXP的八则快速输入技巧如果我们在用ExcelXP处理庞大的数据信息时,不注意讲究技巧和方法的话,很可能会花费很大的精力。因此如何巧用ExcelXP,来快速输入信息就成为各个ExcelXP用户非常关心的话题,笔者向大家介绍几则这方面的小技巧。1、快速输入大量含小数点的数字如果我们需要在ExcelXP工作表中输入大量的带有小数位的数字时,按照普通的输入方法,我们可能按照数字原样大小直接输入,例如现在要在单元格中输入0.05这个数字时,我们会把“0.05”原样输入到表格中。不过如果需要输入若干个带有小数点的数字时,我们再按照上面的方法输入的话,每次输入数字时都需要重复输入小数点,这样工作量会变大,输入效率会降低。其实,我们可以使用ExcelXP中的小数点自动定位功能,让所有数字的小数点自动定位,从而快速提高输入速度。在使用小数点自动定位功能时,我们可以先在ExcelXP的编辑界面中,用鼠标依次单击“工具”/“选项”/“编辑”标签,在弹出的对话框中选中“自动设置小数点”复选框,然后在“位数”微调编辑框中键入需要显示在小数点右面的位数就可以了。以后我们再输入带有小数点的数字时,直接输入数字,而小数点将在回车键后自动进行定位。例如,我们要在某单元格中键入0.06的话,可以在上面的设置中,让“位数”选项为2,然后直接在指定单元格中输入6,回车以后,该单元格的数字自动变为“0.06”,怎么样简单吧?2、快速录入文本文件中的内容现在您手边假如有一些以纯文本格式储存的文件,如果此时您需要将这些数据制作成ExcelXP的工作表,那该怎么办呢?重新输入一遍,大概只有头脑有毛病的人才会这样做;将菜单上的数据一个个复制/粘贴到工作表中,也需花很多时间。没关系!您只要在ExcelXP中巧妙使用其中的文本文件导入功能,就可以大大减轻需要重新输入或者需要不断复制、粘贴的巨大工作量了。使用该功能时,您只要在ExcelXP编辑区中,依次用鼠标单击菜单栏中的“数据/获取外部数据/导入文本文件”命令,然后在导入文本会话窗口选择要导入的文本文件,再按下“导入”钮以后,程序会弹出一个文本导入向导对话框,您只要按照向导的提示进行操作,就可以把以文本格式的数据转换成工作表的格式了。3、快速输入大量相同数据如果你希望在不同的单元格中输入大量相同的数据信息,那么你不必逐个单元格一个一个地输入,那样需要花费好长时间,而且还比较容易出错。你可以通过下面的操作方法在多个相邻或不相邻的单元格中快速填充同一个数据,具体方法为:首先同时选中需要填充数据的单元格。若某些单元格不相邻,可在按住Ctrl键的同时,点击鼠标左键,逐个选中;其次输入要填充的某个数据。按住Ctrl键的同时,按回车键,则刚才选中的所有单元格同时填入该数据。4、快速进行中英文输入法切换一张工作表常常会既包含有数字信息,又包含有文字信息,要录入这样一种工作表就需要我们不断地在中英文之间反复切换输入法,非常麻烦,为了方便操作,我们可以用以下方法实现自动切换:首先用鼠标选中需要输入中文的单元格区域,然后在输入法菜单中选择一个合适的中文输入法;接着打开“有效数据”对话框,选中“IME模式”标签,在“模式”框中选择打开,单击“确定”按钮;然后再选中输入数字的单元格区域,在“有效数据”对话框中,单击“IME模式”选项卡,在“模式”框中选择关闭(英文模式);最后单击“确定”按钮,这样用鼠标分别在刚才设定的两列中选中单元格,五笔和英文输入方式就可以相互切换了。5、快速删除工作表中空行删除ExcelXP工作表中的空行,一般的方法是需要将空行都找出来,然后逐行删除,但这样做操作量非常大,很不方便。那么如何才能减轻删除工作表中空行的工作量呢?您可以使用下面的操作方法来进行删除:首先打开要删除空行的工作表,在打开的工作表中用鼠标单击菜单栏中的“插入”菜单项,并从下拉菜单中选择“列”,从而插入一新的列X,在X列中顺序填入整数;然后根据其他任何一列将表中的行排序,使所有空行都集中到表的底部。删去所有空行中X列的数据,以X列重新排序,然后删去X列。按照这样的删除方法,无论工作表中包含多少空行,您就可以很快地删除了。6、快速对不同单元格中字号进行调整在使用ExcelXP编辑文件时,常常需要将某一列的宽度固定,但由于该列各单元格中的字符数目不等,致使有的单元格中的内容不能完全显示在屏幕上,为了让这些单元格中的数据都显示在屏幕上,就不得不对这些单元格重新定义较小的字号。如果依次对这些单元格中的字号调整的话,工作量将会变得很大。其实,您可以采用下面的方法来减轻字号调整的工作量:首先新建或打开一个工作簿,并选中需要ExcelXP根据单元格的宽度调整字号的单元格区域;其次单击用鼠标依次单击菜单栏中的“格式”/“单元格”/“对齐”标签,在“文本控制”下选中“缩小字体填充”复选框,并单击“确定”按钮;此后,当你在这些单元格中输入数据时,如果输入的数据长度超过了单元格的宽度,ExcelXP能够自动缩小字符的大小把数据调整到与列宽一致,以使数据全部显示在单元格中。如果你对这些单元格的列宽进行了更改,则字符可自动增大或缩小字号,以适应新的单元格列宽,但是对这些单元格原设置的字体字号大小则保持不变。7、快速输入多个重复数据在使用ExcelXP工作表的过程中,我们经常要输入大量重复的数据,如果依次输入,无疑工作量是巨大的。现在我们可以借助ExcelXP的“宏”功能,来记录首次输入需要重复输入的数据的命令和过程,然后将这些命令和过程赋值到一个组合键或工具栏的按钮上,当按下组合键时,计算机就会重复所记录的操作。使用宏功能时,我们可以按照以下步骤进行操作:首先打开工作表,在工作表中选中要进行操作的单元格;接着再用鼠标单击菜单栏中的“工具”菜单项,并从弹出的下拉菜单中选择“宏”子菜单项,并从随后弹出的下级菜单中选择“录制新宏”命令;设定好宏后,我们就可以对指定的单元格,进行各种操作,程序将自动对所进行的各方面操作记录复制。8、快速处理多个工作表有时我们需要在ExcelXP中打开多个工作表来进行编辑,但无论打开多少工作表,在某一时刻我们只能对一个工作表进行编辑,编辑好了以后再依次编辑下一个工作表,如果真是这样操作的话,我们倒没有这个必要同时打开多个工作表了,因为我们同时打开多个工作表的目的就是要减轻处理多个工作表的工作量的,那么我们该如何实现这样的操作呢?您可采用以下方法:首先按住“Shift"键或“Ctrl"键并配以鼠标操作,在工作簿底部选择多个彼此相邻或不相邻的工作表标签,然后就可以对其实行多方面的批量处理;接着在选中的工作表标签上按右键弹出快捷菜单,进行插入和删除多个工作表的操作;然后在“文件”菜单中选择“页面设置……”,将选中的多个工作表设成相同的页面模式;再通过“编辑”菜单中的有关选项,在多个工作表范围内进行查找、替换、定位操作;通过“格式”菜单中的有关选项,将选中的多个工作表的行、列、单元格设成相同的样式以及进行一次性全部隐藏操作;接着在“工具”菜单中选择“选项……”,在弹出的菜单中选择“视窗”和“编辑”按钮,将选中的工作表设成相同的视窗样式和单元格编辑属性;最后选中上述工作表集合中任何一个工作表,并在其上完成我们所需要的表格,则其它工作表在相同的位置也同时生成了格式完全相同的表格。高效办公Excel排序方法"集中营"排序是数据处理中的经常性工作,Excel排序有序数计算(类似成绩统计中的名次)和数据重排两类。本文以几个车间的产值和名称为例,介绍Excel2000/XP的数据排序方法。一、数值排序1.RANK函数RANK函数是Excel计算序数的主要工具,它的语法为:RANK(number,ref,order),其中number为参与计算的数字或含有数字的单元格,ref是对参与计算的数字单元格区域的绝对引用,order是用来说明排序方式的数字(如果order为零或省略,则以降序方式给出结果,反之按升序方式)。例如图1中E2、E3、E4单元格存放一季度的总产值,计算各车间产值排名的方法是:在F2单元格内输入公式“=RANK(E2,$E$2:$E$4)”,敲回车即可计算出铸造车间的产值排名是2。再将F2中的公式复制到剪贴板,选中F3、F4单元格按Ctrl+V,就能计算出其余两个车间的产值排名为3和1。如果B1单元格中输入的公式为“=RANK(E2,$E$2:$E$4,1)”,则计算出的序数按升序方式排列,即2、1和3。需要注意的是:相同数值用RANK函数计算得到的序数(名次)相同,但会导致后续数字的序数空缺。假如上例中F2单元格存放的数值与F3相同,则按本法计算出的排名分别是3、3和1(降序时)。2.COUNTIF函数COUNTIF函数可以统计某一区域中符合条件的单元格数目,它的语法为COUNTIF(range,criteria)。其中range为参与统计的单元格区域,criteria是以数字、表达式或文本形式定义的条件。其中数字可以直接写入,表达式和文本必须加引号。仍以图1为例,F2单元格内输入的公式为“=COUNTIF($E$2:$E$4,">"&E2)+1”。计算各车间产值排名的方法同上,结果也完全相同,2、1和3。此公式的计算过程是这样的:首先根据E2单元格内的数值,在连接符&的作用下产生一个逻辑表达式,即“>176.7”、“>167.3”等。COUNTIF函数计算出引用区域内符合条件的单元格数量,该结果加一即可得到该数值的名次。很显然,利用上述方法得到的是降序排列的名次,对重复数据计算得到的结果与RANK3.IF函数Excel自身带有排序功能,可使数据以降序或升序方式重新排列。如果将它与IF函数结合,可以计算出没有空缺的排名。以图1中E2、E3、E4单元格的产值排序为例,具体做法是:选中E2单元格,根据排序需要,单击Excel工具栏中的“降序排序”或“升序排序”按钮,即可使工作表中的所有数据按要求重新排列。假如数据是按产值由大到小(降序)排列的,而您又想赋予每个车间从1到n(n为自然数)的排名。可以在G2单元格中输入1,然后在G3单元格中输入公式“=IF(E3=E2,G3,G3+1)”,只要将公式复制到G4等单元格,就可以计算出其他车间的产值排名。二、文本排序选举等场合需要按姓氏笔划为文本排序,Excel提供了比较好的解决办法。如果您要将图1数据表按车间名称的笔划排序,可以使用以下方法:选中排序关键字所在列(或行)的首个单元格(如图1中的A1),单击Excel“数据”菜单下的“排序”命令,再单击其中的“选项”按钮。选中“排序选项”对话框“方法”下的“笔画排序”,再根据数据排列方向选择“按行排序”或“按列排序”,“确定”后回到“排序”对话框(图2)。如果您的数据带有标题行(如图1中的“单位”之类),则应选中“有标题行”(反之不选),然后打开“主要关键字”下拉列表,选择其中的“单位”,选中排序方式(“升序”或“降序”)后“确定”,表中的所有数据就会据此重新排列。此法稍加变通即可用于“第一名”、“第二名”等文本排序,请读者自行摸索。三、自定义排序如果您要求Excel按照“金工车间”、“铸造车间”和“维修车间”的特定顺序重排工作表数据,前面介绍的几种方法就无能为力了。这类问题可以用定义排序规则的方法解决:首先单击Excel“工具”菜单下的“选项”命令,打开“选项”对话框中的“自定义序列”选项卡(图3)。选中左边“自定义序列”下的“新序列”,光标就会在右边的“输入序列”框内闪动,您就可以输入“金工车间”、“铸造车间”等自定义序列了,输入的每个序列之间要用英文逗号分隔,或者每输入一个序列就敲回车。如果序列已经存在于工作表中,可以选中序列所在的单元格区域单击“导入”,这些序列就会被自动加入“输入序列”框。无论采用以上哪种方法,单击“添加”按钮即可将序列放入“自定义序列”中备用(图3)。使用排序规则排序的具体方法与笔划排序很相似,只是您要打开“排序选项”对话框中的“自定义排序次序”下拉列表,选中前面定义的排序规则,其他选项保持不动。回到“排序”对话框后根据需要选择“升序”或“降序”,“确定”后即可完成数据的自定义排序。需要说明的是:显示在“自定义序列”选项卡中的序列(如一、二、三等),均可按以上方法参与排序,请读者注意Excel提供的自定义序列类型。谈谈Excel输入的技巧在Excel工作表的单元格中,可以使用两种最基本的数据格式:常数和公式。常数是指文字、数字、日期和时间等数据,还可以包括逻辑值和错误值,每种数据都有它特定的格式和输入方法,为了使用户对输入数据有一个明确的认识,有必要来介绍一下在Excel中输入各种类型数据的方法和技巧。一、输入文本Excel单元格中的文本包括任何中西文文字或字母以及数字、空格和非数字字符的组合,每个单元格中最多可容纳32000个字符数。虽然在Excel中输入文本和在其它应用程序中没有什么本质区别,但是还是有一些差异,比如我们在Word、PowerPoint的表格中,当在单元格中输入文本后,按回车键表示一个段落的结束,光标会自动移到本单元格中下一段落的开头,在Excel的单元格中输入文本时,按一下回车键却表示结束当前单元格的输入,光标会自动移到当前单元格的下一个单元格,出现这种情况时,如果你是想在单元格中分行,则必须在单元格中输入硬回车,即按住Alt键的同时按回车键。二、输入分数几乎在所有的文档中,分数格式通常用一道斜杠来分界分子与分母,其格式为“分子/分母”,在Excel中日期的输入方法也是用斜杠来区分年月日的,比如在单元格中输入“1/2”,按回车键则显示“1月2日”,为了避免将输入的分数与日期混淆,我们在单元格中输入分数时,要在分数前输入“0”(零)以示区别,并且在“0”和分子之间要有一个空格隔开,比如我们在输入1/2时,则应该输入“01/2”。如果在单元格中输入“81/2”,则在单元格中显示“81/2”,而在编辑栏中显示“三、输入负数在单元格中输入负数时,可在负数前输入“-”作标识,也可将数字置在()括号内来标识,比如在单元格中输入“(88)”,按一下回车键,则会自动显示为“-88”。四、输入小数在输入小数时,用户可以向平常一样使用小数点,还可以利用逗号分隔千位、百万位等,当输入带有逗号的数字时,在编辑栏并不显示出来,而只在单元格中显示。当你需要输入大量带有固定小数位的数字或带有固定位数的以“0”字符串结尾的数字时,可以采用下面的方法:选择“工具”、“选项”命令,打开“选项”对话框,单击“编辑”标签,选中“自动设置小数点”复选框,并在“位数”微调框中输入或选择要显示在小数点右面的位数,如果要在输入比较大的数字后自动添零,可指定一个负数值作为要添加的零的个数,比如要在单元格中输入“88”后自动添加3个零,变成“88000”,就在“位数”微调框中输入“-3”,相反,如果要在输入“88”后自动添加3位小数,变成“0.088”,则要在“位数”微调框中输入“3”。另外,在完成输入带有小数位或结尾零字符串的数字后,应清除对“自动设置小数点”符选框的选定,以免影响后边的输入;如果只是要暂时取消在“自动设置小数点”中设置的选项,可以在输入数据时自带小数点。五、输入货币值Excel几乎支持所有的货币值,如人民币(¥)、英镑(£)等。欧元出台以后,Excel2000完全支持显示、输入和打印欧元货币符号。用户可以很方便地在单元格中输入各种货币值,Excel会自动套用货币格式,在单元格中显示出来,如果用要输入人民币符号,可以按住Alt键,然后再数字小键盘上按“0165”即可。六、输入日期Excel是将日期和时间视为数字处理的,它能够识别出大部分用普通表示方法输入的日期和时间格式。用户可以用多种格式来输入一个日期,可以用斜杠“/”或者“-”来分隔日期中的年、月、日部分。比如要输入“2001年12月1日”,可以在单元各种输入“2001/12/1”或者“2001-12-1七、输入时间在Excel中输入时间时,用户可以按24小时制输入,也可以按12小时制输入,这两种输入的表示方法是不同的,比如要输入下午2时30分38秒,用24小时制输入格式为:2:30:38,而用12小时制输入时间格式为:2:30:38p,注意字母“p”和时间之间有一个空格。如果要在单元格中插入当前时间,则按Ctrl+Shift+;键。了解Excel公式的错误值经常用Excel的朋友可能都会遇到一些莫名奇妙的错误值信息:#N/A!、#VALUE!、#DIV/O!等等,出现这些错误的原因有很多种,如果公式不能计算正确结果,Excel将显示一个错误值,例如,在需要数字的公式中使用文本、删除了被公式引用的单元格,或者使用了宽度不足以显示结果的单元格。以下是几种常见的错误及其解决方法。1.#####!原因:如果单元格所含的数字、日期或时间比单元格宽,或者单元格的日期时间公式产生了一个负值,就会产生#####!错误。解决方法:如果单元格所含的数字、日期或时间比单元格宽,可以通过拖动列表之间的宽度来修改列宽。如果使用的是1900年的日期系统,那么Excel中的日期和时间必须为正值,用较早的日期或者时间值减去较晚的日期或者时间值就会导致#####!错误。如果公式正确,也可以将单元格的格式改为非日期和时间型来显示该值。2.#VALUE!当使用错误的参数或运算对象类型时,或者当公式自动更正功能不能更正公式时,将产生错误值#VALUE!。原因一:在需要数字或逻辑值时输入了文本,Excel不能将文本转换为正确的数据类型。解决方法:确认公式或函数所需的运算符或参数正确,并且公式引用的单元格中包含有效的数值。例如:如果单元格A1包含一个数字,单元格A2包含文本"学籍",则公式"=A1+A2"将返回错误值#VALUE!。可以用SUM工作表函数将这两个值相加(SUM函数忽略文本):=SUM(A1:A2)。原因二:将单元格引用、公式或函数作为数组常量输入。解决方法:确认数组常量不是单元格引用、公式或函数。原因三:赋予需要单一数值的运算符或函数一个数值区域。解决方法:将数值区域改为单一数值。修改数值区域,使其包含公式所在的数据行或列。3.#DIV/O!当公式被零除时,将会产生错误值#DIV/O!。原因一:在公式中,除数使用了指向空单元格或包含零值单元格的单元格引用(在Excel中如果运算对象是空白单元格,Excel将此空值当作零值)。解决方法:修改单元格引用,或者在用作除数的单元格中输入不为零的值。原因二:输入的公式中包含明显的除数零,例如:=5/0。解决方法:将零改为非零值。4.#NAME?在公式中使用了Excel不能识别的文本时将产生错误值#NAME?。原因一:删除了公式中使用的名称,或者使用了不存在的名称。解决方法:确认使用的名称确实存在。选择菜单"插入"|"名称"|"定义"命令,如果所需名称没有被列出,请使用"定义"命令添加相应的名称。原因二:名称的拼写错误。解决方法:修改拼写错误的名称。原因三:在公式中使用标志。解决方法:选择菜单中"工具"|"选项"命令,打开"选项"对话框,然后单击"重新计算"标签,在"工作薄选项"下,选中"接受公式标志"复选框。原因四:在公式中输入文本时没有使用双引号。解决方法:Excel将其解释为名称,而不理会用户准备将其用作文本的想法,将公式中的文本括在双引号中。例如:下面的公式将一段文本"总计:"和单元格B50中的数值合并在一起:="总计:"&B50原因五:在区域的引用中缺少冒号。解决方法:确认公式中,使用的所有区域引用都使用冒号。例如:SUM(A2:B34)。5.#N/A原因:当在函数或公式中没有可用数值时,将产生错误值#N/A。解决方法:如果工作表中某些单元格暂时没有数值,请在这些单元格中输入"#N/A",公式在引用这些单元格时,将不进行数值计算,而是返回#N/A。6.#REF!当单元格引用无效时将产生错误值#REF!。原因:删除了由其他公式引用的单元格,或将移动单元格粘贴到由其他公式引用的单元格中。解决方法:更改公式或者在删除或粘贴单元格之后,立即单击"撤消"按钮,以恢复工作表中的单元格。7.#NUM!当公式或函数中某个数字有问题时将产生错误值#NUM!。原因一:在需要数字参数的函数中使用了不能接受的参数。解决方法:确认函数中使用的参数类型正确无误。原因二:使用了迭代计算的工作表函数,例如:IRR或RATE,并且函数不能产生有效的结果。解决方法:为工作表函数使用不同的初始值。原因三:由公式产生的数字太大或太小,Excel不能表示。解决方法:修改公式,使其结果在有效数字范围之间。8.#NULL!当试图为两个并不相交的区域指定交叉点时将产生错误值#NULL!。原因:使用了不正确的区域运算符或不正确的单元格引用。解决方法:如果要引用两个不相交的区域,请使用联合运算符逗号(,)。公式要对两个区域求和,请确认在引用这两个区域时,使用逗号。如:SUM(A1:A13,D12:D23)。如果没有使用逗号,Excel将试图对同时属于两个区域的单元格求和,但是由于A1:A13和D12:D23并不相交,所以他们没有共同的单元格。在Excel中快速查看所有工作表公式只需一次简单的键盘点击,即可可以显示出工作表中的所有公式,包括Excel用来存放日期的序列值。要想在显示单元格值或单元格公式之间来回切换,只需按下CTRL+`(位于TAB键上方)。EXCEL2000使用技巧十招1、Excel文件的加密与隐藏如果你不愿意自己的Excel文件被别人查看,那么你可以给它设置密码保护,采用在保存文件时用加密的方法就可以实现保护目的,在这里要特别注意的是,自己设定的密码一定要记住,否则自己也将被视为非法入侵者而遭拒绝进入。给文件加密的具体方法为:A、单击“文件”菜单栏中的“保存或者(另存为)”命令后,在弹出的“保存或者(另存为)”的对话框中输入文件名;B、再单击这个对话框中“工具”栏下的“常规选项”按钮,在弹出的“保存选项”的对话框中输入自己的密码;这里要注意,它提供了两层保护,如果你也设置了修改权限密码的话,那么即使文件被打开也还需要输入修改权限的密码才能修改。C、单击“确定”按钮,在弹出的密码确认窗口中重新输入一遍密码,再点击“确认”,最后点“保存”完成文件的加密工作。当重新打开文件时就要求输入密码,如果密码不正确,文件将不能打开。2、对单元格进行读写保护单元格是Excel执行其强大的计算功能最基本的元素,对单元格的读写保护是Excel对数据进行安全管理的基础。对单元格的保护分为写保护和读保护两类,所谓写保护就是对单元格中输入信息加以限制,读保护是对单元格中已经存有信息的浏览和查看加以限制。对单元格的写保护有两种方法:A、对单元格的输入信息进行有效性检测。首先选定要进行有效性检测的单元格或单元格集合,然后从数据菜单中选择“有效数据”选项,通过设定有效条件、显示信息和错误警告,控制输入单元格的信息要符合给定的条件。B、设定单元格的锁定属性,以保护存入单元格的内容不能被改写。可分为以下步骤:(1)选定需要锁定的单元格或单元格集合;(2)从格式菜单中选择“单元格”选项;(3)在设置单元格格式的弹出菜单中选择“保护”标签,在弹出的窗口中,选中“锁定”;(4)从工具菜单中选择“保护”选项,设置保护密码,即完成了对单元格的锁定设置。对单元格的读保护有三种方法:A、通过对单元格颜色的设置进行读保护。例如:将选定单元格或单元格集合的背景颜色与字体颜色同时设为白色,这样,从表面看起来单元格中好像是没有输入任何内
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 快递安全生产培训
- 华北理工大学《建筑工程安全技术与管理》2023-2024学年第二学期期末试卷
- 福建对外经济贸易职业技术学院《科技论文写作及文献检索》2023-2024学年第二学期期末试卷
- 信息技术 第二册(五年制高职)课件 9.2.2 计算机视觉的定义
- 医院安全消防
- 手术室护理评估
- 以课件促高效课堂
- 2025房地产经纪人《房地产经纪业务操作》核心备考题库(含典型题、重点题)
- 呀诺达旅游景点
- 开学第一课安全知识
- 7 《包身工》 公开课一等奖创新教案统编版高中语文选择性必修中册
- 干部人事档案任前审核登记表范表
- 汽车吊吊装 专项施工方案
- 娱乐场所安全管理制度与应急预案
- Python试题库(附参考答案)
- 《项脊轩志》 高中语文
- 2024年全国眼视光行业眼镜验光员技能大赛理论参考试题库(含答案)
- 基于眼动追踪的认知负荷评估
- 江苏省南京市化学中考试题及解答参考(2024年)
- 化学键教学设计 人教版
- DL∕T 612-2017 电力行业锅炉压力容器安全监督规程
评论
0/150
提交评论