티스토리 뷰

글로벌 서비스를 운영하고 있는 회사라면, 사용자의 IP 정보를 이용하여 해당 사용자가 어떤 국가에 속하는지 확인할 수 있습니다. Apache Tajo는 이러한 분석을 위하여 Geoip 데이터 베이스 기반의 다양한 네트워크 함수를 제공합니다.


Geoip는 Maxmind에서 제공하는 국가별 IP를 확인할 수 있는 라이브러리로, IP 정보가 들어 있는 데이터 베이스 파일과 이 파일을 활용할 수 있는 API 를 함께 제공합니다. 하지만 Geoip는 LGPL 라이센스를 사용하기 때문에 Tajo 설치 파일에는 포함되어 있지 않습니다.


Tajo에서 Geoip를 사용하려면 다음과 같이 설치 작업을 진행해야 합니다.


1. Geoip 데이터 베이스 파일을 다운받은 후 압축을 해제합니다.

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

$ gzip -d GeoIP.dat.gz


2. 압축 해제된 파일을 적절한 디렉터리에 복사합니다. 필자의 경우, 편의상 $TAJO_HOME/extlib 디렉터리로 복사했습니다.

$ cp  GeoIP.dat.gz /home/tajo/tajo-0.11.2/extlib


3. tajo-site.xml에 Geoip 데이터 베이스 파일 경로를 추가합니다.

<property>   

<name>tajo.function.geoip-database-location</name>

   <value>/home/tajo/tajo-0.11.2/extlib/GeoIP.dat</value>

 </property>


4. 모든 TajoWorker의 extlib 디렉터리에 Geoip 파일을 복사한 후, tajo-site.xml에 tajo.function.geoip-database-location 속성을 추가합니다.


5. Geoip API 라이브러리를 다운받습니다.

$ wget https://oss.sonatype.org/content/repositories/releases/com/maxmind/geoip/geoip-api/1.2.15/geoip-api-1.2.15.jar


6. 모든 타조 서버의 lib 디렉터리에 Geoip API 파일을 복사합니다.


7. Tajo 클러스터를 재시작합니다.

$ cd /home/tajo/tajo-0.11.2

$ ./bin/stop-tajo.sh

$ ./bin/start-tajo.sh


EMR을 사용 중이라면 TajoMaster를 먼저 재실행한 후,

$ cd /home/hadoop/tajo

$ ./bin/tajo-daemon.sh stop master

$ ./bin/tajo-daemon.sh start master


각 각의 TajoWorker를 재실행합니다.

$ cd /home/hadoop/tajo

$ ./bin/tajo-daemon.sh stop worker

$ ./bin/tajo-daemon.sh start worker


8. 네트워크 함수를 실행합니다.

default> select geoip_in_country('163.152.71.31', 'KR');

?geoip_in_country

-------------------------------

true

(1 rows, 0.437 sec, 0 B selected)

default> select geoip_country_code('163.152.71.31');

?geoip_country_code

-------------------------------

KR

(1 rows, 0.018 sec, 0 B selected)




저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
댓글
댓글쓰기 폼