前言
本文主要介绍了 Giraph 的环境搭建过程
运行模式
Giraph 是基于 Hadoop 开发的上层应用,因此其运行模式取决于 Hadoop 的运行模式。关于 Hadoop 的运行模式请参照 Hadoop 基础之搭建环境 一文。
搭建过程
本次环境搭建基于 Hadoop 2.5.1 以及 Giraph 1.2.0,系统环境是 Ubuntu 18.04,JDK 版本是 openjdk8。
-
配置 Hadoop 的环境
首先下载 Hadoop 2.5.1,然后参考 Hadoop 基础之搭建环境 完成配置,这里为了简单起见仅使用了默认的 Standalone 模式。
-
配置 Giraph
下载 Giraph 1.2.0,然后进行解压即可。
-
配置环境变量
为了更好使用 Giraph ,需要配置如下三个环境变量
#Setting Hadoop export HADOOP_HOME="/your_path/hadoop-2.5.1" export HADOOP_CONF_DIR="$HADOOP_HOME/etc/hadoop" #Setting Giraph export GIRAPH_HOME="/your_path/giraph-1.2.0-hadoop2-for-hadoop-2.5.1"
-
验证环境
-
在 Giraph 同级目录下创建 input 文件夹,然后在 input 文件夹内创建 tiny_graph.txt 文件
mkdir input cd input touch tiny_graph.txt vim tiny_graph.txt #在文件中输入以下数据,其格式为 [source_id,source_value,[[dest_id, edge_value],...]],如 [0,0,[[1,1],[3,3]]] 表示顶点序号为 0,顶点值为 0,存在序号 0 到 序号 1 的边,值为 1,存在序号 0 到序号 3 的边,值为 3。 [0,0,[[1,1],[3,3]]] [1,0,[[0,1],[2,2],[3,1]]] [2,0,[[1,2],[4,4]]] [3,0,[[0,3],[1,1],[4,4]]] [4,0,[[3,4],[2,4]]]
-
在 Giraph 的同级目录下执行命令
$GIRAPH_HOME/bin/giraph $GIRAPH_HOME/giraph-examples-1.2.0-hadoop2.jar org.apache.giraph.examples.SimpleShortestPathsComputation -vif org.apache.giraph.io.formats.JsonLongDoubleFloatDoubleVertexInputFormat -vip ./input/tiny_graph.txt -vof org.apache.giraph.io.formats.IdWithValueTextOutputFormat -op ./output/shortestpaths -w 1 -ca giraph.SplitMasterWorker=false
这行命令实质是向 Hadoop 提交一个 Job,giraph-examples-1.2.0-hadoop2.jar 是提交的 jar 文件,SimpleShortestPathsComputation 表示 Giraph 将会运行的计算类。其余的各项参数含义为:
-
-vif
用于指定输入数据的格式
-
-vip
用于指定输入数据的路径,可以看到这里指定了前一步中创建的 tiny_graph.txt 文件
-
-vof
用于指定输出格式
-
-op
用于指定输出路径,这里指定的路径是 input 同级目录下的 output 文件夹下的 shortestpaths 文件夹
-
-w
用于指定 worker 的数量,这里由于在本地运行只能指定为 1 个
-
-ca
表明指定参数为自定义的参数,这里指定 giraph.SplitMasterWorker 为 false,表明不区分 Master 和 Worker(本地运行必须指定)。更多的自定义参数请参考 ?
-
-
查看结果
运行结束之后进入 output/shortestpaths 将会看到输出文件 part-m-00000,其内容为:
0 1.0 1 0.0 2 2.0 3 1.0 4 5.0
这里的验证是针对 Standalone 模式而言,如果需要在 Pseudo-Distributed 和 Full-Distributed 模式下进行验证,只需要把相应的输入文件上传到 HDFS,然后更改执行命令中的输入路径和输出路径即可。
-