大数据图形处理工具HAMA的安装及测试

来源:互联网 发布:查看ubuntu的版本 编辑:程序博客网 时间:2024/04/28 22:58

由于研究的需要,最近对HAMA做了简单的测试。和大家分享一下。

1.1什么是HAMA

HAMAapache的一个开源项目,作云计算的人都知道mapreduce,但mapreduce编程模式处理的是特定模式的海量数据,但对于需要反复迭代以及图形算法实现则显得不那么灵光。说道HAMA就不得不提BSP模式,这里我就不多说BSP模式,大家自己wiki吧。BSP模式可以实现并行化,HAMAmapreduce一样,只是HAMA将BSP这种模式并行化了,mapreduce将那种统计计算并行化了。

1.2HAMA安装:

本博主要介绍HAMA的安装集测试就不多少原理了。

HAMA是架设在hadoopHDFS之上,文件都存储在HDFS上。所以需要首先安装hadoop集群。Hadoop集群的安装和配置我也不多少了,网上很多安装说明。

我用3台机器架了个集群配置为:

dh1:namenode jobtracker

dh2:datanode tasktracker

dh3:datanode tasktracker

因为集群上有hbase,所以ZooKeeper也不用安装了。ZooKeeper包括dh1,dh2,dh3.

HAdoop集群安装后就可以很轻松的安装HAMA了。首先下载HAMA最新版地址为

http://hama.apache.org/downloads.html

下载后解压:tar -xvzf hama-0.6.0.tar.gz,解压地址无所谓,自己方便使用的地址。

然后就是配置文件的修改,需要修改三个配置文件:groomservershama-env.sh  hama-site.xml。文件地址为 /hama-0.6.3/conf

groomservers文件:需要将你的hadoop集群中的所有节点加进去。例如:

[hadoop@dh1 conf]$ vi groomservers

dh1

dh2

dh3

~

hama-env.sh文件:需要加入java的地址。例如:

[hadoop@dh1 conf]$ vi hama-env.sh

# Set environment variables here.

 

# The java implementation to use.  Required.

export JAVA_HOME=/usr/java/jdk1.6.0_41

hama-site.xml文件:需要设置集群信息。例如

[hadoop@dh1 conf]$ vi hama-site.xml

<configuration>

<property>

    <name>bsp.master.address</name>

    <value>dh1:40000</value>

    <description>The address of the bsp master server. Either the

    literal string "local" or a host:port for distributed mode

    </description>

  </property>

 

  <property>

    <name>fs.default.name</name>

    <value>hdfs://dh1:9000/</value>

    <description>

      The name of the default file system. Either the literal string

      "local" or a host:port for HDFS.

    </description>

  </property>

 

  <property>

    <name>hama.zookeeper.quorum</name>

    <value>dh1,dh2,dh3</value>

    <description>Comma separated list of servers in the ZooKeeper Quorum.

    For example, "host1.mydomain.com,host2.mydomain.com,host3.mydomain.com".

    By default this is set to localhost for local and pseudo-distributed modes

   of operation. For a fully-distributed setup, this should be set to a full

    list of ZooKeeper quorum servers. If HAMA_MANAGES_ZK is set in hama-env.sh

    this is the list of servers which we will start/stop zookeeper on.

    </description>

  </property>

 

 <property>

    <name>hama.zookeeper.property.clientPort</name>

    <value>2181</value>

 </property>

</configuration>

 

解释一下上面的配置项:bsp.master.address是主节点的地址和jobtracker地址一样就好了。端口号使用40000fs.default.namenamenode的地址,这里一定不要忘写“hdfs://”,否则会出现找不到位置的错误。hama.zookeeper.quorum需要将你zookeeper的成员都写在这里,并且用逗号分隔。hama.zookeeper.property.clientPort使用默认的就行。

最后就可运行HAMA了:

执行/bin/ start-bspd.sh命令。正常启动后“jps”查看,dh1上会出现NameNodeJobTracker BSPMasterRunnerZooKeeperRunnerGroomServerRunner进程。dh2dh3上会出现ZooKeeperRunnerTaskTrackerGroomServerRunnerHRegionServerDataNode进程。说明HAMA已经正常启动了。

1.3HAMA程序测试

我们首先让HAMA自动生成一个矩阵,然后再执行pagerank算法

./hama jar /home/hadoop/hama-0.6.3/hama-examples-0.6.3.jar gen symmetric 100 10 /user/test/randomgraph 2

/user/test/randomgraphHDFS上的输出地址。执行结果如下:

执行pagerank

./hama jar /home/hadoop/hama-0.6.3/hama-examples-0.6.3.jar pagerank /user/test/randomgraph /user/test/pagerankresult  4

/user/test/randomgraph为输入地址 /user/test/pagerankresult为输出地址。执行结果如下:

原创粉丝点击