6(50)

Hadoop의 기본포트(Port)

하둡은 내부데몬(NameNode, SecondaryNameNode, DataNode, JobTracker, TaskTracker)간의 통신을 위해 다양한 포트를 사용합니다. 하둡에서 사용하는 포트가 방화벽등에 의해 막혀있다면 정상적으로 작동하지않을수 있습니다.

파라미터  기본값  용도  설정 파일
 dfs.secondary.http.address  50090 SecondaryNameNode 웹 서버 주소 및 포트  hdfs-site.xml
 dfs.datanode.address  50010 DataNode 주소 및 포트  hdfs-site.xml
 dfs.datanode.http.address  50075 DataNode 웹 서버 용 주소 및 포  hdfs-site.xml
 dfs.datanode.ipc.address  50020 DataNode ipc 서버용 주소 및 포트  hdfs-site.xml
 dfs.http.address  50070 NameNode 웹 어드민용 주소 및 포트  hdfs-site.xml
 mapred.job.tracker.http.address  50030 JobTracker 웹 서버용 주소 및 포트 mapred-site.xml
 mapred.task.tracker.http.address  50060 TaskTracker 웹 서버용 웹 주소 및 포트  mapred-site.xml

위와 같은 하둡의 포트를 열어줘야합니다.

개발을 위해 모든 포트를 개방하시려면 iptables설정을 해제하시는게 빠를수 있겠습니다.
$ su -root
$ service iptables stop
$ chkconfig iptables off

6(50)

Install Hadoop on MacOSX

MySQL에 이어 Hadoop 설치방법을 포스팅합니다.

역시 HomeBrew를 이용해서 설치를 진행하려하는데요.
$ ruby -e “$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)”
(기존에 포스팅했던 내용이라 간단히..)

* Step 1. Hadoop 설치하기

2014.1.5 기준으로 Hadoop 1.2.1 을 설치합니다. 2.x버전도 있지만 Alpha버전이므로 1.2.1을 추천합니다.

MacOSX 에 현재 설치된 Java버전을 미리 확인하시기 바랍니다.

Java 1.7버전에서는 Hadoop 실행시에
“Unable to load realm info from SCDynamicStore” 이러한 오류를 발생시킬수 있습니다.
Java 1.6버전으로 설정하셔야합니다.

 

* Step 2. Hadoop 설정하기

설정해야할 파일이 몇개 있습니다.
먼저 brew를 통해 설치된 Hadoop폴더로 이동합니다.
폴더명은 “/usr/local/Cellar/hadoop/1.2.1/libexec” 입니다.

– conf/core-site.xml
– conf/mapred-site.xml
– conf/hdfs-site.xml

3개의 파일을 수정합니다.

== conf/core-site.xml ==

== conf/mapred-site.xml ==

== conf/core-hdfs.xml ==

* Step3. Format Hadoop FileSystem & Start Hadoop
위와 같이 설정을 하시고 터미널에 Command를 입력하면 됩니다.

* bin/start-all.sh 할때 오류발생시 대처방안
Unable to load realm info from SCDynamicStore put: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /user/travis/input/conf. Name node is in safe mode.

conf/hadoop-env.sh 파일을 수정합니다.

Java7에서는 여전히 문제가 있는것 같습니다. 1.6으로 설정하시길 바랍니다. (다운로드 : http://support.apple.com/kb/DL1572)

참고URL : http://stackoverflow.com/questions/7134723/hadoop-on-osx-unable-to-load-realm-info-from-scdynamicstore

* Step4. Hadoop Processes are running

# Run a Hadoop example :

Hadoop logs: /usr/local/Cellar/hadoop/1.2.1/libexec/logs/
Web interface for Hadoop NameNode: http://localhost:50070/
Web interface for Hadoop JobTracker: http://localhost:50030/

20131231_001123

Apache Mahout

20131231_001123

Mahout 이란?

– 힌두어로 “코끼리를 모는 사람”이라는 뜻. Hadoop(하둡)의 로고가 코끼리인 것을 이용.
– Apache Lucene 프로젝트의 하위프로젝트로 시작되었다가, Open Source기반 협업 필터링 프로젝트 Taste를 흡수하면서 Apache Mahout으로 발전.
– 하둡을 기반으로 맵리듀스(Map Reduce)를 이용해 클러스터링, 분류, 분석 작업을 수행할수 있음.
– 대용량 데이터분석이 가능하며 확장성을 제공하는 기계학습 라이브러리.

 

제공되는 분석 기능들

– 협업 필터링
– 분류 : 특정 아이템이 어떤 분류에 속하는지 예측
– 클러스터링 : 비슷한 아이템들끼리 그룹핑
– 패턴 마이닝 : 빈번하게 발생하는 패턴을 찾음
– 그외에 회귀분석, 진화알고리즘, 벡터유사도 등 다양한 분석기능 제공

20131231_000054

추천시스템이란?

추천시스템은 정보 필터링(IF)기술의 일종으로, 특정 사용자가 관심을 가질만한 정보(영화,음악,책,뉴스,이미지,웹페이지 등)를 추천하는 것이다.

[추천시스템이 사용되는 곳] – Amazon 상품추천
– Netflix 영화추천
– Facebook 친구추천
– 휴대폰 벤더 : 다른통신사로 이탈확률 높은 고객예측

[추천효과]
– Netflix : 대여되는 영화의 2/3가 추천으로부터 발생
– Google News : 38%이상의 조회가 추천에 의해 발생
– Amazon : 판매의 35%가 추천으로부터 발생
– Netflix Prize (~2009) : Netflix에서 주관하는 경연대회로 영화선호도를 가장 잘 예측하는 협업필터링 알고리즘에 수상 (USD $1,000,000)

 

이러한 추천시스템중 대표적인 방식으로 “협업필터링” 방식이 있다.

많은 사용자들로부터 누적된 대규모의 데이터를 활용하여 이를 분류하고, 분류된 데이터의 기준을 기반으로 개로운 데이터에 대입하여 분류하는 방법.
사용자들의 과거 경향이 미래에도 그대로 유지될것이라는 전제를 바탕으로 함.

[사용자기반 협업필터링]
– 비슷한 선호도를 가지는 다른 고객들의 상품에 대한 평가에 근거하여 추천.
– 우선 비슷한 성향을 가진 이웃을 찾고, 그 이웃의 선호도를 이용함.
– 이웃을 선정하는 기법에는 클러스터링, K-최대근접이웃(K-mins), 베이지안 네트워크 등이 있다.
– 두 고객이 모두 평가를 한 상품이 있어야 하고, 오직 두 고객사이에서만 상관관계를 구할수 있는 제약이 있다.
– SNS의 친구 추천등에서 사용

20131231_000054

[아이템 기반 협업필터링]
– 사람들이 과거에 좋아했던 상품과 비슷한 상품을 좋아하는 경향이 있는 것을 기반으로 함.
– 고객이 선호도를 입력한 기존 상품들과 예측하고자 하는 상품과의 유사도를 계산하여 선호도를 측정.
– 고객들의 선호도만을 이용하기 때문에 고객간의 유사도는 고려되지않음.
– 아마존,넷플릭스의 상품추천 등에서 사용
20131231_000117

 

[출처 : http://www.slideshare.net/pitzcarraldo/mahout-cook-book (SlideShare) ]