03 2016 档案

摘要:输入: 代码如下: 算法还有一些瑕疵。 阅读全文
posted @ 2016-03-28 20:48 lz3018 阅读(1273) 评论(1) 推荐(0)
摘要:1)IPv4地址是一个32位的二进制数,通常被分割位4个“8位二进制数”,为了方便,通常使用“点分十进制”的形式表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数,另外,IP地址也可以使用一个3的整数T表示,根据点分十进制中的a,b,c,d,计算T的方法就是: 2)那 阅读全文
posted @ 2016-03-28 17:24 lz3018 阅读(1250) 评论(0) 推荐(0)
摘要:1)进行进制转换之前首先需要明白”进制“的概念,首先N进制的数字元素取值范围是0~N-1,即N进制中有N个数字元素,另外,就是“进制”中的“位”的概念,N进制下一个数字序列(N进制形式),序列中每个位上的数字乘以这个位对应的数值,然后累加,就得出这个N进制数对应的十进制形式。N进制下,从低位到高位( 阅读全文
posted @ 2016-03-28 13:02 lz3018 阅读(342) 评论(0) 推荐(0)
摘要:在Java中主要有两种方法来获取随机数,分别是通过Math.random方法和Random类获得随机数,不过Math.random方法其实也是通过生成一个Random类实例,然后再生成随机数的,也就是说,实际上两种方法都是使用Random类来生成随机数的。随机数的生成的与产生随机数的种子有关: 1) 阅读全文
posted @ 2016-03-16 20:24 lz3018 阅读(1175) 评论(0) 推荐(0)
摘要:1)使用本方法计算F*B,其中F是1000*1000的矩阵,B是1000*20000的矩阵,使用三个节点的集群,每个节点一个CPU核(集群装在虚拟机里,宿主机只有4个CPU核),每个节点配置一个map槽,一个reduce槽,完成矩阵运算时间为5mins。2)源码如下: 1 /** 2 * Created with IntelliJ IDEA. 3 * User: hadoop ... 阅读全文
posted @ 2016-03-15 14:39 lz3018 阅读(341) 评论(0) 推荐(0)
摘要:SeqReader是我定义的一个读取SequenceFile文件,并将部分(key,value)打印到控制台窗口的类,其完整代码如下:  关于生成可执行jar包,这里只说几点需要注意的地方,详细信息可以参考:http://www.cnblogs.com/lz3018/p/5228639.html 1 阅读全文
posted @ 2016-03-14 20:49 lz3018 阅读(322) 评论(0) 推荐(0)
摘要:1)子类对象引用转变为父类的引用,称为向上转型。按照目前的理解,向上转型的一个重要作用就是方便实现多态,在向上转型的过程中,相对于父类来说,子类多余的方法丢失,也就是访问不到了。不过再通过向下转型就可以访问了。 2)父类对象引用转化为子类引用,称为向下转型。使用向下转型之前,最好使用A instan 阅读全文
posted @ 2016-03-13 23:13 lz3018 阅读(283) 评论(0) 推荐(0)
摘要:使用hdfs的api接口分别实现从本地上传文件到集群和从集群下载文件到本地。 1)上传文件主要是使用FileSystem类的copyFromLocalFile()方法来实现,另外我们上传文件时可以指定以多大的物理块来存储此文件,使用conf.set("dfs.block.size","8388608 阅读全文
posted @ 2016-03-13 20:05 lz3018 阅读(2319) 评论(0) 推荐(0)
摘要:1)IDEA中文乱码,解决方法:http://blog.csdn.net/zht666/article/details/8953516 2)卸载OpenJdk,http://my.oschina.net/lxrm/blog/110638?fromerr=WFdow8FP 3)Java包命名规范,ht 阅读全文
posted @ 2016-03-11 11:04 lz3018 阅读(417) 评论(0) 推荐(0)
摘要:还是计算矩阵的乘积,待计算的表达式如下: S=F*[B+mu(u+s+b+d)] 其中,矩阵B、u、s、d分别存放在名称对应的SequenceFile文件中。 1)我们想分别读取这些文件(放在不同的文件夹中)然后计算与矩阵F的乘积,这就需要使用MultipleInputs类,那么就需要修改main( 阅读全文
posted @ 2016-03-09 14:24 lz3018 阅读(1195) 评论(0) 推荐(0)
摘要:虽然是在IDEA中完成了使用分布式缓存的方法进行矩阵乘积,不过当将源码编译,打成jar包,上传到集群上运行的时候却一直报“ no job jar file set”,"ClassNotFound",其实就是找不到jar包,原因应该是与昨天更改了系统环境有关(因为使用hadoop自带的WordCoun 阅读全文
posted @ 2016-03-08 17:57 lz3018 阅读(447) 评论(0) 推荐(0)
摘要:1)“no job jar file set”原因 又是被折腾了一下午呀~~,“no job jar file set”就是找不到作业jar包的意思,然后就是提示找不到自定义的MyMapper类,一般原因是没有设置jar包的类,也就是在配置作业的时候,没有如下这行代码: but,最悲催的就是,我真的 阅读全文
posted @ 2016-03-08 17:44 lz3018 阅读(727) 评论(0) 推荐(0)
摘要:使用分布式缓存有两点需要注意,这是今天折腾了一天的体会。 1)利用DistributedCache类添加缓存文件的语句要紧紧跟在Configuration实例之后 原先添加在第9行,运行一直报“空引用”的错,将 DistributedCache.addCacheFile(new URI(cacheP 阅读全文
posted @ 2016-03-07 17:27 lz3018 阅读(395) 评论(0) 推荐(0)
摘要:之前博客里介绍了如何自定义DoubleArrayWritable,并将该类型的value写入SequenceFile文件中,为了能够使用命令查看这个文件中的内容(果然坑都是一步一步给自己挖的)参考了网友博客的内容,将DoubleArrayWritable类型打成Jar包,然后将这个Jar包的路径添加 阅读全文
posted @ 2016-03-07 17:17 lz3018 阅读(5085) 评论(0) 推荐(0)
摘要:深刻的体会就是,“java.lang.NullPointer.Exception”就是空指针异常可能是由于数组部分元素未被初始化引起的。 1)使用jmatio将mat数据转化为SequenceFile形式的数据,代码如下: 1 /** 2 * Created with IntelliJ IDEA. 阅读全文
posted @ 2016-03-06 12:43 lz3018 阅读(1017) 评论(0) 推荐(0)
摘要:首先介绍涉及到的知识点,如下: 1)value的类型是IntArrayWritable,将整型数组值取出的方法有两种。 a.其一,就是使用value的toArray()方法,返回值是一个Object obValue,然后使用Array.get(obValue,index),就可以获得数组中的元素(O 阅读全文
posted @ 2016-03-05 20:05 lz3018 阅读(570) 评论(0) 推荐(0)
摘要:之前有篇博客(http://www.cnblogs.com/lz3018/p/5243503.html)介绍以SequenceFile作为输入源进行矩阵乘法的过程,首先是将矩阵存储到SequenceFile文件中,然后使用hadoop命令:hadoop fs -text /10IntArray 查看 阅读全文
posted @ 2016-03-05 16:32 lz3018 阅读(893) 评论(0) 推荐(0)
摘要:开头对这边博客的内容做个概述,首先是定义了一个DoubleArrayWritable的类,用于存放矩阵的列向量,然后将其作为value写入SequenceFile中,key就是对应的矩阵的列号,最后(key,value)从SequenceFile中读出,与另一矩阵做乘法。完全通过IDEA在本地调试程 阅读全文
posted @ 2016-03-04 21:23 lz3018 阅读(2799) 评论(0) 推荐(0)
摘要:1)在编写MR程序的时候经常会有如下代码: String uri=“。。。。”; Configuration conf=new Configuration(); FileSystem fs=FileSystem.get(URI.create(uri),conf); URI究竟是什么东西?有什么用?2 阅读全文
posted @ 2016-03-04 20:52 lz3018 阅读(4222) 评论(0) 推荐(1)
摘要:此输入格式的作用就是可以将来自多个不同文件的物理块作为一个split,然后由一个map进行处理。 http://www.blogjava.net/shenh062326/archive/2012/07/03/hadoop.html 阅读全文
posted @ 2016-03-04 09:24 lz3018 阅读(181) 评论(0) 推荐(0)
摘要:分布式缓存用于将使用的小文件首先分发到各个datanode节点上,然后利用map/reduce阶段的setup()方法将文件内容读入内存,加快程序执行。具体实现方法如下: http://demievil.github.io/2014/10/29/Hadoop-DistributedCache/ 阅读全文
posted @ 2016-03-04 09:16 lz3018 阅读(571) 评论(0) 推荐(0)
摘要:MultipleInput输入格式允许一个job的输入为多个文件夹下的文件(也就是多路径输入),并且不同文件夹下的文件可以实现不同的map逻辑,不过貌似必须使用相同的reduce逻辑。 http://blog.csdn.net/u010366796/article/details/44727471 阅读全文
posted @ 2016-03-04 09:13 lz3018 阅读(252) 评论(0) 推荐(0)