SpatialHadoop2.x源码编译

官方地址下载的SpatialHadoop2.4版二进制包可以在Hadoop1.x下运行,但在Hadoop2.x上可视化组件就会出问题,很有可能导致namenode名称节点的元数据WebUI无法打开。原因是官网SpatialHadoop2.4安装包不兼容Hadoop2.x。SpatialHadoop2.4可视化组件和SpatialHadoop1.X有出入,如果要在Hadoop2.x上使用SpatialHadoop2.x需要自己编译源码包。这里附上在jdk1.7.0_79;Hadoop2.6.0环境下编译的下载地址:spatialhadoop-2.4.1编译包,该编译包在Hadoop2.6.0和Hadoop2.7.3测试可用。当然可以按照下面是具体编译步骤自行编译。
1. 获取SpatialHadoop源码
1.1、从github上获取SpatialHadoop源码
获取SpatialHadoop2源码
Figure 1.1 克隆SpatialHadoop源码

1.2、将git项目转为Maven项目
导入SpatialHadoop2项目
Figure 1.2 导入SpatialHadoop2项目

1.3、转为Maven项目
转Maven项目
Figure 1.3 转为Maven项目
2. 编译项目
2.1、编译SpatialHadoop分别需要compile、package、assembly:assembly过程,三个操作是在Maven上完成的,为了方便操作,分别配置对改项目配置ompile、package、assembly:assembly三个Maven命令,然后依次执行。
运行配置
Figure 2.1 运行配置

配置Maven命令
Figure 2.2 配置Maven命令
3. 常见问题
3.1、pom.xml错误,jdk.tools-1.6.jar
SpatialHadoop2.4.1需要jdk.tools-1.6.jar包,Maven会从改地址进行下载:https://repo.maven.apache.org/maven2/jdk/tools/jdk.tools/1.6/jdk.tools-1.6.jar
实际上https://repo.maven.apache.org/maven2 目录里并没有jdk目录,如下图3.1所示,因此会控制台提示jar包下载失败。该问题可以通过修改pom.xml文件解决,使Maven从本地获取jdk tools.jar包,然后把在Problems里把错误删掉,使用Maven Clean,然后重新进行Maven Install。如本地系统安装了jdk1.7.0_79,往dependencies节点下添加以下内容(注意:如果本地是1.8版本的jdk就填version 内容就是1.8):

<dependency>
        <groupId>jdk.tools</groupId>
        <artifactId>jdk.tools</artifactId>
        <version>1.7</version>
        <scope>system</scope>
        <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>            
</dependency>

依赖包下载目录
Figure 3.1 maven2依赖包下载目录

添加jdk.tools依赖
Figure 3.2 添加jdk.tools依赖

3.2、使用compile进行编译时,提示Maven读取xxx.jar错误
例如提示读取C:\Users\GIS.m2\repository\org\apache\hadoop\hadoop-common\2.6.0\hadoop-common-2.6.0.jar错误,但该路径下确存在hadoop-common-2.6.0.jar文件,出现类似错误,删除该目录下文件,让Maven重新下载即可。

3.3、无法进行编译,出现main函数等等Exception
这可能在配置Maven编译命令时没有选择对应的版本的jre

jre版本
Figure 3.3 jre版本

3.4、提示SJMR编码出错
SpatialHadoop默认使用UTF-8编码,而Eclipse在中文环境下使用了GBK编码,出现这个问题可以把edu.umn.cs.spatialHadoop.operations包下的SJMR.java文件保存为UTF-8编码。例如可以在空白出打个空格,然后保存,就会提示Save as UTF-8.

SJMR.java文件
Figure 3.4 SJMR.java文件

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值