Giraph 环境搭建

前言

本文主要介绍了 Giraph 的环境搭建过程

运行模式

Giraph 是基于 Hadoop 开发的上层应用,因此其运行模式取决于 Hadoop 的运行模式。关于 Hadoop 的运行模式请参照 Hadoop基础之搭建环境 一文。

搭建过程

本次环境搭建基于 Hadoop 2.5.1 以及 Giraph 1.2.0,系统环境是 Ubuntu 18.04,JDK 版本是 openjdk8。

  1. 配置 Hadoop 的环境

    首先下载 Hadoop 2.5.1,然后参考 Hadoop基础之搭建环境 完成配置,这里为了简单起见仅使用了默认的 Standalone 模式。

  2. 配置 Giraph

    下载 Giraph 1.2.0,然后进行解压即可。

  3. 配置环境变量

    为了更好使用 Giraph ,需要配置如下三个环境变量

    1
    2
    3
    4
    5
    6
    #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"
  4. 验证环境

    • 在 Giraph 同级目录下创建 input 文件夹,然后在 input 文件夹内创建 tiny_graph.txt 文件

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      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 的同级目录下执行命令

      1
      $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,其内容为:

      1
      2
      3
      4
      5
      0  1.0
      1 0.0
      2 2.0
      3 1.0
      4 5.0

    这里的验证是针对 Standalone 模式而言,如果需要在 Pseudo-Distributed 和 Full-Distributed 模式下进行验证,只需要把相应的输入文件上传到 HDFS,然后更改执行命令中的输入路径和输出路径即可。

Thanks

  1. Quick Start