一、SnappyData诸组件的关系
发布于 8 个月前 作者 linxiaobo 540 次浏览 来自 分享

以下内容都是基于SnappyData 1.0版本,如果是其他版本可能会有些出入。 SnappyData整合了Spark,Gemfire,GemfireXD,Spark Job Server等组件,那么这些组件是如何协作,完成HTAP功能的呢? 1. 各个组件是如何启动的? 我们先把Spark Job Server放到一边,因为它为SnappyData提供的功能相对独立。 GemfireXD作为一个容器或者说是一个桥梁将Spark和Gemfire融合在一起。 GemfireXD负责启动的类是FabricServerImpl,那么SnappyData中的Locator,Server,Lead各个角色又是如何完成自己特定功能的启动的? 其中Locator和Server是GemfireXD里的角色,FabricServiceImpl的startImpl会启动Gemfire; 而Lead在SnappyData中扮演了Spark的Master的角色,负责启动Spark和Spark Job Server。 2. 各个组件提供了哪些服务? GemfireXD为SnappyData提供了JDBC接口,这个是一个Thrift Server服务。 GemfireXD提供了标准SQL的解析及事务的支持。 GemfireXD的ij模块为SnappyData的snappy-sql提供了repl。 而spark-shell和spark-sql依旧由Spark提供。 Spark Job Server提供了一种类似spark submit的方式提交Job给SnappyData,目前这个是通过snappy-job.sh脚本实现的。

回到顶部