按項目日益增加的gis數據量要求,須要在大數據集羣中部署HIVE的擴展函數。
Apache Hive是一個創建在Hadoop架構之上的數據倉庫。它可以提供數據的精煉,查詢和分析。([引用自維基百科hive描述)
HIVE容許用戶使用UDF(user defined function)對數據進行處理。咱們用到的是spatial-framework-for-hadoop。下載完源碼,修改最外層的pom.xml,修改hadoop、hive、java版本爲生產環境中版本,從新編譯項出spatial-sdk-json-2.1.0.jar和spatial-sdk-hive-2.1.0.jar。java
<profile>
<id>hadoop-2.7</id>
<properties>
<hadoop.version>2.7.3</hadoop.version>
</properties>
</profile>
複製代碼
<profile>
<id>hive-1.2</id>
<properties>
<hive.version>1.2.1</hive.version>
</properties>
</profile>
複製代碼
<java.source.version>1.8</java.source.version>
<java.target.version>1.8</java.target.version>
<hadoop.version>2.7.3</hadoop.version>
<hive.version>1.2.1</hive.version>
複製代碼
下載最新的esri-geometry-java中的esri-geometry-api-2.2.1.jar,上傳三個jar到linux系統(jar權限設置成最高),在hive的shell控制檯輸入添加jar和建立函數語句。linux
add jar /usr/hdp/2.6.4.0-91/hive/auxlib/esri-geometry-api-2.2.1.jar;
add jar /usr/hdp/2.6.4.0-91/hive/auxlib/spatial-sdk-json-2.1.0.jar;
add jar /usr/hdp/2.6.4.0-91/hive/auxlib/spatial-sdk-hive-2.1.0.jar;
CREATE TEMPORARY FUNCTION STPoint as 'com.esri.hadoop.hive.ST_Point';
複製代碼
自定義函數使用能夠參考官方文檔
UDF文檔,建立自定義函數能夠參考spatial-framework-for-hadoop項目的hive下function-ddl.sql,但建立永久函數須要去掉temporary。