从RDDs到Spark

从RDDs到Spark
Spark是近年来非常火爆的分布式计算框架,可以说它紧跟Hadoop的脚步,并且在很多方面实现了超越。在Spark官方的宣传中我们也可以看到,Hadoop能做到的事情,Spark也可以做,而且通常可以做得更好。事实上,越来越多的业内公司都开始试水Spark,因为其核心卖点内存计算加速以及简洁优雅的编程接口不光可以为某些分布式批处理应用提速,还可以降低分布式计算应用的编写门槛。由于我不是数据工程师,所以我并不太关心分布式应用的编写环节(例如如何利用Spark进行数据挖掘、机器学习……),我更关心Spark这个计算框架以及这个分布式系统的体系结构。现在有很多书都在写Spark源码,但是很遗憾的是,在我看来,这些源码分析做得很“工程”,要知道很少有人会因为某某软件开源,就去死磕它的代码,人们往往需要带着目的去研究他们的代码,从而补足书面文献中所缺少的部分,其次才是看他们的实现是否够“优雅”,够“软件”。 希望本文能做做成一个系列,记录我学习Spark的点滴,同时也将我的学习思路分享给大家。 研究一个软...

Spark源码阅读环境搭建[Windows版]

Spark源码阅读环境搭建[Windows版]
近期要开始阅读Spark的源码了,董的博客里的这篇文章已经把大致的环境搭建思路说得很清楚了。不过由于我没有专用的Linux工作机,在VM里开IDE阅读代码不仅对我8GB内存的小本是种摧残,对我的精神更是种折磨,于是开始琢磨怎么在Windows下配置这个环境。 其实那篇博文已经比较老了(注意到那个发布时间是2014年),不仅Spark有了飞越,Scala同样也是,版本问题似乎已经不再那么至关重要(版本依然重要)下面列出我的配置流水: 安装JDK 1.8,配置CLASS_PATH、系统Path 安装Scala 2.10.6(2.10.x的最新版),安装的时候没什么特殊情况的话,会自动加入Path 安装Git for Windows,这个记得安装的时候不要选Bash,要选Command Prompt 安装SBT,这个似乎不是必要的,因为IDEA自带这个,不过如果希望自己动动命令行手动构建的话,可以装个玩玩,记得加入Path,然后命令行执行sbt命令来进行初始化(有可能需要VPN,有些库被

升级到PHP 7.0

升级到PHP 7.0
这个月月初PHP 7.0终于Release了(虽然跳票了几次),由于从底层彻彻底底的改动,并且同时语言本身仍然保持着对老版本的高度兼容,使得很多现有程序(比如WordPress)能够通过升级到PHP7.0而获得免费的巨额性能提升。由于底层采取了不同于原来的编译技术(JIT),让PHP7.0获得了可以匹敌其他编译型语言的性能优势,曾经Facebook开发的HHVM(HipHop Virtual Machine)其实就是在做这件事,不过这项技术在PHP上的应用毕竟还年轻,所以还需要时间来打磨。当然,PHP7.0也做了其他语言内部的改进,这些改进大多都是对开发者透明的,所以本博客的升级才能如此的轻松顺利。不知是不是心理作用,感觉好像变快了_(:з」∠)_ 下面记录一下我的升级日志: 首先升级了apt,不然会在安装过程中出现某些依赖无法解决的问题,使用下面的指令 [crayon-59c2336023c66481669372/] 然后我是用PPA的源来安装的(省时省力),所以要先把源加进来 [cra...

Double v.s. Float

Double v.s. Float
最近在做自己的玩具项目Physics2D的时候,对Vector2D是应该使用float还是double类型纠结了很久,通常来说(特别是在学校教学当中),大家都会直观的认为float精度输给double,但是速度会远胜于double,毕竟double比float位数长那么一大截,可实际上真的是这样么?昨天阅读了老赵的博客文章,正巧看到了一个不错的CodeTimer实现,空想没用,干脆用实际测试到的数据说话。 下表为微软给出的两个类型的表示范围以及精度,作为一个参考先放在这里: Type Approximate range Precision float ±1.5e−45 to ±3.4e38 7 digits double ±5.0e−324 to ±1.7e308 15-16 digits   我编写了5组测试用例,分别对应加、减、乘、除以及混合的运算,代码如下所示: [crayon-59c2336023e3f4248087

Hay Day Decoder 1.0发布

Hay Day Decoder 1.0发布
这个东西其实已经做出了很久了,不过由于是为了方便自己使用的工具,所以一直都是命令行程序,虽然早早地开放了源代码,但是又有没有公布编译好的版本并且也没有用户界面,所以很多朋友也无法使用。上一周心血来潮,做了个简单的用户界面,并且适当调整了下代码,现在就公布出来,并给出使用说明。 编译好的版本下载地址为https://github.com/Blueve/HayDayDecoder/releases 需要注意的是,要运行该程序,系统需要已经安装了.Net Freamwork 4.5,通常来说如果你用的是Windows 8以上的操作系统,系统都已经自带了这个框架。Windows XP应该是无法运行本程序的。 安装好的程序可以通过“控制面板” – “添加或删除程序”被完整的卸载。 如果你用得开心,欢迎给我的这个项目点个赞(如图所示加个星星),也欢迎有能力的同学协助我完善这个项目,增加更多方便的功能(例如增加数据浏览窗口、语言包载入功能等)。   在使用中如果发现程

菜鸟青海湖骑行之旅

菜鸟青海湖骑行之旅
青海湖是我很久很久之前就长草要去的地方,不过苦于时间、旅伴等多种因素,便一直没有去成。没想到今年这个假期,召集到了两个小伙伴,便开始了这段称得上是疯狂的旅行。之所以这么说,因为我们是骑行青海湖,并且三个人都没有过任何骑行经验。不得不说就最终体会来讲,还是很辛苦的,不过最后换回了如此多的美丽感受,也便不觉得有什么亏的了。 准备: 迪卡侬骑行裤、白布手套(或骑行手套)、长裤(千万别牛仔)、长袖、魔术头巾、外套(早上冷)、墨镜; 洗漱用品(最好分装到小瓶)、毛巾; 骑行保险(可以网上买,我们买的20块钱保4天); 红景天(提前吃)、胃药、肠道药、感冒药等。 下面简单罗列下我制定的形成安排,具体景色请参看各个专辑,专辑基本把全程的景色全部覆盖了,在文字中就不再赘述了。   Day 1: 北京->西宁 半天都在火车上,好在有个东北大叔一直和我唠嗑。   Day 2: 西宁->西海 这一段乘坐大巴,大巴站就在火车站出口右手处不远,据

百诺C1282TV1入手晒单

梦寐以求的碳纤维可反折三脚架终于入手!FeedMeChocolate栏目中再次减少了一个奋斗目标哈哈(感觉基本都快清理完毕了 头一次购买这种较高价位的三脚架,力求一步到位(对于我这种不开长焦坑的菜鸟来说,足够很久了应该),基本参数还是很叫人满意的: 四节管脚 最高1590mm 反折后长度430mm 重量1.52kg 承重14kg 碳纤维脚架的重量没有想象的那么轻,主要因为连接构建依旧是金属,套装自带的球星云台本身也很重(0.41kg),但是相比之前的那个,已经轻了将近一斤,还是可以的。下面上图: 这是简单支开的样子,球型云台的使用目前还不是很习惯……整体的感觉是很不错的 这是三节完全打开不升中轴的样子,高度还是可以的,中轴下方有可以挂豆袋的挂钩,管脚的快速松紧扣也是很方便,不过用惯了扳扣式的,再用这种类型,还是稍微有些不太习惯 感觉这个产品最逗的就是附送了一个木制手杖头儿,把独脚架当登山杖用的时候可以装上这个带指南针的木头脑袋,萌...

在DigitalOcean的Ubuntu服务器上搭建VPN

在DigitalOcean的Ubuntu服务器上搭建VPN
昨天将本博客迁移到了DO的服务器上,访问速度有了质的飞跃,于是今天便来尝试一下用这个服务器搭建VPN。 Ubuntu搭建VPN服务器非常简单,遵从下面的步骤即可: 安装pptpd [crayon-59c2336024005701226248/]   修改配置文件 [crayon-59c233602400a125933582/] 在最后添加 [crayon-59c233602400c658246483/] 这样就配置好了VPN客户端的IP范围   修改配置文件 [crayon-59c233602400d163274033/] 找到#ms-dns 去掉这两行的注释,设置值为 [crayon-59c233602400e249364788/] 这里的两个IP是Google提供的DNS服务器,如果你有别的DNS服务器地址,尽管往上招呼就是了   修改VPN账户文件 [crayon-59c233602400f40885511