Вы использовать 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
Спасибо за ваш вклад. Как создать файл Jar? где я могу запустить «добавить файл добавить jar geo-ip-java.jar;» (по улью, командной строке и т. д.)? –
Вы не создаете файлы jar для этого, просто загрузите то, что содержится в ссылках, которые вы изначально разместили. на вашей системе Unix, запустите куст, а затем запустите эту команду –
Я сделал git clone «hive-geoip» репозиторий Затем я побежал ниже команды, и я получаю сообщение об ошибке (можете ли вы попробовать в конце?): hive> добавить jar geo -ip-java.jar; geo-ip-java.jar не существует Запрос возвратил ненулевой код: 1, причина: geo-ip-java.jar не ex –