2013.02.01

트위터, 캐스케이딩으로 하둡 개발 속도 대폭 향상

Andrew Lampitt | InfoWorld
트위터는 막대한 규모의 메타 데이터와 메시지를 분석하기 위해 하둡에 의지하고 있다. 특히 맵리듀스 개발을 최대한 단순화하기 위해 캐스케이딩 프레임워크를 도입해 큰 효과를 얻고 있다.
 
트위터의 수천만 사용자는 최신 뉴스와 아이디어, 의견을 서로 간에 실시간으로 공유하면서 트위터를 가장 인기있는 커뮤니케이션 플랫폼을 만들었다. 
 
사용자들의 이런 모든 활동은 트위터에게 메타데이터의 금광이 아닐 수 없으며, 트위터의 분석팀은 하루 1억 7500만 건을 넘는 트윗과 광고 캠페인에서 나오는 수 페타바이트의 데이터를 분석하는 하둡 부서로 변했다. 이 모든 분석 활동의 목표는 사용자와 광고주 모두에게 유익하도록 트위터 서비스를 개선하는 것이다.
 
하둡을 사용해 개발자들은 미리 정해진 작업만을 수행하는 맵리듀스 작업을 서버 전반의 막대한 데이터 분석용으로 바꾸어 놓았다. 트위터에 있어 가장 큰 과제는 맵리듀스 프로그래밍이 자바 이상의 특별한 기술을 필요로 한다는 것. 개발자들은 그들의 코딩 방식에 대해 다시 생각해야 할 필요가 있다.
 
게다가 개발팀은 복잡한 연산과 기계 학습, 선형 대수학 등을 수행할 수 있어야 하는데, 이들 대부분은 일반적인 개발자에게 맵리듀스에서 코드를 작성하는데 결코 쉽지 않은 일이다.
 
하둡 길들이기
좀 더 쉬운 도입을 위해 개발자 모두에게 정교한 통계 함수가 필요해지자 트위터는 커런트(Current)의 캐스케이딩(Cascading) 프레임워크를 이용하기로 했다. 캐스케이딩은 빅 데이터 애플리케이션 개발을 염두에 두고 설계된 것이 특징이다.
 
캐스케이딩은 하둡에 좀 더 높은 수준의 추상화를 제공해 개발자들이 복잡한 작업을 좀 더 빠르고 신속하게, 그리고 루비나 스칼라 등 JVM에서 구동되는 여러 가지 서로 다른 언어로 만들어낼 수 있도록 해준다. 이런 장점은 기술력의 장벽을 허물어 트위터가 하둡을 좀 더 폭넓게 사용할 수 있도록 했다.
 
현재 캐스케이딩은 트위터 개발자들이 페타바이트급의 데이터를 쉽게 처리할 수 있도록 하는 것은 물론, 복잡한 데이터 처리 워크플로우를 자신들이 선호하는 프로그래밍 언어로 만들어 낼 수 있도록 해 준다. 트위터는 콘커런트(Concurrent)와 기여 협약을 맺고 트위터의 오픈소스 기여가 캐스케이딩 프로젝트에 쉽게 적용될 수 있도록 하고 있다.
 
목적에 맞는 다양한 프로그래밍 언어 사용 
현재 트위터에서는 세 개발팀이 서로 다른 프로그래밍 언어를 조합해 캐스케이딩을 사용하고 있다. 매출팀은 스칼라를 사용하며, 퍼블리셔 분석팀은 클로저(Clojure)를, 분석팀은 자이썬(Jython)을 사용한다.
 
매출팀은 광고와 트위터 토픽 등의 콘텐츠를 분석해 광고주가 어떤 광고가 가장 효율적인지 결정할 수 있도록 지원하며, 나아가 전환율을 높일 수 있도록 해준다. 매출팀은 캐스케이딩용 오픈소스 스칼라 API인 스칼딩(Scalding)을 작성해 개발자들이 스칼라를 이용해 코드를 작성하고 이를 하둡에서 구동할 수 있다.
 
퍼블리셔 분석팀은 웹마스터들에게 트위터 사용자들이 어떤 식으로 브랜드나 웹 사이트, 온라인 유명인사의 정보에 개입하는지를 파악할 수 있도록 해준다. 이 팀은 오픈소스 캐스칼로그(Cascalog)를 구축했는데, 캐스칼로그는 클로저 기반의 언어로 캐스케이딩을 작업 처리 엔진으로 사용한다.
 
분석팀의 임무는 트위터 사용자의 활동을 파악하는 것이다. 이 팀은 사용자들이 어떤 사용자를 팔로잉하고, 어떤 사용자들이 동일 인물을 팔로잉하는 등에 대한 상세하고 복잡한 분석을 좀 더 쉽게 수행해야 한다. 분석팀은 파이캐스케이딩(PyCascading)이란 캐스케이딩용 파이썬 래퍼를 만들어서 파이썬으로부터 전체 데이터 처리 워크플로우를 제어한다.
 
이 모든 사례에서 캐스케이딩은 맵리듀스 작업을 작성하고 최적화하고 실행하는 복잡성으로부터 개발자들을 보호해 준다. 비즈니스에 필요한 고도로 복잡한 정보와 기능을 각 개발팀이 신속하고 효율적으로 제공할 수 있도록 해주는 것이다. 최종적으로 이런 개발 작업의 결과물은 트위터가 자사의 인기 서비스를 지속적으로 개선하는 데 사용할 수 있는 중요한 인사이트가 되고 있다.   editor@itworld.co.kr


2013.02.01

트위터, 캐스케이딩으로 하둡 개발 속도 대폭 향상

Andrew Lampitt | InfoWorld
트위터는 막대한 규모의 메타 데이터와 메시지를 분석하기 위해 하둡에 의지하고 있다. 특히 맵리듀스 개발을 최대한 단순화하기 위해 캐스케이딩 프레임워크를 도입해 큰 효과를 얻고 있다.
 
트위터의 수천만 사용자는 최신 뉴스와 아이디어, 의견을 서로 간에 실시간으로 공유하면서 트위터를 가장 인기있는 커뮤니케이션 플랫폼을 만들었다. 
 
사용자들의 이런 모든 활동은 트위터에게 메타데이터의 금광이 아닐 수 없으며, 트위터의 분석팀은 하루 1억 7500만 건을 넘는 트윗과 광고 캠페인에서 나오는 수 페타바이트의 데이터를 분석하는 하둡 부서로 변했다. 이 모든 분석 활동의 목표는 사용자와 광고주 모두에게 유익하도록 트위터 서비스를 개선하는 것이다.
 
하둡을 사용해 개발자들은 미리 정해진 작업만을 수행하는 맵리듀스 작업을 서버 전반의 막대한 데이터 분석용으로 바꾸어 놓았다. 트위터에 있어 가장 큰 과제는 맵리듀스 프로그래밍이 자바 이상의 특별한 기술을 필요로 한다는 것. 개발자들은 그들의 코딩 방식에 대해 다시 생각해야 할 필요가 있다.
 
게다가 개발팀은 복잡한 연산과 기계 학습, 선형 대수학 등을 수행할 수 있어야 하는데, 이들 대부분은 일반적인 개발자에게 맵리듀스에서 코드를 작성하는데 결코 쉽지 않은 일이다.
 
하둡 길들이기
좀 더 쉬운 도입을 위해 개발자 모두에게 정교한 통계 함수가 필요해지자 트위터는 커런트(Current)의 캐스케이딩(Cascading) 프레임워크를 이용하기로 했다. 캐스케이딩은 빅 데이터 애플리케이션 개발을 염두에 두고 설계된 것이 특징이다.
 
캐스케이딩은 하둡에 좀 더 높은 수준의 추상화를 제공해 개발자들이 복잡한 작업을 좀 더 빠르고 신속하게, 그리고 루비나 스칼라 등 JVM에서 구동되는 여러 가지 서로 다른 언어로 만들어낼 수 있도록 해준다. 이런 장점은 기술력의 장벽을 허물어 트위터가 하둡을 좀 더 폭넓게 사용할 수 있도록 했다.
 
현재 캐스케이딩은 트위터 개발자들이 페타바이트급의 데이터를 쉽게 처리할 수 있도록 하는 것은 물론, 복잡한 데이터 처리 워크플로우를 자신들이 선호하는 프로그래밍 언어로 만들어 낼 수 있도록 해 준다. 트위터는 콘커런트(Concurrent)와 기여 협약을 맺고 트위터의 오픈소스 기여가 캐스케이딩 프로젝트에 쉽게 적용될 수 있도록 하고 있다.
 
목적에 맞는 다양한 프로그래밍 언어 사용 
현재 트위터에서는 세 개발팀이 서로 다른 프로그래밍 언어를 조합해 캐스케이딩을 사용하고 있다. 매출팀은 스칼라를 사용하며, 퍼블리셔 분석팀은 클로저(Clojure)를, 분석팀은 자이썬(Jython)을 사용한다.
 
매출팀은 광고와 트위터 토픽 등의 콘텐츠를 분석해 광고주가 어떤 광고가 가장 효율적인지 결정할 수 있도록 지원하며, 나아가 전환율을 높일 수 있도록 해준다. 매출팀은 캐스케이딩용 오픈소스 스칼라 API인 스칼딩(Scalding)을 작성해 개발자들이 스칼라를 이용해 코드를 작성하고 이를 하둡에서 구동할 수 있다.
 
퍼블리셔 분석팀은 웹마스터들에게 트위터 사용자들이 어떤 식으로 브랜드나 웹 사이트, 온라인 유명인사의 정보에 개입하는지를 파악할 수 있도록 해준다. 이 팀은 오픈소스 캐스칼로그(Cascalog)를 구축했는데, 캐스칼로그는 클로저 기반의 언어로 캐스케이딩을 작업 처리 엔진으로 사용한다.
 
분석팀의 임무는 트위터 사용자의 활동을 파악하는 것이다. 이 팀은 사용자들이 어떤 사용자를 팔로잉하고, 어떤 사용자들이 동일 인물을 팔로잉하는 등에 대한 상세하고 복잡한 분석을 좀 더 쉽게 수행해야 한다. 분석팀은 파이캐스케이딩(PyCascading)이란 캐스케이딩용 파이썬 래퍼를 만들어서 파이썬으로부터 전체 데이터 처리 워크플로우를 제어한다.
 
이 모든 사례에서 캐스케이딩은 맵리듀스 작업을 작성하고 최적화하고 실행하는 복잡성으로부터 개발자들을 보호해 준다. 비즈니스에 필요한 고도로 복잡한 정보와 기능을 각 개발팀이 신속하고 효율적으로 제공할 수 있도록 해주는 것이다. 최종적으로 이런 개발 작업의 결과물은 트위터가 자사의 인기 서비스를 지속적으로 개선하는 데 사용할 수 있는 중요한 인사이트가 되고 있다.   editor@itworld.co.kr


X