Spark入门学习(一) 分析nginx log文件

Spark也是一个集群计算系统,提供Python,Java,Scala,R语言的高级API进行数据操作。Spark有各种优点,请自行搜索。 一、下载安装spark 下载编译好的二进制版本,目前还用不到hadoop选择第一个安装。 wget http://mirrors.cnnic.cn/apache/spark/spark-1.5.2/spark-1.5.2-bin-hadoop2.6.tgz 解压 tar zxvf spark-1.5.2-bin-hadoop2.6.tgz 使用默认参数进入python交互模式。启动参数可以指定Spark集群的地址,处理的线程数等值。 park-1.5.2-bin-hadoop2.6/bin/pyspark 交互模式下,Spark会默认给你启动一个SparkContext,名字为sc。你可以执行以下命令查看版本和应用名字。 >>> sc.version u'1.5.2' >>> sc.appName u'PySparkShell' 二、分析nginx log文件 在交互模式下输入,创建一个RDD,textFile会按行读入一个文件,这种方式读入的文件,不会随文件的更新数据进行更新。 第二篇将进行脚本的编写和使用Stream进行实时数据的统计。 >>>log=sc.textFile('./app_access.log') 查看文档有多少行,对应nginx收到多少请求。count是一个action,返回值。 >>> log.count() 2186762 返回文档第一行 >>> log.first() u'117.136.40.185 [11/Nov/2015:06:25:52 +0800] "POST /zmw/v2/favorite_status HTTP/1.1" 200 0.013 61 "-" "%E6%B2%B3%E7%8B%B8%E5%AE%B6/2891 CFNetwork/758.1.6 Darwin/15.0.0" "-" 0.013 Upstream:"10.0.10.135:8700"' 查看IP为"117.136.40.185"的访问次数。filter是一个transformations,返回一个新的RDD,然后对这个新的rdd进行count求值 >>> log.filter(lambda line: "117.136.40.185" == line.split()[0]).count() 637 可以使用cache操作将经常使用RDD尽可能的存放在内存中,加快计算速度。 >>> log.cache() 统计每个ip的访问次数,还可以统计每个url的访问次数,HTTP status code分别的访问次数等相关类似统计 >>> ips = log.map(lambda line: (line.split()[0], 1)).reduceByKey(lambda a, b: a + b) >>> ips PythonRDD[16] at RDD at PythonRDD.scala:43 >>> ips.collect() 验证之前统计过的,数据是否一致 >>> b=ips.filter(lambda a: a[0]=="117.136.40.185") >>> b.collect() [(u'117.136.40.185', 637)] 三、监控 可以从WEB访问,查看job执行情况和统计数据 http://172.16.117.0:4040/jobs/
Read more...

svn添加忽略提交文件ignore

查了两三遍了,整理一下记录着。svn好像不能统一记录,因为有的文件夹不一样,不能统一写匹配模式。现在只是每个文件夹添加 设置使用的编辑器: export SVN_EDITOR=/usr/bin/vim   忽略的文件必须不在版本控制里,add上的还要reset掉才行 svn propedit svn:ignore 文件夹名 svn propget svn:ignore .
Read more...

mac安装node js

从官网下载了一个mac下的二进制,解压,然后把目录添加到path里边,搞定 node -v查看版本v0.12.7 npm  -v 2.11.3 可以直接输入node进入交互模式,按两次ctrl-c退出   然后复制官方example,保存为main.js。node main.js成功
Read more...

使用txt文本导出excel

每一列数据使用'\t'分隔,每一行用'\r'分隔。纯数字的太长或零开头,使用引号引起来并使用单引号开头。导出的excel文件后缀为'.xls'。
Read more...

mac系统下让firefox页面a标签等获取tab焦点

之前就发现mac下没这功能,一直没找问题,现在面板用起来不方便。找了一下解决问题。 方法: 进入about:config 右键新建整数键accessibility.tabfocus,输入值7.然后就行了   不知道为什么只有mac下没有这个功能。 1是文本编辑框 2是除了文本编辑框其他的表单 3是a标签和img标签 其他是上边几个功能的组合之和
Read more...

postgresql VACUUM优化数据库

  主要用了俩命令: vacuum full  tablename; 能释放表空间 VACUUM ANALYZE search_history; 根据统计信息优化sql执行
Read more...

freenas 配置共享目录

有折腾了一下,之前没有总结,这次大体总结一下。 后台配置的时候,创建了一个用户组 home 创建了该组下的一个成员a0x55aa,只有我自己用。 开始的时候,好像是配置向导简历了win unix mac 分别对应cifs, nfs, afp服务。然后都是不同目录。按照默认的不使用匿名登录。 在mac下 可以在finder中直接看见freenas的标志。可以直接点连接身份进行登录,也可以使用 前往 连接服务器 添上afp://192.168.0.88。或者使用mount_afp命令行来连接 直接mount nfs没成功,不知道什么原因,可能系统不支持 读写文件的时候开始默认配置,其他组是不允许写的,而root用户不能登录,需要点击高级设置里边勾选other的写权限。然后就可以写了
Read more...

freebsd使用smartctl下查看硬盘使用时间

为了看一下硬盘是否是翻新硬盘,找了一下命令有个smartctl命令,可以查看硬盘使用时间,不过怎么感觉有些数据不太对,, 命令 smartctl -A /dev/ada0 |grep Power_On_Hours
Read more...

在hp n54l上安装freenas

这个机器是hp n54l的升级版proliant,主要内存和自带的硬盘容量变大。 准备工作,买的日货,淘宝代购,省了1000块钱,邮费ems300,总共1300。期间“离开处理中心,发往留存(待验)”的快递状态搜了一下以为要悲剧,没想到几个小时就放行了,网上有说是ems的制度问题,来不及处理的货物就这样了。 系统安装到u盘中,翻了一下有金士顿俩个u盘 一个16g 一个8g。8g的里边应该是ubuntu64位的启动安装盘,不动了。正好准备用16g的, 防止容量不够。 下载了FreeNAS-9.3-STABLE-201506042008.iso官方镜像,搜了一下发现mac上没有啥好的制作U盘启动盘的工具,放到windows虚拟机里边制作吧。 哈哈 不是太顺利,wind我说下的以前用的刻盘工具不好用,然后用官网的dd操作。。然后mac识别不出U盘来了。 退出u盘 ,插入启动。然后一个U盘不行,说没有权限安装失败。看来幸好两个u盘了,把那个小的做成启动盘,装到这个大的里边。try 安装成功了,还是官网文档好。 下边重启配置,配置ip.选网卡,重置网络配置,no;dhcp, no; ipv4 yes 输入ip地址 192.168.0.88/24; ipv6 no; route yes, 192.168.0.1; ipv6 no; dns yes; 用的阿里的dns,没用本地网的,不然以后还要改 然后重启 然后就能192.168.0.88访问系统了,嘎嘎。卧槽 默认用户名密码还不知道。吐血,系统root+root密码 选键盘 语言 时区,时区没找到北京 选上海 键盘没选 配置raid的时候,只能选默认了,看容量是raid1, 我去配置好麻烦不记了,配置向导发送邮件还没配置好,跳过了
Read more...

common lisp 函数调用的顺序

这个问题是老长时间之前的了,我在repl下边看书边写代码测试一些看书想到的问题,然后把你个内建函数名写错了,sbcl提示我参数不是list,但是群里求救别人都没看出来是函数名写错了,后来我发现是特么的函数名写错。但是我很纳闷,为啥会这么个出错模式。 有人推荐我下了lw,lisp works。然后lisp works提示函数未找到。然后就会轻松知道原因了。 后来妮神给我讲,函数调用是根据名字来确定用哪个函数,而cl标准未规定函数调用的时候,是在参数计算前确定哪个函数还是在后,或者中间。 所以这个问题就导致了,sbcl和lw一样是先执行参数后确定函数的,因为可能参数里边会定义这个函数。(javascript也是这样的)sbcl执行参数发现参数不是list报错了,我测试的那个函数是匹配列表的,可以是cons所以不一定是列表,真是凑巧啊。而lw可能回溯回去 报了函数名不正确的错误。 群里另一个人好像用clisp的实现,是先确定函数然后计算参数的。 当时群里写过一个测试代码,杀叔让我写一个python版本的,我在函数里边用了global,然后python也就替换了。
Read more...

Previous Page 1 2 3 4 5 6 7 8 9 10 Next Page 最后一页