当前位置: 首页 > news >正文

网站制作费会计分录怎么做网站速度慢如何做优化

网站制作费会计分录怎么做,网站速度慢如何做优化,网站规划与建设心得,小学生作文网“大数据#xff08;Big Data#xff09;”这个术语最早期的引用可追溯到apache org的开源项目Nutch。当时#xff0c;大数据用来描述为更新网络搜索索引需要同时进行批量处理或分析的大量数据集。随着谷歌MapReduce和GoogleFileSystem #xff08;GFS#xff09;的发布Big Data”这个术语最早期的引用可追溯到apache org的开源项目Nutch。当时大数据用来描述为更新网络搜索索引需要同时进行批量处理或分析的大量数据集。随着谷歌MapReduce和GoogleFileSystem GFS的发布大数据不仅用来描述大量的数据还涵盖了处理数据的速度。 随着云时代的来临大数据也吸引了越来越多的关注。大数据分析相比于传统的数据仓库应用具有数据量大、查询分析复杂等特点。 大数据通常用来形容一个公司创造的大量非结构化和半结构化数据这些数据在下载到关系型数据库用于分析时会花费过多时间和金钱。大数据分析常和云计算联系到一起因为实时的大型数据集分析需要像MapReduce一样的框架来向数十、数百或甚至数千的电脑分配工作。 在开源领域Hadoop的发展正如日中天。Hadoop旨在通过一个高度可扩展的分布式批量处理系统对大型数据集进行扫描以产生其结果。在Hadoop中可用2种方式来实现Map/Reduce 1Java的方式由于Hadoop本身是用Java来实现的因此这种方式最常见 2HadoopStreaming方式可通过SHELL/Python/ruby等各种支持标准输入/输出的语言实现。 21.1 案例背景 在Hadoop环境下编写Python程序需要预先搭建好Hadoop开发环境比较麻烦。为了演示Python在大数据处理方面的应用本章的案例将不以Hadoop环境作基础而是以处理某一个或多个大数据量的数据为基础这也符合目前大部分用户的实际应用。根据本章案例读者可编写程序处理自己工作中的大数据。 21.1.1 大数据处理方式概述 在Hadoop中采用MapReduce编程模型来处理大数据MapReduce编程模型用于大规模数据集大于1TB的并行运算。“Map映射”和“Reduce规约”的概念以及他们的主要思想都是从函数式编程语言里借来的此外还有从矢量编程语言里借来的特性。这种方式极大地方便了编程人员在不深入了解分布式并行编程的情况下将自己的程序运行在分布式系统上。当前的软件实现是指定一个Map映射函数用来把一组键值对映射成一组新的键值对指定并发的Reduce规约函数用来保证所有映射的键值对中的每一个共享相同的键组。 简单地说在Hadoop中通过MapReduce编程模型处理大数据时首先对大数据进行分割划分为一定大小的数据然后将分割的数据分交给Map函数进行处理。Map函数处理后将产生一组规模较小的数据。多个规模较小的数据再提交给Reduce函数进行处理得到一个更小规模的数据或直接结果。 本章的案例将模仿这种MapReduce模型进行大数据处理下面简单介绍本章需要处理的数据及最终要达到的目标。 21.1.2 处理日志文件 本章案例将处理apache服务器的日志文件access.log。 apache是一个非常流行的Web网站服务器很多网站都在apache上发布。在网站的日常管理中经常需要对apache网站的日志文件进行分析。通过对这些日志数据进行分析可得到很多有用的信息。例如可分析用户访问量最大的页面知道用户最关注的商品。还可以分析出用户访问时段了解网站在一天的哪个时间段访问者最多。还可以从访问者IP地址了解访问者的所在区域了解哪个区域的用户更关注网站…… apache服务器的日志文件access.log是一个文本格式的文件可以使用Windows的记事本打开。例如如图21.1所示就是打开该日志文件时所看到的内容。 从图中可看到在日志文件中每一条数据占用1行每行又分为7个部分用空格隔开这7部分内容依次是远程主机、空白E-mail、空白登录名、请求时间、方法资源协议、状态代码、发送字节数。 如果网站的日志文件比较小可直接使用Windows的记事本或其他文本文件编辑器打开查看。但是这个日志文件往往却很大很多时候这个文件大到无法用文本编辑器打开。 其实提到大数据可能首先想到的就是上亿条、几十亿条的数据。这在互联网应用中是非常普遍的例如若某一个电商网站每天有20万访问流量每位访问者平均打开10个页面每个页面平均产生8次请求则一天将产生1600万条访问日志记录数据一个月就有48000万条数据。每条日志数据约在5070个字符则每个月的日志文件大约在25~35G大小。 将问题规模缩小一下即便是访问流量一般的网站如果每天上千次的流量每个月生成的日志文件也有几百M大小。 对于这么大的文本文件想打开都很困难更别说对其进行数据分析了。 21.1.3 要实现的案例目标 本章案例将演示用Python编写程序对apache日志文件access.log进行处理的过程。模似Hadoop的MapReduce编程模型按以下流程对数据进行处理 1首先对大的日志文件进行分割根据处理计算机的配置设置一个分割大小的标准将大的日志文件分割为n份。 2将分割出来的较小日志文件分别提交给Map函数进行处理这时的Map函数可分布在多台计算机中。根据工作量一个Map函数可处理多个小日志文件。处理结果保存为一个文本文件作为Reduce函数的输入。 3将各Map函数处理的结果提交给Reduce函数进行处理最终得到处理结果。 提示按以上流程编写Python程序在测试时可用一个较小的日志文件最好将日志文件限制在100M以内进行测试以减少程序处理的时间提高开发测试效率。当测试通过之后再用其处理大的日志。 21.2 分割日志文件 前面已经提到过日志文件很大时没办法将其直接打开这时就可考虑将其分割为较小的文件。在分割文件时需要考虑到处理数据的计算机的内存如果分割的文件仍然较大在处理时容易造成内存溢出。 在Python中对于打开的文件可以逐行读入数据。因此分割文件的程序很简单具体的程序如下所示。 在以上程序中首先设置了每一个分割文件要保存数据的数量并设置一个空的列表作为缓存用来保存分割文件的数据。接着打开大的日志文件逐行读入数据再将其添加到缓存列表中当达到分割文件保存数据的数量时将缓存列表中的数据写入文件。然后清空缓存列表继续从大的日志文件中读入数据重复前面的操作保存到第2个文件中。这样不断重复最终就可将大的日志文件分割成小的文件。 在命令行状态中执行FileSplit.py程序将当前目录中的access.log文件分割成小文件并保存到当前目录的下层access目录中。执行结果如图21.3所示从图中输出的结果可看出在将文件大小为27M的日志文件约有25万条数据按每个文件10万条数据进行分割得到3个文件并且从执行时间来看在1秒钟之内就完成了3个文件的分割、保存操作。图21.4 分割得到的小文件 21.3 用Map函数处理小文件 得到分割的小文件之后接下来就需要编写Map函数对这些小文件进行处理。Map函数最后得到一个小的数据文件可能经过处理将11M大小的文件中的数据进行加工汇总得到一个大小为几百K的文件。再将这个结果文件交给Reduce进行处理这样就可减轻Reduce处理的压力了。 在编写Map函数之前首先需要明确本次处理的目标是什么即希望从数据中收集哪些信息。根据不同的目标Map函数处理的结果将不同。 例如若需要统计出网站中最受欢迎的页面即打开次数最多的页面则在Map函数中就需从每条日志中找出页面日志的第5部分包含“方法资源协议”其中的“资源”就是页面地址将页面提取出来进行统计。 需要注意的是在一个Map函数中统计的结果不能作为依据。因此在这一部分日志文件中可能A页面访问量最大但在另一部分日志可能由另一台计算机的Map函数在处理中可能B页面的访问量最大。因此在Map函数中只能将各页面的访问量分类汇总起来保存到一个文件中交由Reduce函数进行最后的汇总。 下面的程序就可完成分类汇总页面访问量的工作。 在上面的程序中Map函数打开分割后的小日志文件然后定义了一个空的字典用字典来保存不同页面的访问量用页面链接地址作为字典的键对应的值就是访问量。 前面介绍过日志文件中每一条数据可分为7部分用空格来隔开但是注意这里最好不用split函数以空格对一条日志进行切分因为可能日志某些字段内部也会出现空格。因此最好的方式是使用正则表达式来提取页面地址。 得到页面地址后接着就判断字典中是否已有此地址作为键若有则在该键的值上累加1表示增加了一次访问。若没有该键则新建一个键并设置访问量为1。 当将分割后的小日志文件的每条数据都读入并处理之后字典tempData中就保存了当前这一部分日志文件中所有页面的访问数据了。最后对字典进行排序也可不排序后生成到一个列表中再将列表保存到一个后缀为“_map.txt”的文件中完成当前这一部分日志文件的处理得到一个较小的结果文件。 执行以上程序几秒钟时间就处理完成在access目录中得到3个后缀为“_map.txt”的文件如图21.5所示从执行结果可看到经过Map函数的处理对分割后11M左右的文件进行处理后得到的结果文件大小为300K。 21.4 用Reduce函数归集数据 Reduce函数进行最后的归集处理将Map函数运算的结果作为Reduce函数的输入经过处理最后得到一个文件这个文件就是针对大日志文件的处理结果不再是一个部分结果了。 Reduce函数的处理流程也很简单就是读入后缀为“_map.txt”的文件进行数据的归并处理最后输出一个结果文件。具体的程序如下。 以上程序中在循环的外面定义了一个空的字典用来归并所有的页面访问量数据。接着使用os.walk函数循环指定目录中的文件找到后缀为“_map.txt”的文件进行处理。具体处理过程是逐个将Map函数的输出文件后缀为“_map.txt”读入并将数据装入字典。然后对字典进行排序并转换为列表最后将列表输出到文件即可得到一个后缀为“_reduce.txt”的文件在这个文件中保存了日志中所有页面的访问量数据。如果只需要获取访问量前10或前50的页面还可以只输出排序后前10条或前50条数据。 经过以上文件分割Map、Reduce处理即可将原来大小为27M的文件归集成只有几百K的一个文件并得到需要的数据。 Reduce处理得到数据之后就可以使用Excel或其他常用数据处理软件对数据进行分析、输出图表等操作了。当然也可以在Python中继续编写程序来分析这些数据。 上面的操作是以页面访问量为统计目标进行的数据处理操作。如果有其他目标就需要编写不同的Map和Reduce函数来进行处理。例如若要统计网站每天不同时段的访问量则在Map函数中可使用正则表达式提取日志中的访问时间段并根据一定的规则进行数据统计。在Reduce函数中再根据Map函数的输出数据进行归并处理即可得到要求的数据。 由于Python程序的开发效率很高因此开发Map、Reduce函数的效率非常快当统计目标改变后可以在几分钟就完成函数的修改这是其他很多程序设计语言无法办到的。 21.5 小结 本章通过编写Python程序模仿了Hadoop处理大数据的过程。首先介绍了大数据处理的相关知识接着编写了FileSplit函数对大数据文件进行分割然后编写Map函数处理分割的小文件将处理结果保存起来最后编写Reduce函数对这些小文件进行处理得到最终处理结果。通过本章案例你可对大数据处理的流程有一个基本的了解。
http://www.w-s-a.com/news/821737/

相关文章:

  • 网站设计网页设计系统没有安装wordpress
  • 建网站做哪方面公司百度官网优化
  • 山西网站seo网站采集信息怎么做
  • 同江佳木斯网站建设seo学徒培训
  • 淘宝不能发布网站源码做商品怀化网站制作建设
  • 买空间哪个网站好做我的世界背景图的网站
  • 南京哪里做网站wordpress 增加子目录
  • 刚做的网站搜全名查不到网站很难被百度收录
  • 网站建设与管理期末做网站买空间用共享ip
  • 网络合同怎么签有效南京seo公司哪家
  • 厦门建设网官方网站上海网络网站建
  • 网站制作西安郑州网站建设动态
  • 外贸网站免费推广温州做网站技术员
  • 武冈 网站建设做网站能收回吗
  • 网站做前端把网站扒下来以后怎么做
  • 网站模板素材下载手机做任务佣金的网站
  • 机关网站建设考核测评总结做网站sqlserver排序
  • 凉山州建设厅官方网站html5下载教程
  • 内网网站建设方面政策id97网站怎么做的
  • 福州企业建站系统七米网站建设
  • 长春seo建站北京做机床的公司网站
  • 网站维护具体做啥如何开发wap网站
  • 公司网站设计费计入什么科目潍坊公司网站制作
  • 拖拽式网站开发模具钢东莞网站建设
  • 彩票娱乐网站建设模块化网站开发
  • 孝感网站设计用自己的名字设计头像
  • 高明网站建设哪家好深圳vi设计公司全力设计
  • 工程技术cpu游戏优化加速软件
  • 一起做网店网站入驻收费wordpress 自定义评论样式
  • 深圳高端网站建设公司排名app软件开发sh365