- 浏览: 30075 次
- 来自: ...
-
最新评论
-
chenwq:
Chain中貌似只有ChainMapper(addMapper ...
ChainMapper和ChainReducer的实现原理 -
Genie13:
很不错的例子啊Conn3 c2 = new Conn3(); ...
ChainMapper和ChainReducer处理数据流程示例 -
zz_19830103:
谢谢了,学习了
在Hadoop平台上运行程序时,导入第三方类库的方法 -
muruan:
真是绝好文章,很有帮助,谢谢博主!
在Hadoop平台上运行程序时,导入第三方类库的方法
文章列表
Spark GraphX源码解析启动篇(1)
- 博客分类:
- spark
一直负责公司的大数据平台技术建设,也一直在使用并研究spark,讲spark架构和原理的文章非常多,但是真正对graphx,mllib,sql,r等API实现源码介绍的文章非常少,也刚好最近有些时间,就把自己使用和学习的一些心得写出来,希望会有些帮助。
首先就是图计算框架GraphX,在淘宝中有比较多的应用。图计算顾名思义,就是对图结构进行分析计算,现实中社交网站,电网,互联网,物联网等等无一不是一种图结构,图的结构在现实生活中无处不在。
GraphX基于Spark的RDD计算框架来实现,基于spark的RDD实现了分布式的图数据结构,这个图结构是一个有向多重 ...
首先感谢阿宝同学的帮助,我才对这个gc算法的调整有了一定的认识,而不是停留在过去仅仅了解的阶段。在读过sun的文档和跟阿宝讨论之后,做个小小的总结,如果有谬误,敬请指正。 CMS,全称Concurrent Low Pause Collector,是 ...
storm号称是实时领域的hadoop,作为一个平台型系统,他提供了实时计算,线性扩展,ack机制,事务型Tom,DRPC,Trident等等强大的服务,应用场景也非常广泛,作为一个storm的爱好者,第一步肯定是迫不及待的想编译一下源代码,下面简单的介绍一下storm的在线编译过程,离线编译过程稍微有点复杂(有需求的可以单独联系)。
1.编译storm源代码之前需要先安装好以下软件:
jdk1.6.0_37.tgz(clojure就是运行在jvm之上,这个不用多说)
Python-2.6.tgz(可以使用python编写Topology)
e2fsprogs-1.42.3_ ...
在将编写的MapReduce程序提交到Hadoop集群中运行时,往往需要导入第三方类库,否则很容易报出:Error: java.lang.ClassNotFoundException:异常,首先说一下以下四种解决方法:
(1) 将第三方jar包放在集群中每个节点$HADOOP_HOME/lib目录下或者JDK的ext目录下,其中$HAOOP_HOME为Hadoop的根目录。
这种方法在linux下还可以写一个shell脚本,用scp或者rcp命令来实现,这脱离了java范畴,依赖操作系统,不好。
(2) 将所有的jar包解压缩,然后把他和源程序的 ...
http://www.lupaworld.com/thread-18917-1-1.html
http://blog.csdn.net/flyoxs/archive/2010/11/30/6044695.aspx
final:
final关键字可以用来声明:不可变变量,静态常量,不可变参数,不可重写方法,不可继承类(String),final类的变量方法自动变成了final的,不可变引用变量可以改变其指向的对象的内部状态,但是不能改变他指向的对象。
finally: 在异常处理时经常遇到,被包含在try,try/catch中,用来保证无论try语句中是否抛出异常,finally中的都能保证代码被执行,一般可以把流关闭语句,数据库连接关闭语句,网络连接关闭语句等放在finally语句块中,保证系统资源被释放,值得一提的是finally语句在try子句里面的return语句之前,catc ...
Java内存回收机制:
好处:不用程序员管理对象的释放,减轻了编程负担,避免了大部分的内存泄漏问题。
坏处:GC线程影响了程序的性能和执行速度。
原理:
当一个对象在程序中不再被其他对象引用时,这个对象就可以被回收,具体回不回收跟具体的JVM及其垃圾回收算法是相关的。实现时,比较常见的一些算法就是火车算法,引用计数器算法,对象引用树,每个线程一个,值得一提的就是GC只管理堆内存,而不管理方法区,栈区,本地方法栈区,程序计数器等部分内存,而且内存管理的时候也会把堆区分为新生代和年老代去管理。程序员在编程的时候可以通过System.gc()方式,来显示的提醒JVM进行垃圾回 ...
MapReduce is a good fit for problems
that need to analyze the whole dataset, in a batch fashion, particularly for ad hoc analysis.
MapReduce suits applications where the data is written once, and read many
times, whereas a relational database is good for datasets that are continually updated ...
由于项目中要用到ChainMapper和ChainReducer来实现数据处理流程的优化,故今天特意花了半天的时间研究了一下这两个类的实现源代码,先总结如下:
实现类:Chain,ChainMapper , ChainReducer
第一步:配置链
JobConf
addMapper
setReducer
addMapper
第二步:实现:chain
configue:
map:
reduce:
close:
传值还是传引用 ...
package com.oncedq.code;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import java.text.SimpleDateFormat;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.io.Writab ...
java1.5增加了新特性:可变参数。适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理。注意:可变参数必须位于最后一项。当可变参数个数多余一个时,必将有一个不是最后一项,所以只支持有一个可变参数。因为参数个数不定,所以当其后边还有相同类型参数时,java无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项。
http://www.infoq.com/cn/news/2009/09/codegen-java-development
- 2009-12-28 21:04
- 浏览 708
- 评论(0)
1. 有什么用?
答:
模型驱动的开发,用户构建好一个数据模型,程序自动会生成。
数据模型实现了最大限度的重用,提供了在不同的框架中迁移代码的能力,只需要改模板,数据模型保持不变。
相对于死板的写代码,代码生成技术提供了更好的变更能力,改变了传统的软件开发流程,有一点不好的是调试太不方 便,很容易出错。
2. 怎么用?
数据流程是一个模型,定义好模型参数。
数据流程的执行是一份代码,写好执行代码。
博卡工作助手项目虽然顺利完成了一个初始版本,从软件工程的角度来总结一下这个过程中的一些经验吧:
1.