Vue学习

  • garens 
进入到my-project目录下,使用以下命令进行安装vue-router插件安装 $ npm install vue-router –save-dev 此处需要添加 —save-dev 的原因,是把此插件包安装到当前目录下的node_modules下,且把相关的安装信息添加到package.json文件的devDependencies字段里,方便包管理。

MySQL 5.7.14安装教程

  • garens 
相比之前的mysql版本,5.7版本的mysql,可以说是改变得面目全非,不熟悉的人,安装起来就是完全不知头脑,我也是各种寻求网上教程,才得以解脱。下面就把我的受虐过程分享,让更多得人免受此版本数据库的困扰。

Webpack学习

webpack基本内容学习笔记,了解了基础,才能掌握全局!

程序员的悲哀

人家两三年前就用得滚瓜烂熟的东西,我们在两三年后还以新知识去学习和研究!

Promise学习心得

  • garens 
javascript的异步操作,对于刚接触的人或者用得滚瓜烂熟的人,都会一不小心陷入它的回调陷阱中去。于是出现了各种把异步转化为同步的东西,如then.js,async.js等,而这个Promise,其实也相当于这些玩意,只不过是在ES6的规范中,成为了内置的对象了而已。那就好理解了,Promise的最大好处,就是能够处理javascript的异步操作。

print2flash文档在线预览应用(java,.net)

一、背景       前段时间,LZ的boss突然给了出了这样一个需求:将原项目中的所有文章关联的附件TXT、PDF、office相关文件全部以flash的形式在网页上进行展示,便于预览。看似简单的需求,整个研发小组都懵逼的。LZ也没办法只好Google一把,找了好几套解决方案,基本上是调第三方软件的API,像什么flashpaper、print2flash等等。LZ先试了flashpaper,反正是各种问题,不支持64位系统什么的;print2flash在版本4以前也是很多问题,dll调用失败,dll缺失。最终,LZ在官网下载了最新的版本(商业软件,收费的),用起来还是相对来说比较稳定,至今没出现问题。提供的API还是比较丰富的,本篇LZ主要介绍java和.NET的操作。 二、print2flash安装     这里LZ为了简单实验主要介绍破解版的安装(费了好大的力才找到的),如果商用,还是给钱找别人买吧。   1)下载print2flash4.如果想使用服务器模式,大概需要600刀,也不是很贵。官网地址http://print2flash.com/   2)运行print2flashsetup.exe一直下一步就OK。   3)下载补丁文件。共3个文件p2fServer.exe,print2f4.exe,Print2FlashPrinter4.dll;如果之前已设置了windows服务方式启动,则先需要停止Print2Flash4服务;拷贝p2fServer.exe、print2f4.exe到安装目标文件夹替换原文件,拷贝Print2FlashPrinter4.dll到以下文件夹替换原始文件:C:\Windows\System32\spool\drivers\x64\以及C:\Windows\System32\spool\drivers\x64\3\   4)注册print2flash4服务。运行print2flash,options->print2flash service configuration,输入Windows密码,没有的话就不用输,勾选Grant access and launch pemmissions to Everyone给EveryOne用户授予权限。点击OK,如果提示successful,Current status显示Installed表示安装成功。   5)开启print2flash4服务。安装成功后,在windows服务中可以找到print2flash服务。启动该服务。 三、java操作API     开始前我们需要将print2flash提供的SDK中的P2FConst.java引入: 1 public… Read More »print2flash文档在线预览应用(java,.net)

分布式队列ZooKeeper的实现

一、背景   有一些时候,多个团队需要共同完成一个任务,比如,A团队将Hadoop集群计算的结果交给B团队继续计算,B完成了自己任务再交给C团队继续做。这就有点像业务系统的工作流一样,一环一环地传下 去,直到最后一部分完成。在业务系统中,我们经常会用SOA的架构来解决这种问题,每个团队在ESB(企业服务股总线)服务器上部署自己的服务,然后通过消息中间件完成调度任务。对亍分步式的多个 Hadoop集群系统的协作,同样可以用这种架构来做只要把消息中间件引擎换成支持分步式的消息中间件的引擎就行了。   本文楼主将使用zookeeper做为分步式消息中间件构造一个大型超市的部分数据计算模型来完成各个区域利润计算的业务需求。   由于采购和销售分别是由不同厂商进行的软件开发和维护,而且业务往来也在不同的城市和地区。 所以在每月底结算时,工作量都特别大。 比如,计算利润表: 当月利润 = 当月销售金额 – 当月采购 额 – 当月其他支出(楼主只是粗略计算)。如果采购系统是单独的系统,销售是另外单独的系统,及以其他几十个大大小小的系统, 如何能让多个系统,配合起来完成该需求? 二、系统构思   楼主基于zookeeper来构建一个分步式队列的应用,来解决上面的功能需求。排除了ESB的部分,只保留zookeeper进行实现。   采购数据:海量数据,基于Hadoop存储和分析(楼主环境有限,只使用了很少的数据)   销售数据:海量数据,基于Hadoop存储和分析(楼主环境有限,只使用了很少的数据)   其他费用支出:为少量数据,基于文件或数据库存储和分析   我们设计一个同步队列,这个队列有3个条件节点,分别对应采购(purchase),销售 (sell),其他费用(other)3个部分。当3个节点都被创建后,程序会自动触发计算利润, 幵创建利润(profit)节点。上面3个节点的创建,无顺序要求。每个节点只能被创建一次 。   … Read More »分布式队列ZooKeeper的实现

hive网站日志数据分析

  一、说在前面的话   上一篇,楼主介绍了使用flume集群来模拟网站产生的日志数据收集到hdfs。但我们所采集的日志数据是不规则的,同时也包含了许多无用的日志。当需要分析一些核心指标来满足系统业务决策的时候,对日志的数据清洗在所难免,楼主本篇将介绍如何使用mapreduce程序对日志数据进行清洗,将清洗后的结构化数据存储到hive,并进行相关指标的提取。   先明白几个概念:   1)PV(Page View)。页面浏览量即为PV,是指所有用户浏览页面的总和,一个独立用户每打开一个页面就被记录1 次。计算方式为:记录计数   2)注册用户数。对注册页面访问的次数。计算方式:对访问member.php?mod=register的url,计数   3)IP数。一天之内,访问网站的不同独立IP 个数加和。其中同一IP无论访问了几个页面,独立IP 数均为1。这是我们最熟悉的一个概念,无论同一个IP上有多少台主机,或者其他用户,从某种程度上来说,独立IP的多少,是衡量网站推广活动好坏最直接的数据。计算方式:对不同ip,计数   4)跳出率。只浏览了一个页面便离开了网站的访问次数占总的访问次数的百分比,即只浏览了一个页面的访问次数 / 全部的访问次数汇总。跳出率是非常重要的访客黏性指标,它显示了访客对网站的兴趣程度。跳出率越低说明流量质量越好,访客对网站的内容越感兴趣,这些访客越可能是网站的有效用户、忠实用户。该指标也可以衡量网络营销的效果,指出有多少访客被网络营销吸引到宣传产品页或网站上之后,又流失掉了,可以说就是煮熟的鸭子飞了。比如,网站在某媒体上打广告推广,分析从这个推广来源进入的访客指标,其跳出率可以反映出选择这个媒体是否合适,广告语的撰写是否优秀,以及网站入口页的设计是否用户体验良好。   计算方式:(1)统计一天内只出现一条记录的ip,称为跳出数                   (2)跳出数/PV  本次楼主只做以上几项简单指标的分析,各个网站的作用领域不一样,所涉及的分析指标也有很大差别,各位同学可以根据自己的需求尽情拓展。废话不多说,上干货。   二、环境准备     1)hadoop集群。楼主用的6个节点的hadoop2.7.3集群,各位同学可以根据自己的实际情况进行搭建,但至少需要1台伪分布式的。(参考http://www.cnblogs.com/qq503665965/p/6790580.html)   2)hive。用于对各项核心指标进行分析(安装楼主不再介绍了)   3)mysql。存储分析后的数据指标。   4)sqoop。从hive到mysql的数据导入。   三、数据清洗   我们先看看从flume收集到hdfs中的源日志数据格式:   1 27.19.74.143 - -… Read More »hive网站日志数据分析

flume集群日志收集

一、Flume简介   Flume是一个分布式的、高可用的海量日志收集、聚合和传输日志收集系统,支持在日志系统中定制各类数据发送方(如:Kafka,HDFS等),便于收集数据。其核心为agent,agent是一个java进程,运行在日志收集节点。 agent里面包含3个核心组件:source、channel、sink。   source组件是专用于收集日志的,可以处理各种类型各种格式的日志数据,包括avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy、自定义,同时 source组件把数据收集 以后,临时存放在channel中。   channel组件是在agent中专用于临时存储数据的,可以存放在memory、jdbc、file、自定义等。channel中的数据只有在sink发送成功之后才会被删除。   sink组件是用于把数据发送到目的地的组件,目的地包括hdfs、logger、avro、thrift、ipc、file、null、hbase、solr、自定义。   在整个数据传输过程中,流动的是event。事务保证是在event级别。flume可以支持多级flume的agent,支持扇入(fan-in)、扇出(fan-out)。   二、环境准备   1)hadoop集群(楼主用的版本2.7.3,共6个节点,可参考http://www.cnblogs.com/qq503665965/p/6790580.html)   2)flume集群规划: HOST 作用 方式 路径 hadoop01 agent spooldir /home/hadoop/logs hadoop05 collector HDFS… Read More »flume集群日志收集