写ORC文件
与读入过程相对应,写ORC文件代码如下:
我们需要根据自定义的数据类型MyRow类实例化StructObjectInspector为inspector,然后使用OrcSerde对象将最终计算结果进行序列化并写入HDFS。其中MyRow类是通过扩展Writable类,对输出数据类型进行了定义,在类中完成了对输出表结构字段的定义和赋值,代码如下:
在上面的章节中,我们介绍了MapReduce开发在北京移动大数据平台上的应用背景和部分应用案例。尽管MapReduce由于处理机制中大量的磁盘读写带来了数据处理效率的瓶颈,但在日常离线数据处理任务中由于其成熟稳定的性能,MapReduce仍然扮演着十分重要的角色。
随着技术的不断发展,诸如Spark等更加快速的计算引擎也将逐步取代MapReduce的地位,我们也在一步步尝试替换和优化我们的应用场景,也欢迎大家多提意见和建议,谢谢!
作者简介:孙昊,毕业于Auburn Univeristy,获得EE工程硕士学位,专攻信息论与信息安全,现就职于北京移动网运中心。熟悉信息论与数理统计,善用Java、Scala语言编程,熟悉C、C++、Python语言以及H5、Javascript等网络编程语言,精通MapReduce编程框架,熟悉Storm、Spark Streaming大数据实时处理技术。2014年底加入北京移动eBDA大数据分析团队,担任团队大数据软件开发工程师,参与完成了搜索关键字产品、互联网流量视图、应用匹配产品、用户标签体系产品等大数据项目。eBDA大数据分析团队是一支扎根于北京移动网运中心,致力于提升数据价值、改善用户体验,取之于民用之于民的有理想有能力的团队。