2015-05-07 1 views
0

У меня есть таблица улья с ip_address колонкой. Как я могу найти страну, город и почтовый индекс из этой колонки ip_address?Реализация улья UDF

Я вижу UDF написано:

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

Как я использую UDF в улье? Могу ли я создать имя функции самостоятельно?

ОДС говорит, что нам нужны отдельная база данные:

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

Как реализовать эту базу данных на улье?

Любая обратная связь будет оценена по достоинству.

Спасибо,

Rio

ответ

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, переместите его и банки, которые вы загрузили в каталог/users/(ваше имя пользователя) /, а затем запустите код, как указано выше. Файлы должны быть в вашем верхнем каталоге или явно нацелены во время вашего файла добавления и добавлять jar-операторы. под этим я подразумеваю вместо add file GeoIP.dat;, например, должно быть add file /users/wertz/downloads/GeoIP.dat;.

Наконец, просмотрев код, UDF нуждается в трех аргументах. Первый аргумент - это IP-адрес, второй аргумент - то, что вы ищете (выбор выглядит как COUNTRY_NAME, COUNTRY_CODE, AREA_CODE, CITY, DMA_CODE, LATITUDE, LONGITUDE, METRO_CODE, POSTAL_CODE, REGION, ORG или ID) и Конечное значение - это имя файла базы данных GeoIP, которое, надеюсь, вы не изменили с GeoIP.dat

+0

Спасибо за ваш вклад. Как создать файл Jar? где я могу запустить «добавить файл добавить jar geo-ip-java.jar;» (по улью, командной строке и т. д.)? –

+0

Вы не создаете файлы jar для этого, просто загрузите то, что содержится в ссылках, которые вы изначально разместили. на вашей системе Unix, запустите куст, а затем запустите эту команду –

+0

Я сделал git clone «hive-geoip» репозиторий Затем я побежал ниже команды, и я получаю сообщение об ошибке (можете ли вы попробовать в конце?): hive> добавить jar geo -ip-java.jar; geo-ip-java.jar не существует Запрос возвратил ненулевой код: 1, причина: geo-ip-java.jar не ex –

Смежные вопросы