想到开头,没想到结尾系利——MapReduce自定义分区策略,序列化相关的坑

有需求实现按手机号所属省份划分来对用户进行划分,相同省份的用户打印在同一文件中,想到可以使用MapReduce的自定义分区策略来实现,大致思路是获取手机号,获取数据库手机号号段--省份--省份编号对应关系,查询手机号查询对应关系,把省份编号作为分区编号即:Tasks编号,修改下面算法即可:

p_Id=hash(userPhoneNumber)%TasksNum.

然而想到开头,没想到结尾,却入序列化的坑

定义对象时,偷巧把一个变量的赋值操作定义为内部变量的累加,却在后面忘记使用重载的set方法给对象成员变量赋值,使用了单个的set方法去赋值,忘记了那个需要累加赋值的成员变量,然后~就没有然后嘞

 

好吧,偷鸡不成,反蚀把米,就比较尴尬了,报了一个下图的空指针的错误:

想到开头,没想到结尾系利——MapReduce自定义分区策略,序列化相关的坑

出了一个傻瓜式的错误,但是Bug是自己写的,怎么也得爱它不是,那就一个字:撸它!

想到开头,没想到结尾系利——MapReduce自定义分区策略,序列化相关的坑

想到开头,没想到结尾系利——MapReduce自定义分区策略,序列化相关的坑

出一次Bug不容易,那就再象征性的打个断点,DeBug验证一下吧:就大家示范错误怎么DeBug(实际代码不精的悄小声BB)

想到开头,没想到结尾系利——MapReduce自定义分区策略,序列化相关的坑

修改代想到开头,没想到结尾系利——MapReduce自定义分区策略,序列化相关的坑码,使用重载的set方法为flowBean赋值,成功爬坑