草庐IT

graph-algorithm

全部标签

hadoop - 基于 Apache Atlas 和 Hive,元数据存储在哪里?在 Titan Graph Repository 中还是在 RDBMS with Hive 中?

我已经安装了Atlas、Hive和Hadoop并正确配置了它们。但是我想知道导入元数据后元数据存储在哪里?根据Atlas的一些文档,它说元数据将存储在Titan图形存储库中。然而,根据Hive的一些文档,它表明元数据将存储在RDBMS中,例如MySql。如果我同时安装Atlas和Hive,元数据将具体存储在哪里? 最佳答案 虽然现有答案并没有错,但我认为最好指出提问者似乎混淆了两种元数据。Hive元数据:这确实存储在关系数据库中,默认使用MySQLAtlas元数据:这存储在HBase中(旧版本的Titan由Hbase支持?)Hive

hadoop - java.lang.IllegalArgumentException : Can't find HmacSHA1 algorithm 异常

通过brewinstallhadoop安装hadoop后,我想启动hadoop,在mac上运行hadoop2.7.2/start-all.sh时出错,日志:SwingHu19:53:4516/08/1919:50:25INFOnamenode.FSNamesystem:fsOwner=swinghu(auth:SIMPLE)16/08/1919:50:25INFOnamenode.FSNamesystem:supergroup=supergroup16/08/1919:50:25INFOnamenode.FSNamesystem:isPermissionEnabled=true16/0

hadoop - 在 hadoop-gremlin 中使用 OneTimeBulkLoader 的 janusgraph 引发 "Graph does not support adding vertices"

我的目标:使用SparkGraphComputer将本地数据bulkLoader到janusgraph,然后在hbase和ES上构建混合索引我的问题:Causedby:java.lang.UnsupportedOperationException:Graphdoesnotsupportaddingverticesatorg.apache.tinkerpop.gremlin.structure.Graph$Exceptions.vertexAdditionsNotSupported(Graph.java:1133)atorg.apache.tinkerpop.gremlin.hadoop

algorithm - 当 k 个元素不适合内存时,mapreduce 中的 top-k

当k太大而无法在内存中容纳k个元素时,从数据集中查找前k个元素的有效MapReduce算法是什么?我说的是数百万个元素的数据集,例如k。其中3/4。想象一下,每个元素都有一个值,我们想要找到具有最高值的k个元素。例如数据形式:e1:5e2:10e3:7e4:8然后,前2个是e4和e2(不关心它们的相关顺序)。我看过thesolutiontotheproblem,whenkissmallenough,但它不缩放。显然,使用单个reducer同样不切实际(内存不足错误)。 最佳答案 我想我找到了我要找的东西。在这里找到了答案:http:

hadoop - Spark : Export graph data to anything (Hive, 文本等)

我有一个以这种方式创建的星图valgraph=Graph(vertices,edges,defaultArticle).cache我的顶点是RDD[(Long,(String,Option[String],List[String],Option[String])]我的边是RDD[Edge[长]]如何将此图形/边/顶点保存到Hive/文本文件/其他任何内容,以及如何读回它?我查看了SparkSQL文档和Spark核心文档,但我仍然没有成功。如果我执行saveAsTextFile(),那么当我读回它时,它是一个RDD[String],这不是我需要的....编辑:Daniel提供了另存为对象

algorithm - 集群作业调度算法

我正在寻找适用于以下问题的算法:有多台电脑(具体数目未知)。每台计算机从某个中央队列中提取作业,完成作业,然后提取下一个。工作是由一些用户组产生的。有些用户提交了很多工作,有些则提交了一点。作业消耗相等的CPU时间(不是真的,只是近似值)。中央队列在调度作业时应该是公平的。此外,提交大量作业的用户应该拥有一些最小的资源份额。我正在为这个调度寻找一个好的算法。考虑了两个候选人:类似Hadoop的公平调度程序。这里的问题是:当我的集群大小未知时,我在哪里可以获得最小份额?将一些惩罚与每个用户相关联。安排用户的工作时增加惩罚。使用将作业调度给用户的概率作为1-(归一化惩罚)。这有点像步幅调度

algorithm - Hadoop 适合哪种类型的并行算法?

我完全不是Hadoop专家,但我的理解是Hadoop非常适合并行算法,其中并行性表现为map-reduce形式或任何其他类型的分而治之。还有其他类型的算法技术也很适合吗? 最佳答案 Hadoop适用于令人尴尬的并行工作负载(并行任务之间没有依赖性)。进程之间没有消息传递机制。Map和Reduce进程遵循基于IO的通信模式,这本身就是一个很大的开销。MapReduce不适合编写迭代算法(例如KMeans、PageRank),因为每次迭代都是一个单独的mapreduce应用程序,并且由于巨大的IO开销,算法的性能会下降。对于迭代算法,您

algorithm - 为什么我们说 map-reduce 比传统方法更好地解决了 "Paper reference"问题?

据说当我们希望对论文引用进行统计时,map-reduce可以比传统方式做得更好,因为传统方式涉及大量内存/磁盘切换。我不太明白为什么传统方法不好。假设我只在一台机器上运行map-reduce(没有集群),它是否仍然比传统方式更好地解决了一些问题?或者换句话说,“map-reduce”这种算法范式本身,从算法的角度来说,在解决问题上是否有一些优势?谢谢。 最佳答案 AtbestM/R允许重新应用与高级统计包相同的算法。但更典型的是,在使用的算法中会做出一些牺牲——以允许以分布式方式运行。Map/Reduce在交叉采样(或任何其他采样方

algorithm - 通过仅知道开始和结束的集合来估计当前进度

在只知道第一个和最后一个项目而不是项目数量的情况下,如何估算迭代遍历集合的进度?AAAAAAA............?........ZZZZZZZZZZZZ第一项和最后一项保证是整个集合的字典序最小值和最大值。可以假定项目值的分布接近均匀。您收到元素的顺序是未知的,可能无法预测,也可能是有序的。项目保证是唯一的。只要随着时间的推移,估计值通常会接近99.999%,即使它出现波动也没关系。这让我想起了Germantankproblem除了没有(据我所知)一种方法来减去或获取字典顺序中项目之间的距离。例如,我正在考虑获取尚未收到的最大项目并将其与最后一项进行比较,但我不知道如何获得任意

algorithm - 对于相似图像有什么好的最近邻算法吗?

我正在寻找一种可以在大型集合中搜索相似图像的算法。我目前正在使用SURFimplementation在OpenCL中。一开始我用的是KNN搜索算法将每个图像的兴趣点与集合的其余部分进行比较,但测试表明它不能很好地扩展。我还尝试了KNN-Join的Hadoop实现这在HDFS中确实占用了大量临时空间,与输入数据量相比太多了。事实上,由于我的输入向量(64)的维度,成对距离方法并不合适。我听说过LocallySensitiveHashing,想知道是否有任何免费的实现,或者是否值得实现它,也许还有另一种我不知道的算法? 最佳答案 IIR