storm是一个近似于实时的计算框架,甩开hadoop上的原生mapreduce计算框架不只一条街。如果能将storm引入到hadoop中,对存储于hdfs的数据进行分析必然极大的提高处理性能。storm-yarn就是这样一个项目,由yahoo实现,目前已经开源。
除了storm-yarn试图将storm整合进hadoop,以提升hadoop的分析处理能力的尝试之外,Hortonworks也高调宣布在2014年推出整合了storm的hadoop发行版。当然Hortonworks的整合会基于storm-yarn,毕竟它们都属于yahoo系。
Yarn是一个two-tier solution,将资源管理(resource managing)和job monitoring分离开,放到不同的实体上进行处理。在Master Node上,专注于Resource方面的管理(目前仅支持cpu, memory),而将job monitoring由application master来负责。
楔子
或许谈起storm是大数据实时计算框架已经让你不明觉厉,如果说storm还可以跟机器学习算法(ml)有机的结合在一起,是不是更加觉着高大尚呢。trident-ml就是一个这样让人无限遐想的产品。
其实要讲trident-ml无非是要回答这样几个问题,
- 什么是ml
- 什么是trident
- 为什么要将trident用于ml
trident-ml的官方站点 https://github.com/pmerienne/trident-ml
什么是ml
关于什么是ML(Machine Learning)以及machine learning的常见算法有哪些,详见维基百科中的介绍,要是觉着这解释不过瘾,那就来点有料的来自princeton大学的讲义
什么是trident
这个问题在本博的系列文章中已经屡次提及并有详尽的解释。
为什么要将trident和ml绑定在一块
Machine Learning机器学习库运行在trident之上使得分析的结果更为实时的反映出来,加快了调整步骤。举个例子吧,比如在逛京东或是amazon,通过这个实时的机器学习过程,后台服务可以给客户找到更为精确的推荐产品。
有什么同类的产品么
在软件这个世界里,从来不存在什么唯一,即然有trident-ml,那么就能找到同类的产品。
谈到机器学习,你可能听说过在该领域最牛的处理语言R。到了这里,想必已经料到与trident-ml相竞争的是一个什么东东了,对那就是trident-r。
trident-r的官方地址 https://github.com/quintona/storm-r
与trident-ml相比,trident-r表现的不够活跃,略显沉闷。
总结
关于apache storm,本博已经花了相当的篇幅来聊它的里里外外。从明儿开始,换个话题聊聊了。或者是yarn,或者是linux kernel或者是server application,谁知道呢?
Apache Flink闻名已久,一直没有亲自尝试一把,这两天看了文档,发现在real-time streaming方面,Flink提供了更多高阶的实用函数。
用Apache Flink实现WordCount