[ 2014 Capstone Design2 ] 지도교수 Twitter 분석시스템 < 졸업작품계획서 > 컴퓨터공학부 지도교수 민덕기교수님 T22 200911388 박미관 200911378 김의명 제출일자 2014.06.12-1 -
목 차 1. 프로젝트개요 3 1) 개발동기 2) 개발목표 3) 시장현황 4) 기술동향 3 3 4 5 2. 팀구성및소개 10 1) 담당자 2) 팀구성 3) 팀원소개 10 10 10 3. 프로젝트설명 11 1) 시스템구조 2) 기능 3) 개발환경 11 11 14 4. 프로젝트일정 15 5. 제출문서 16 6. 참고문헌및사이트 16-2 -
1. 프로젝트개요 1) 개발동기 소셜미디어와스마트기기의대중화가이끈빅데이터에대한관심이나날이높아지고있다. 데이터의종류와양이급증하면서기업은이데이터를잘활용해새로운기업가치를창출하기위한노력에서두르고있다. 이런빅데이터의활용가치를향상시키려는다양한방안들이모색되고있는가운데, 오픈소스인하둡생태계를활용해트위터전반에걸친분석정보를서비스형태로제공하고자한다. 2) 개발목표 트위터상의메시지를데이터마이닝후, 의미있는정보를시각화해주는시스템개발 - 3 -
3) 시장현황 1 빅데이터시장현황 5 년이내에데이터의폭발적증가로빅데이터시대로의진입 SNS, 모바일서비스, IoT 서비스등의발전과기존에무심코버려졌던수많은데이터들의 재활용으로인한데이터의폭발적인증가 빅데이터로부터가치있는정보를추출할수있는신기술을이용하여사업화에성공한 일부기업들의출현으로인한빅데이터의경제적가치입증 사람들의빅데이터에대한관심이급증하게되고기업들의빅데이터분석에대한투자가 활발히이루어지는본격적인빅데이터시대진입 - 4 -
4) 기술동향 1 빅데이터기술정의 빅데이터 ( 영어 : big data) 란기존데이터베이스관리도구로데이터를수집, 저장, 관리, 분석할수있는역량을넘어서는대량의정형또는비정형데이터집합및이러한데이터로부터가치를추출하고결과를분석하는기술을의미한다. 다양한종류의대규모데이터에대한생성, 수집, 분석, 표현을그특징으로하는빅데이터기술의발전은다변화된현대사회를더욱정확하게예측하여효율적으로작동케하고개인화된현대사회구성원마다맞춤형정보를제공, 관리, 분석가능케하며과거에는불가능했던기술을실현시키기도한다. 이같이빅데이터는정치, 사회, 경제, 문화, 과학기술등전영역에걸쳐서사회와인류에게가치있는정보를제공할수있는가능성을제시하며그중요성이부각되고있다. 하지만빅데이터의문제점은바로사생활침해와보안측면에자리하고있다. 빅데이터는수많은개인들의수많은정보의집합이다. 그렇기에빅데이터를수집, 분석할때에개인들의사적인정보까지수집하여관리하는빅브라더의모습이될수도있는것이다. 그리고그렇게모은데이터가보안문제로유출된다면, 이역시거의모든사람들의정보가유출되는것이기에큰문제가될수있다. 세계경제포럼은 2012년떠오르는 10대기술중그첫번째를빅데이터기술로선정했으며대한민국지식경제부 R&D 전략기획단은 IT 10대핵심기술가운데하나로빅데이터를선정하는등최근세계는빅데이터를주목하고있다. 데이터형식이다양하고생성속도가매우빨라새로운관리, 분석방법이필요한대용량 데이터 ( 국가정보화빅데이터마스터플랜, 2012) 대용량데이터를활용 / 분석하여가치있는정보를추출하고생성된지식을바탕으로 능동적으로대응하거나변화를예측하기위한정보화기술 ( 국가정보화빅데이터 마스터플랜, 2012) - 5 -
2 빅데이터기술동향 ( 기술 ) 2012 년 Gartner 10 대기술에빅데이터관련하여문맥과소셜 UX, 차세대분석기술, 빅데이터, 인메모리컴퓨팅, 클라우드프로그래밍기술이포함됨 ( 전략 ) 미국대통령과학기술자문위는 Designing a Digital Future 보고서 에서모든미국 연방정부기관은빅데이터전략을수립해야함을강조 ( 산업 ) Economist 는 3 대 IT 성장동력중의하나로빅데이터를제시함 ( 빅데이터 ) 빅데이터분야선두주자인 Google, Oracle, IBM, HP, Teradata, Amazon 등은 빅데이터처리기술을확보하여빅데이터기반서비스를활발하게제공하고있는반면, 국내기업은시작단계에머물러있음 국내빅데이터기술은구글, 오라클, IBM 등글로벌기업대비 2~6 년의기술격차가있는 것으로추정됨 ( 출처 : 국가정보화빅데이터마스터플랜 ) 선진국과의기술격차축소및국내기업의기술경쟁력확보를위하여빅데이터수집, 전처리, 저장, 관리, 분석등에필요한기반기술개발추진중임 기존빅데이터기술개발과제는일반적인빅데이터처리기술개발또는공간정보관련단편적인빅데이터처리기술을개발하는과제로서, 대용량의공간정보를효율적으로처리, 저장및관리, 분석하고서비스단계에서필요한기반기술을확보하기에는어려움이있음 - 6 -
3 웹크롤러 웹크롤러 (web crawler) 는조직적, 자동화된방법으로월드와이드웹을탐색하는컴퓨터 프로그램이다. 웹크롤러에대한다른용어로는앤트 (ants), 자동인덱서 (automatic indexers), 봇 (bots), 웜 (worms), 웹스파이더 (web spider), 웹로봇 (web robot) 등이있다. 웹크롤러가하는작업을웹크롤링 (web crawling) 혹은스파이더링 (spidering) 이라부른다. 검색엔진과같은여러사이트에서는데이터의최신상태유지를위해웹크롤링한다. 웹크롤러는대체로방문한사이트의모든페이지의복사본을생성하는데사용되며, 검색엔진은이렇게생성된페이지를보다빠른검색을위해인덱싱한다. 또한크롤러는링크체크나 HTML 코드검증과같은웹사이트의자동유지관리작업을위해사용되기도하며, 자동이메일수집과같은웹페이지의특정형태의정보를수집하는데도사용된다. 웹크롤러는봇이나소프트웨어에이전트의한형태이다. 웹크롤러는대개 시드 (seeds) 라고불리는 URL 리스트에서부터시작하는데, 페이지의모든하이퍼링크를 인식하여 URL 리스트를갱신한다. 갱신된 URL 리스트는재귀적으로다시방문한다. 4 분산컴퓨팅 분산컴퓨팅 (Distributed computing) 은인터넷에연결된여러컴퓨터들의처리능력을 이용하여거대한계산문제를해결하려는분산처리모델이다. 유휴개인용컴퓨터의프로세싱자원을활용하려는생각은 1970년대초인터넷의효시로도불리는 ARPANET이처음등장할때나타났다. Creeper와 Reaper 같은몇몇프로그램들이출현했으며, 인터넷의대중화로 1997년에 RSA Data Security사가 Distributed.net 프로젝트를시작하여약 30만명의이용자가참여하였으며 DES 64 비트암호를해독하였다. 해외의분산컴퓨팅프로젝트동향을살펴보면미국을중심으로영국, 독일등유럽등 여러곳에서분산컴퓨팅에의한프로젝트에관심을보이고있고, 바이오분야, 기상, 인공지능, 수학, 암호학등다양한응용분야에대한프로젝트가진행되고있다. - 7 -
5 하둡 아파치하둡 (Apache Hadoop, High-Availability Distributed Object-Oriented Platform) 은대량의자료를처리할수있는큰컴퓨터클러스터에서동작하는분산응용프로그램을지원하는프리웨어자바소프트웨어프레임워크이다. 원래너치의분산처리를지원하기위해개발된것으로, 아파치루씬의하부프로젝트이다. 분산처리시스템인구글파일시스템을대체할수있는하둡분산파일시스템 (HDFS: Hadoop Distributed File System) 과맵리듀스를구현한것이다. 하둡은 2005년더그커팅과마이크캐퍼렐라 (Mike Cafarella) 가개발하였다. 당시커팅은야후에서일하고있었으며, 이후하둡은아파치 (Apache) 재단으로넘어가공개소프트웨어로개발되고있다. 하둡은구글의분산파일시스템 (GFS) 논문이공개된후, 그구조에대응하는체계로개발되었다. 하둡의로고는노랑색아기코끼리로표시한다. 이는하둡의개발자인더그커팅이자신의아이가가지고놀던장난감코끼리의이름을따서하둡이라는이름을지었기때문이다. 코끼리는빅데이터 (Big Data) 를상징하는동물이다. 2011년오픈소스아파치하둡 (Apache Hadoop) 사업을위해야후에서분사한기업의이름을지을때도, 코끼리가주인공인동화에나오는코끼리이름인호튼 (Horton) 을따와서호튼웍스 (Hortonworks) 라고회사명을지었다. 하둡은하둡공통패키지로구성되어있다. 이패키지에는하둡파일시스템 (HDFS), OS 수준앱스트랙션 (OS level abstractions) 그리고맵리듀스 (MapReduce) 엔진이포함되어있다. 또한필요한자바아카이브파일 (Java ARchive, JAR) 들과하둡을시작할스크립트, 소스코드들과관련자료들로구성되어있다. 작은하둡클러스터에는하나의마스터와여러워커노드들로구성되어있다. 마스터노드들은잡트렉커 (JobTracker), 테스크트렉커 (TaskTracker), 네임노드 (NameNode), 데이터노드 (DataNode) 로구성된다. 슬레이브또는워커노드 (Worker Node) 는데이터노드와테스크트렉커로서동작을한다. 하둡은자바런타임환경 (Java Runtime Environment, JRE) 1.6 또는그보다높은버전이필요하다. 일반시작및종료를위한스크립트는클러스터의노드들간설정을하기위해시큐어셸 (Secure Shell, ssh) 이필요하다. 대용량하둡클러스터에는 HDFS가파일시스템인덱스를관장하기위한네임노드전담서버를통해관리된다. 그리고 2차네임노드는네임노드의메모리구조스냅샷을만들어서파일시스템에장애나데이터의손실을줄여준다. 단독쟙트렉커서버는작업스케쥴링을관리한다. 하둡분산파일시스템 (HDFS, Hadoop distributed file system) 은하둡프레임워크를위해자바언어로작성된분산확장파일시스템이다. HDFS은여러기계에대용량파일들을을나눠서저장을한다. 데이터들을여러서버에중복해서저장을함으로써데이터안정성을얻는다. 따라서호스트에 RAID 저장장치를사용하지않아도된다. 하둡분산파일시스템은다음과같은시스템에서잘동작하는것을목표로하고있다. 하드웨어오동작 : 하드웨어수가많아지면그중에일부하드웨어가오동작하는것은예외상황이아니라항상발생하는일이다. 따라서이런상황에서빨리자동으로복구하는것은 HDFS의중요한목표다. 스트리밍자료접근 : 범용파일시스템과달리반응속도보다는시간당처리량에최적화되어있다. 큰자료집합 : 한파일이기가바이트나테라바이트정도의크기를갖는것을목적으로설계되었다. 자료대역폭총량이높고, 하나의클러스터에수백개의노드를둘수있다. 하나의인스턴스에서수천만여파일을 - 8 -
지원한다. 간단한결합모델 : 한번쓰고여러번읽는모델에적합한구조이다. 파일이한번작성되고닫히면바뀔필요가없는경우를위한것이다. 이렇게함으로써처리량을극대화할수있다. 자료를옮기는것보다계산작업을옮기는것이비용이적게든다 : 자료를많이옮기면대역폭이많이들기때문에네트워크혼잡으로인하여전체처리량이감소한다. 가까운곳에있는자료를처리하게계산작업을옮기면전체적인처리량이더높아진다. 다른종류의하드웨어와소프트웨어플랫폼과의호환성 : 서로다른하드웨어와소프트웨어플랫폼들을묶어놓아도잘동작한다. HDFS는마스터 / 슬레이브 (master/slave) 구조를가진다. HDFS 클러스터는하나의네임노드와, 파일시스템을관리하고클라이언트의접근을통제하는마스터서버로구성된다. 게다가클러스터의각노드에는데이터노드가하나씩존재하고, 이데이터노드는실행될때마다노드에추가되는스토리지를관리한다. HDFS는네임스페이스를공개하여서유저데이터가파일에저장되는것을허락한다. 내부적으로하나의파일은하나이상의블록으로나뉘어있고, 이블록들은데이터노드들에저장되어있다. 네임노드는파일과디렉터리의읽기 (open), 닫기 (close), 이름바꾸기 (rename) 등, 파일시스템의네임스페이스의여러기능을수행한다. 또한, 데이터노드와블록들의맵핑을결정한다. 데이터노드는파일시스템의클라이언트가요구하는읽기 (read), 쓰기 (write) 기능들을담당한다. 또한데이터노드는네임노드에서의생성, 삭제, 복제등과같은기능도수행한다. 네임노드와데이터노드는 GNU/Linux OS를기반으로하는상용머신에서실행하기위해디자인된소프트웨어의일부이다. HDFS는자바언어를사용하므로자바가동작하는어떠한컴퓨터에서나네임노드나데이터노드소프트웨어를실행할수있다. - 9 -
2. 팀구성및소개 (1) 담당자 1 담당교수 : 유준범소속 : 건국대학교컴퓨터공학부수행업무 : 종합설계 2 ( 졸업작품진행및관리 ) 2 지도교수 : 민덕기소속 : 건국대학교컴퓨터공학부수행업무 : 졸업작품지도및관리 (2) 팀구성 구분이름역할 Team Leader 박미관 - Schedule Management - Document Management - Development Team Member 김의명 - Testing - Development (3) 팀원소개 학년학번이름관심분야연락처이메일 4 200911388 박미관 - Big Data - Business 010-6201-3745 pmk3745 @ gmail.com 4 200911378 김의명 - Database - Finance 010-9960-2999 dmlaud1 @ naver.com - 10 -
3. 프로젝트설명 (1) 시스템구조 (2) 기능 1 오피니언마이닝 입력한이슈에대한트위터이용자들의의견을오피니언마이닝 (Opinion Mining) 을통해 분석하여, 정보를시각화하는기능을제공 - 11 -
사용자들의의견에대한자세한정보제공 같은의견을가진사용자들을군집알고리즘등을이용하여분류후, 사용자들간의 관계를분석하는기능을제공 같은의견을가진사용자들이관심을가지는다른이슈에대한정보제공 - 12 -
2 사용자분석 해당 ID 를가진사용자의관심정보및활동내용을분석하여성향을파악하는기능제공 3 분석정보저장 분석결과를엑셀 or 텍스트파일에저장하는기능을제공 4 하둡과머하웃을이용하여분산처리를수행하는기능을제공 - 하둡과머하웃을통한맵리듀스 (Map Reduce), 협업필터링, 군집, 분류등의기능을 이용하여대용량데이터를분산처리한다. - 13 -
(3) 개발환경 구분박미관김의명 OS (Virtual Box) Windows 7 64bit (Ubuntu Linux) Windows 7 64bit (Ubuntu Linux) CPU Inter(R) Core(TM) i5-3317u CPU @ 1.70GHz Inter(R) Core(R) CPU M 530 @ 2.40GHz Memory 8.00 GB 3.00 GB Development Method Agile Software Development Language Java, SQL Tool & Environment - Eclipse IDE for Java EE Developers - Hadoop Framework - Twitter4J, Mahout Libraries - Oracle Database Express Edition 11g release 2 - SVN, Check Style - 14 -
4. 프로젝트일정 구분 5 6 7 8 9 10 11 Project Plan Requirement Analysis Design Interim Report Development Testing Final Report - 15 -
5. 제출문서 구분문서명수량 졸업작품계획서 [2014 CD2] T22 졸업작품계획서.pdf 1 졸업작품계획검토확인서 [2014 CD2] T22 졸업작품계획검토확인서.jpg 1 6. 참고문헌및사이트 - http://ko.wikipedia.org/wiki/%eb%b6%84%ec%82%b0_%ec%bb%b4%ed%93%a8%ed%8c%85 - http://ko.wikipedia.org/wiki/%ec%9b%b9_%ed%81%ac%eb%a1%a4%eb%9f%ac - http://ko.wikipedia.org/wiki/%ed%95%98%eb%91%a1 - http://ko.wikipedia.org/wiki/%eb%b9%85_%eb%8d%b0%ec%9d%b4%ed%84%b0-16 -