2015-05-07 61 views
0

我有一個ip_address列配置單元表。如何從該ip_address列找到國家,城市和郵政編碼?實現配置單元UDF

我看到寫的UDF:

https://github.com/edwardcapriolo/hive-geoip

如何利用UDF的蜂巢?我可以自己創建函數名稱嗎?

UDF中說,我們需要獨立的數據庫:

http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz

如何實現對蜂巢該數據庫?

任何反饋將不勝感激。

感謝,

回答

0

您可以通過添加罐子裏,由你的第一個鏈接描述創建臨時的功能利用在蜂巢的UDF。

add file GeoIP.dat; 
add jar geo-ip-java.jar; 
add jar hive-udf-geo-ip-jtg.jar; 
create temporary function geoip as 'com.jointhegrid.hive.udf.GenericUDFGeoIP'; 

您可以更改函數名,無論你願意,只需經過任何你想要的「臨時函數」,從「geoip的」取代。

添加您鏈接到數據庫下載到您的UNIX服務器,然後使用gzip解壓縮它的問題。一旦它處於GeoIP.dat格式,將它和您下載的jar文件移動到您的/ users /(您的用戶名)/目錄中,然後按照上面的說明運行代碼。這些文件必須位於頂層目錄中,或者在添加文件期間明確定位,並添加jar語句。我的意思是代替add file GeoIP.dat;它必須是add file /users/wertz/downloads/GeoIP.dat;例如。

最後,通過查看代碼UDF需要三個參數。第一個參數是IP地址,第二個參數是你要找的是什麼(選擇似乎是COUNTRY_NAME,COUNTRY_CODE,AREA_CODE,市,DMA_CODE,緯度,經度,METRO_CODE,POSTAL_CODE,地區,ORG,或ID)和最終值是geoip的數據庫,希望你沒有從GeoIP.dat改變

+0

感謝您輸入的文件名。我如何創建Jar文件?我在哪裏運行「add file add jar geo-ip-java.jar;」 (在配置單元,命令行等)? –

+0

您不需要爲此創建jar文件,只需下載最初發布的鏈接中包含的內容即可。你的Unix系統,運行蜂巢,然後運行該命令的 –

+0

我混帳克隆「蜂房geoip的」倉庫 然後,我跑到下面的命令,我得到錯誤(你可以請儘量在你結束了嗎?): 蜂巢>添加罐子地理-ip-java.jar; 地理IP-java.jar不存在 查詢返回的非零代碼:1,原因:地理IP-java.jar不前 –

相關問題