视界云服务
首先建议题主描述清楚应用场景,否则别人做的方案可能都不符合需求。
就Hadoop和OpenStack的纠结而言,支撑数据分析用前者,做资源管理用后者。
=================补充=============
题主的需求,实质是搭建一个IoT实时大数据平台,而不是一般意义的私有云。IoTa大数据平台除了数据采集和结果反馈,其余部分和一般的大数据平台相差不多。OpenStack长于管理VM资源管理,Hadoop长于批处理,不擅长实时处理,所以需要寻找一种更加完善的解决方案。这里推荐考虑Storm或者Apache Flink。
OpenStack是一个开源的IaaS实现,由Nova、Cinder、Neutron、Swift、Glance等一系列相互关联的子项目组成,可以理解为云计算领域的Linux。OpenStack架构松耦合,高可扩展,能适应不同企业的需求,已经成为IaaS私有云事实标准。国内外各大厂都在OpenStack上有很大的投入。当然项目成长的同时,也受到大厂博弈的一些影响,但项目本身就是大家求同存异的结果,我们相信OpenStack会在竞合中有更美好的未来。
大数据平台可以完全不鸟OpenStack,分布式文件系统有HDFS,资源调度和管理YARN就行。YARN都已经支持Docker,希望细粒度调度模式可以考虑Mesos,Mesos提供良好的API,支持很多成熟的框架,不过Mesos不在Hadoop生态中,这是一个缺憾。Apache Hadoop能够以低成本进行海量数据的多维统计分析,还是很有优势。
核心流式计算部分,有Storm、Spark、Flink可以选择。
Storm编程模型简单,毫秒级延迟,容错性、扩展性和可靠性都比较好,在国内有很多团队采用。不过Storm只是流计算框架,且不能直接利用YARN。
Apache Spark是和Hadoop一样流行的开源大数据框架,社区活跃,在流计算、图处理、机器学习方面都投入很大,支持对SQL的优化,很适合多种大数据平台的需求,不过Spark Streaming本质还是批处理,把数据流分解成一系列小的RDD,通过时间窗来控制数据块的大小,有测试说只能支持秒级计算。
Apache Flink是可扩展的批处理和流式数据处理的数据处理平台,能够基于同一个Flink运行时提供支持流处理和批处理两种类型应用的功能。不同于Spark,Flink把批处理当初特殊的流处理,并且支持增量迭代,这是非常赞的设计,可以快速地处理数据密集型和迭代任务,性能很有保证。不过目前Flink用户群和社区还没有Spark那么强大。但Flink的未来很值得期待,可能需要时间的沉淀。
最后,上一张网易猛犸大数据平台架构图,供参考。
网络观察家
深度学习社区
最好是用OpenStack搭建iaas,做资源池化,然后把hadoop作为应用跑在openstack iaas上,即使用openstack提供的虚拟机,块存储,对象存储,vpc,安全组能力。