2018 펜 시니어 디자인 프로젝트
CIS 부문 1위
데이비드 카오 ○ 딜런 만 ○ 알렉스 모세스 ○ 그레이엄 모슬리
BitTorrent 트래픽은 풍부하지만 분석하기가 어렵습니다. 중요한 분석을 위해 충분한 데이터를 캡처하려면 대규모 분산 솔루션이 필요합니다. 현재 Nielsen과 같은 조사 회사는 불법 미디어 소비를 제대로 설명하지 못하고 있습니다. BitTorrent 트래픽을 분석하면 기업은 이전에는 미디어 인기도에 대한 전통적인 측정 방법으로는 볼 수 없었던 소비자 행동을 연구할 수 있습니다.
우리의 솔루션은 BitTorrent 메인라인 분산 해시 테이블(DHT)을 수신하는 노드를 배포하는 것입니다. 각 노드는 the8472의 뛰어난 저장소 mldht의 분기 버전을 실행합니다. 우리 포크는 여기에서 찾을 수 있습니다. DHT의 피어가 노드를 발견하면 쿼리 라우팅, 토렌트 해결 및 수신한 쿼리에 대한 메타데이터 수집을 시작합니다. 우리는 파이프라인을 통해 이 데이터를 처리하고 쉽게 액세스할 수 있도록 처리된 결과를 Amazon S3에 저장합니다.
BoonTorrent의 주요 제품은 연구용 기계 판독 가능 시계열 데이터입니다. 또한 해당 데이터를 기반으로 구축된 두 가지 개념 증명 애플리케이션을 구현했습니다. 첫 번째는 지난 2분간의 트래픽을 실시간으로 업데이트하는 히트맵 시각화이고, 두 번째는 특정 토렌트 파일을 찾기 위한 검색 엔진입니다. 한 달 만에 우리 검색 엔진은 크기가 거의 4페타바이트에 달하는 4,600만 개의 파일을 대표하는 120만 개의 토렌트를 색인화했습니다. 우리의 파이프라인과 두 애플리케이션 모두 하루에 약 10달러로 실행되며 매일 약 700만 개의 데이터 포인트를 기록하고 분석하고 있습니다. 우리의 연구 결과에 따르면 BitTorrent 트래픽을 비용 효율적으로 모니터링하는 것이 가능합니다.
위치 | 설명 |
---|---|
인덱서-람다 | s3 객체 생성 이벤트에 의해 트리거된 해결된 토렌트를 인덱싱하는 AWS Lambda입니다. |
토런트 요약-람다 | S3에서 특정 토렌트를 검색하고 메타데이터를 디코딩하는 AWS Lambda입니다. |
프로토타입 | 프로토타입 구현. |
스파크 스칼라 | 로컬 스파크 처리 코드. |
userdata.sh | EC2 인스턴스용 사용자 데이터 스크립트. |
문서 | 스크린샷 및 참고 자료. |
앱 | ejs로 작성된 개념 증명 웹 애플리케이션. |
Firehose 로그 파일의 예는 여기에서 찾을 수 있습니다.
한 달 동안 우리는 총 4PB에 달하는 4,600만 개의 파일을 포함하는 120만 개의 토렌트를 크롤링하고 인덱싱했습니다.
원시 .torrent 파일이나 메타데이터에 관심이 있다면 문제를 제출해 주세요.