Err*_*404 5 database hbase graph-theory graph data-structures
我一直在玩使用图表来分析大数据.它的工作非常好,非常有趣,但我想知道该做什么,因为数据变得越来越大?
让我知道是否有任何其他解决方案,但我想尝试Hbase,因为它横向扩展,我可以让hadoop在图上运行分析(我的大部分代码已经用java编写),但我不确定如何构建一个nosql数据库上的图形?我知道每个节点都可以是数据库中的一个条目,但我不确定如何建模边缘并为它们添加属性(如节点名称,属性,pagerank,边缘权重等).
看看hbase/hadoop是如何在大表和map之后建模的,我怀疑有一种方法可以做到这一点但不确定如何.有什么建议?
此外,这是否有意义我正在尝试做什么?或者它是否有更好的大数据图解决方案?
您可以以列为导向的方式在HBase/Accumulo中存储邻接列表.我对Accumulo更熟悉(HBase术语可能略有不同),因此您可以使用类似于以下的模式:
SrcNode(RowKey) EdgeType(CF):DestNode(CFQ) Edge/Node Properties(Value)
Run Code Online (Sandbox Code Playgroud)
其中CF = ColumnFamily,CFQ = ColumnFamilyQualifier
您还可以使用以下内容将节点/顶点属性存储为单独的行:
Node(RowKey) PropertyType(CF):PropertyValue(CFQ) PropertyValue(Value)
Run Code Online (Sandbox Code Playgroud)
PropertyValue可以是CFQ或Value
从@Arnon Rotem-Gal-Oz提到的图形处理角度来看,你可以看看Apache Giraph,它是Google Pregel的一个实现.Pregel是Google用于大图处理的方法.
最近提交了使用HBase/Accumulo作为giraph的输入(2012年3月7日)作为Giraph的新功能请求:HBase/Accumulo输入和输出格式(GIRAPH-153)