2015年3月18日

摘要: 上一篇《持有对象——Java容器》提到容器类中的一个强大的功能:迭代器。但是除了List类的ListIterator之外,迭代器都只能从头到尾遍历容器,但是由于迭代器其实是实现了Collection的Iterable接口。因此,在某些情况下,当需要使用到非顺序的迭代器是,可以通过实现该接口编写符合需... 阅读全文
posted @ 2015-03-18 15:30 甲马 阅读(384) 评论(0) 推荐(0) 编辑

2015年3月10日

摘要: 数组是保存一组基本数据类型的最优先选择的数据结构,但是在某些情况下需要保存一系列的自定义对象,Java提供了一套相当完整的容器类来结局这个问题(List、Set、Queue、Map)。这些容器均有自己的特色,如Set可以保证保存的对象互异,Map保存k-v对(关联数组)。容器类可以自动调整自己的容量... 阅读全文
posted @ 2015-03-10 21:56 甲马 阅读(276) 评论(0) 推荐(0) 编辑

2014年4月2日

摘要: 最近更换新的并行计算框架,导师推荐了GraphLab。很少写C代码,大致看了一下工作量,挑战有些艰巨。这里先记录一下安装过程和helloworld的编译运行过程。安装基本按照官网上的指导,没遇到什么困难。唯一的小插曲就是make -j 4 中进程数量参数,由于电脑年迈,内存吃紧,第一次make时不出意外地崩了。改成-j 2,完成。可能会出现某个so库文件确实,在指定的位置做一个软链接就可以了。helloworld:安装完成后,可以自己写一个示例测试一下,在测试之前可以先使用系统中的example,比如pagerank:mpiexec -n 2 -hostfile ~/machines $Gra 阅读全文
posted @ 2014-04-02 22:11 甲马 阅读(2217) 评论(0) 推荐(0) 编辑

2014年3月13日

摘要: “数组名相当于指针,指向数组的首个成员的地址”这种表述见过很多,但实际上,这种说法很不全面,甚至在某些情况下是错误的。下面举例来说明一下。 首先来看他们相似的特点: 例1. int arr[] = {1,2,3,4,5}; int * pointer = arr; printf("%d\n",arr[0]); printf("%d\n",*pointer);上面两句的输出是相同的,即数组名可以转换成指向该数组的首地址的指针。 但是如果更改一下输出语句: 例2. printf("%d\n",sizeof(arr)); printf(&q 阅读全文
posted @ 2014-03-13 00:53 甲马 阅读(295) 评论(0) 推荐(0) 编辑

2013年9月11日

摘要: 回想上次做web项目还是一年前在渣打,做了个烂得都不好意思多看一眼的网站,演示的时候还崩了...数据下载任务,嗯,长期而艰巨,工欲善其事,必先利其器,花了四天时间把脚本一的内容重写了一遍。现在可以在浏览器中直接管理下载地址/查看正在进行的下载任务。tomcat开机自动启动:看网上很多解决方式都是在rc.local中添加一句${tomcat_dir}/bin/startip.sh。但是实际操作中发现没有启动成功。解决方法:自己先创建了一个auto.sh,内容为:/home/xinwang/tomcat7/apache-tomcat-7.0.42/bin/catalina.sh startcd / 阅读全文
posted @ 2013-09-11 11:21 甲马 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 一共写了三个脚本,第一次写shell脚本,很蹩脚。写完回头看一看,质量确实很差劲。脚本一:addLinkFiles.sh在当前目录下有一个xmlfile.xml文件,该文件需要手动编辑,文件中用标签表示出来两级目录,例如:Life-sciencesuniprothttp://www.example.com/example.nt.gz没有使用xml树形结构,因为shell中解析实在是太麻烦了。用相对位置表示上下级关系。所以这并不是一个严格的xml文件,四不像。上面三句话表示class中有dataset,dataset中有一个下载链接,对应的目录结构为"Life-sciences/uni 阅读全文
posted @ 2013-09-11 11:12 甲马 阅读(307) 评论(0) 推荐(0) 编辑

2013年9月1日

摘要: 导师的项目需要一大波数据,据称至少要几十个T(吐槽,哪里有那么多数据。。。),于是我开始每天在网上找rdf的数据。大多数数据都在国外的服务器上,联通的PPPoE很不稳定,而且数据集的大小也千差万别,从几个K到数十G,用Wget下载数据每次都需不停地去检查下载状态,输出日志。考虑了一下以后要与这个任务长期为伴了,所以写了几个脚本,让服务器自己下并且负责监控下载状态,一旦有下载失败或者某个数据集下载成功,就短信提醒我。嗯,遇到的问题一一记录在这里,脚本写完之后也贴在这里。1. 去重:!a[$0]++ "tmp"tmp中保存了多个记录,每行一个记录。记录有重复。我将tmp文件中的 阅读全文
posted @ 2013-09-01 10:31 甲马 阅读(994) 评论(0) 推荐(0) 编辑

2013年7月16日

摘要: 对于网页上的链接,”–accept”和”–reject”参数是不会起作用的,因为他们只对文件操作起作用,只能用在目录中(例如ftp)。所以一定要用”lynx -dump”参数来代替。$ lynx -dump ftp://ftp.xxx.com/pub/lg/ |grep gz$ |awk {print $2} > urllistlynx的输出结果可以被各种GNU文本处理工具过虑。以”gz”结尾的地址放入urllist文件里。写一个简单的bash脚本来自动下载这个文件里的目标文件:$ for x in $(cat urllist)> do> wget $x> done或者 阅读全文
posted @ 2013-07-16 09:34 甲马 阅读(857) 评论(0) 推荐(0) 编辑

2013年5月31日

摘要: 最近在写MapReduce时,一个job提交上去,跑了二十多个小时,结果reduce阶段才完成1.7%.按照这个速度,重新看了源代码,问了学长,问了google,发现可能是因为Reduce中对对字符串的分割/合并操作比较多。把String改成了StringBuffer,问题解决。半小时跑完。 阅读全文
posted @ 2013-05-31 19:52 甲马 阅读(141) 评论(0) 推荐(0) 编辑

2013年5月3日

摘要: Hama日志中总会看到这两句话:13/05/03 11:58:57 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable13/05/03 11:58:57 WARN snappy.LoadSnappy: Snappy native library not loaded这两个库都是压缩文件时使用的,最近用Hama跑一些较大的数据的时候总是报错,不知道是不是跟这两个库不能loaded有关,解决之 阅读全文
posted @ 2013-05-03 12:40 甲马 阅读(4614) 评论(1) 推荐(0) 编辑

导航