问题标签 [giraph]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
giraph - 超图的大规模社交网络分析
我一直在尝试为超图实现大规模社交网络分析。但是 Apache Giraph 只允许简单的图和多图。II 找不到任何合适的方法在 Hypergraphs 中实现大规模 SNA。请建议我合适的方法。
hadoop - Amazon EMR 中的 Hadoop 2.4.0 和 Giraph 1.1.0?
我最近开始使用 hadoop,我正在尝试将它与 giraph 一起使用(因为我需要它来处理巨大的图表)。所以,为了构建 giraph(1.1.0,最新的稳定版本),我选择了 hadoop 的 2.4.0 版本(根据这个链接,它是 Amazon EMR 支持的最新版本)。我仍在进行本地测试,我什至还没有接近在 AWS 中进行全面部署,但我正在努力实现这一目标(在 Amazon EMR 中编程)。
但是,当我使用 Maven 构建 giraph 时(我避免使用 YARN 配置文件),我遇到了在这个错误中检测到的问题(HADOOP-10547)。所以,我不知道从这里选择哪个是最好的选择,我希望有人可以在这里帮助我:
- 选择 2.2 版本并尝试使用它构建 giraph(它是 2.4 之前的最高级版本,可用)。这个选项的缺点是我刚刚开始,我想使用最新的 hadoop 可用版本。
- 下载hadoop 2.4的源码,自己修复HADOOP-10547(因为AWS的hadoop 2.4版本好像没有这个修复),构建,之后尝试重新构建giraph。我只是自己构建hadoop,为了修复那个bug,我没有计划在那之后继续修改它。此选项的缺点是,我不确定是否可以在 AWS 部署中再次执行此操作(可能使用引导操作?)
也许我没有考虑在 Amazon EMR 中使用 hadoop 2.4.0 和 giraph 1.1.0 的顺序。
hadoop - Aster Data 和 Hadoop/Hive 之间的区别
Aster Data 中的所有组件似乎在 Hadoop 堆栈中都有类似的组件。
AFS => HDFS
SQL-MR => 蜂巢
AMC => 安巴里
ACT => 直线/蜂巢终端
用于存储元数据的 Postgres => Hive 可以配置为在任何 RDBMS 中存储元数据
Queen/Worker => NameNode/Datanode
SQL-GR => Giraph
除了提供一揽子预建功能外,还有什么与众不同的东西在 Hadoop 中不可用?
graph - 将节点链接在一起
我有一个基于图形的数据库,例如 Neo4j 或 Giraph,其中现有 50 个顶点和一些将它们连接在一起的边。
现在我想在图中引入一个新的 Vertex - X。然而,顶点需要对所有其他节点运行相似性算法。相似度得分最高的节点将形成图的新边。
我的问题 - 1 - 这可以在 Giraph/Neo4j 中做到吗?2 - 您可以为此提供任何参考链接吗?
谢谢,马尼什
giraph - Apache giraph 上的 PageRank 作业未生成输出文件
命令:
结果:
15/05/07 11:28:38 INFO utils.ConfigurationUtils:未指定边缘输入格式。确保您的 InputFormat 不需要一个。15/05/07 11:28:38 INFO utils.ConfigurationUtils:未指定边缘输出格式。确保您的 OutputFormat 不需要。15/05/07 11:28:38 INFO utils.ConfigurationUtils:在 GiraphConfiguration 中将自定义参数 [giraph.SplitMasterWorker] 设置为 [false] 15/05/07 11:28:39 警告 util.NativeCodeLoader:无法加载本机 hadoop适合您平台的库...在适用的情况下使用内置 java 类 15/05/07 11:28:39 INFO Configuration.deprecation: mapreduce.job.counters.limit 已弃用。相反,使用 mapreduce.job.counters.max 15/05/07 11:28:39 INFO Configuration.deprecation: mapred.job.map.memory.mb 已弃用。相反,使用 mapreduce.map.memory.mb 15/05/07 11:28:39 INFO Configuration.deprecation:不推荐使用 mapred.job.reduce.memory.mb。相反,使用 mapreduce.reduce.memory.mb 15/05/07 11:28:39 INFO Configuration.deprecation: mapred.map.tasks.speculative.execution 已弃用。相反,使用 mapreduce.map.speculative 15/05/07 11:28:39 INFO Configuration.deprecation: mapreduce.user.classpath.first 已弃用。相反,使用 mapreduce.job.user.classpath.first 15/05/07 11:28:39 INFO Configuration.deprecation: mapred.map.max.attempts 已弃用。相反,使用 mapreduce.map.maxattempts 15/05/07 11:28:39 INFO job.GiraphJob: run: 由于检查点被禁用(默认),不允许任何任务重试(设置 mapred.map.max.attempts = 1 ,旧值 = 4) 15/05/07 11:28:39 INFO Configuration.deprecation: mapred.job.tracker 已弃用。相反,使用 mapreduce.jobtracker。 http://bigtapp:8088/proxy/application_1430974889906_0002/ 15/05/07 11:28:42 INFO job.GiraphJob: 跟踪 URL: http://bigtapp:8088/proxy/application_1430974889906_0002/ 15/05/07 11:28 :42 INFO job.GiraphJob:等待资源......作业只有在获得所有 2 个映射器时才会开始 15/05/07 11:28:55 INFO mapreduce.Job:正在运行的作业:job_1430974889906_0002 15/05/07 11:28 :55 INFO mapreduce.Job:作业 job_1430974889906_0002 在 uber 模式下运行:false 15/05/07 11:28:55 INFO mapreduce.Job:地图 100% 减少 0% 15/05/07 11:28:55 INFO mapreduce.Job :作业 job_1430974889906_0002 失败,状态为 FAILED,原因是:任务失败 task_1430974889906_0002_m_000000 作业失败,因为任务失败。failedMaps:1 failedReduces:0
15/05/07 11:28:55 INFO mapreduce.Job: Counters: 8 Job Counters Failed map tasks=1 Launched map tasks=1 Other local map tasks=1 所有 map 在占用槽中花费的总时间(ms)=5785所有reduce在占用槽中花费的总时间(ms)=0所有map任务花费的总时间(ms)=5785所有map任务花费的总vcore秒数=5785所有map任务花费的总兆字节秒数=5923840
facebook - 在 Apache Giraph 中导入/保存 SNAP Facebook 边缘
我正在使用 SNAP facebook 数据集进行社交网络分析。SNAP 使用简单边列表作为数据格式 "node1 node2" 。如何在 Apache Giraph 中读取 SNAP 数据集?我正在使用每行 BufferedReader 行读取文件,但不知道如何将其保存在具有邻接列表的 BSP 模型中。有人可以帮我用java中的代码示例吗? 我还想添加有关节点的信息(每个用户/节点具有的特征)我如何在 Giraph 中做到这一点?
hadoop - Apache giraph 使用 maven 编译
我想修改 Apache giraph 中的一些示例。并使用 maven 命令“mvn compile; mvn package”,我编译了代码并且成功了。但是当我通过 hadoop 运行该示例时,该更改不会出现。我有没有使用命令“mvn install”?
hadoop - 使用 Apache Giraph 时出错
我在 Apache Giraph 中运行 SimpleOutDegreeCountComputation 程序时收到以下错误。我使用 JsonLongDoubleFloatDouble 作为输入格式。
$HADOOP_HOME/bin/hadoop jar $GIRAPH_HOME/giraph-examples/target/giraph-examples-1.2.0-SNAPSHOT-for-hadoop-1.2.1-jar-with-dependencies.jar org.apache.giraph.GiraphRunner org. apache.giraph.examples.SimpleOutDegreeCountComputation -vif org.apache.giraph.io.formats.JsonLongDoubleFloatDoubleVertexInputFormat -vip /user/hduser/input/tiny_graph.txt -vof org.apache.giraph.io.formats.IdWithValueTextOutputFormat -op /user/ hduser/output/Simpleout -w 1 警告:不推荐使用 $HADOOP_HOME。
15/05/18 12:56:04 INFO utils.ConfigurationUtils:未指定边缘输入格式。确保您的 InputFormat 不需要一个。15/05/18 12:56:04 INFO utils.ConfigurationUtils:未指定边缘输出格式。确保您的 OutputFormat 不需要。线程“主”java.lang.IllegalStateException 中的异常:checkClassTypes:顶点值类型不可分配,计算 - org.apache.hadoop.io.LongWritable 类,VertexInputFormat - org.apache 的 org.apache.hadoop.io.DoubleWritable 类。 giraph.job.GiraphConfigurationValidator.checkAssignable(GiraphConfigurationValidator.java:381) 在 org.apache.giraph.job.GiraphConfigurationValidator.verifyVertexInputFormatGenericTypes(GiraphConfigurationValidator.java:228) 在 org.apache.giraph.job.GiraphConfigurationValidator。
java - 调用 Vertex.getEdgeValue() 两次后 EdgeValue 不一样
我正在尝试在 giraph 中实现 Spinner 图形分区算法。在第一步中,我的程序将边添加到给定的输入图中,使其成为无向图,并且每个顶点都选择一个随机分区。(这个分区整数存储在 中VertexValue
)在这个初始化步骤结束时,每个顶点都会向所有输出边发送一条消息,其中包含顶点 ID (a LongWritable
) 和顶点选择的分区。
这一切都很好。现在在我遇到问题的步骤中,每个顶点迭代接收到的消息并将接收到的分区保存在EdgeValue
相应边的 中。(在,在)VertexValue
_ _V
Vertex<I,V,E>
EdgeValue
E
Edge<I,E>
以下是我的代码的重要部分:
包装类:
上一步中的compute
方法(ran是一个Random
对象):
compute
错误发生步骤中的方法:
但是,当我使用例如迭代边缘时
或通过
然后返回的EdgeValue
有权重-2
和分区-1
(来自标准构造函数的默认值)
我的想法可能导致错误:
getEdgeValue(new LongWritable(someLong))
也许不起作用,因为它new LongWritable(someLong)
与具有相同值的另一个对象不同。但是,我已经看到它在 giraph 代码中使用过,所以这似乎没有问题,只有长期存储在里面LongWritable
似乎很重要。(最可能的原因)Hadoop 序列化和反序列化以某种方式改变了我的
EdgeValue
对象。由于 Hadoop 用于非常大的图,它们可能不适合 RAM。为此,VertexValue
必须EdgeValue
实施Writable
.read()
然而,在在线检查了一些 giraph 代码之后,我write()
以一种对我来说似乎正确的方式实现了(以相同的顺序写入和读取重要字段)。(这是我认为与问题有关的某种原因,因为EdgeValue
第二次调用返回的具有标准构造函数的字段值)
我还阅读了一些文档:
E getEdgeValue(I targetVertexId)
返回具有给定目标顶点 id 的第一条边的值,如果没有这样的边,则返回 null。注意:此方法返回的边缘值对象可能会在下一次调用时失效。因此,保持对边缘值的引用几乎总是会导致不良行为。
但是,这不适用于我,因为我只有一个EdgeValue
变量,对吧?
提前感谢所有花时间帮助我的人。(我正在使用 hadoop 1.2.1 和 giraph 1.2.0)
hadoop - 混淆hadoop、giraph和twister
我正在研究大数据,我的项目由具有文本数据的图形组成。我必须在一个项目本身中计算顶点之间的相似性、跳跃概率、连接组件的数量、页面排名向量和随机游走。
我在 hadoop 中实现了它们,但我认为这需要更多时间(图表有 2500 个节点 4000 个边 600 个连接的组件需要 25 分钟)那么实现这些的最佳选择是什么,apache hadoop 或 apache giraph 或 apache twister?