R和Hadoop在数据分析领域显示了其强大的功能,两者都是开源的,而其核心也都是面向数据的,故而两者的结合似乎成了顺其自然的事情了。这也为中小型企业在大数据时代进行多元、复杂、大批量的数据分析提供了一种解决途径。
就目前而言,R与Hadoop的结合品Rhadoop已经实现了R与HDFS文件系统的访问、读写;与Mapreduce的互通;与Hbase数据库的互通;与streaming计算模式的互通。当然以上的融合主要是Revolution Analytics公司的努力,在非结构化数据处理与R的结合方面也有一些其他的成果,如R与Mongdb的融合。这些实现为中小企业进行大数据处理展现了一缕曙光,其不再需要大批量的技术人员,学习难度也大大降低,更重要的是资金成本也不会增加很多。
正是Rhadoop的这些优势,促使了越来越多的人关注R语言,也关注R在企业数据分析中的应用。国内而言,已经有京东、NumerInfo等一些企业在用Rhadoop解决一些实际问题,也有张丹、李舰等人在学习推广Rhadoop的应用,更多的资料还是来源于Revolution Analytics公司网站(http://www.revolutionanalytics.com/big-data)及github(https://github.com/RevolutionAnalytics/RHadoop),而且有大批的跟随者开始追逐这一领域,比如统计之都的众多网友。
在未来,期望R能有Hadoop有更深层次的融合,能够融合Hadoop 2.x中的最新技术,能与yarn平台融合在一起,支持如图计算等其他的更多的计算框架,使得大数据在R中的分析和应用更加丰富多彩。
应用Rhadoop解决问题,一个好的方面,R已经和许多高级语言、数据库都有良好的融合,结合Hadoop更能从一个问题的宏观层面,更好的把握问题。毕竟目前的困境是解决数据的应用,包含了已经存在关系数据库中的结构化数据,也包含了可以放在Hadoop中的非结构化数据。利用混合技术,用各自擅长的技能去共同解决问题,展现数据的应用价值,才是大数据时代的核心,而R刚好具备,其已经成为各种工具所形成的一个生态圈的中心位置,为各种工具的连通提供了桥梁。下一步的问题就是如何通过这个桥梁,合理发挥各类工具的特长,在企业,教学、科研等方面创造更大的数据应用价值。
用Rhadoop解决问题的一个不可避免的瓶颈而言是R的内存计算模式,其所能处理的问题规模要注意内存的大小,防止内存溢出。一个好的方法是将其他工具,如Hadoop处理过后写在硬盘上的数据进行分块化处理,R也提供了类似bigtable的硬盘计算方法,相信这些问题可以得到更好解决。例如让R支持分布式计算?
更多的请查阅Revolution Analytics的技术白皮书Advanced ‘Big Data’ Analytics with R and Hadoop
===============================关于版权========================================
原创博文欢迎一切非商业性质的转载或其他方式的传播,但同时请保证作者信息和版权信息的完整性,也欢迎在本站注册并对本文进行补充性修正或内容增加,我们将在文中一并致谢。
商业性质的用途请联系作者,作者保留本文的所有权利。
gufe.hfding@foxmail.com