本打算使用mapr的虚拟机在里面进行开发,使用eclipse进行调试,它的问题是,有时候服务不能完全起来,
如jobtracker和tasktracker,cldb没有起来,重启服务有可能解决.
但另外一个问题是我使用eclipse和0.20.2的插件,无法连接DFS location,无法调试hadoop示例程序.
最后决定在Vertica的虚机中直接安装apache版的hadoop,然后在里面进行调试,还可以方便地连接Vertica.
在进行单点调试的时候,你会发现有些情况是无法处理的,譬如说reducetasks>1的情况,在单点调试的情况下是无法实现的,这个时候可以使用log输出,来进行判断.
伪分布模式下,跑多个Tasks的任务,发现reduces task阶段无法完成. 这是一个问题,记录下来.
今天把关于数据分布的课程视频听了两遍,一是锻炼了自己的耐性,二是觉得听这个的时候可以促进我思考一些事情, 觉得蛮有意思,尤其是在听到均匀分布的时候,我想到了我在项目中使用到的一个随机数生成问题,就是我有N个reduce 结点,hadoop中默认的hashpartitioner满足我的需要,因为它是根据传的key进行计算的,而我在使用的时候传的key是同一个值,都是表名,所以我需要想个办法,在导流的时候把数据均匀的分配给这些reduce nodes,而这个时候我就使用了random().next(numberofpartitions).
当时我也没有想到它生成的随机数是符合什么分布的,但是实验效果看来还是蛮好的,今天听到这里的时候,我立马就想到了这个问题,就想生成的这个数是不是均匀分布的呢?经过查找资料,发现java中这个算法生成的随机数是0到N(不包含)之间的均匀分布的随机数.基本上是符合我的这个需求的.
Hadoop,Vertica环境搭建