HDFS中存储了什么?为什么Titan执行查询时map-reduce计算速度如此之快?



我现在正在学习泰坦。我在远程模式下使用Titan和HBase。

现在有三个问题把我弄糊涂了。我在下面描述了它们:
  1. 在TinkerPop3文档中,它说"任何OLAP操作的结果都存储在HDFS中,可以通过HDFS访问。"但是现在我使用Titan进行OLTP,在这种情况下HDFS中存储了什么?

  2. 当我们使用Titan连接HBase成功时(通过Java IDE),我们可以看到在HBase shell中创建的表并扫描其内容。表中内容"列"的含义是什么?它们在图中表示顶点id吗?

  3. 当我测试Titan的性能时,我观察到查询的速度比普通的map-reduce作业快。为什么泰坦能做到呢?在Titan- documentation中,他们说Titan引擎"Titan- hadoop"使用并行map-reduce模型。我可以得到更详细的介绍吗?

  1. Titan架构图有助于显示OLTP和OLAP使用之间的差异。请参阅架构图的右侧:TinkerPop API - Gremlin。OLTP是Titan最常见的用法,无论你选择哪种后端存储(Cassandra, HBase, BerkeleyDB)。当您使用Titan-HBase执行OLTP查询时,HDFS中不会存储任何内容。事实上,Titan-HBase的OLTP根本不需要HDFS/Hadoop

  2. 在HBase中扫描Titan表的内容时,您会发现图的序列化表示。Titan对键/列/值使用数据压缩技术,因此您会发现这些数据不是人类可读的。您可以在Titan文档中阅读更多关于存储布局的细节。

  3. 请参阅第1条的答案,您可能一直在运行OLTP查询。hadoop风格的OLAP图形处理是通过图形计算机完成的。它使用TitanHBaseInputFormat从后端存储读取数据,然后使用TinkerPop图形计算机(Spark或Giraph)运行OLAP作业。请参阅上面架构图的左侧:GremlinGraphComputer。在Titan文档中也有一些相关的文档

最新更新