NameNode
주로 메모리와 i/o에 관련된일을 한다.
Nanenode는 복수로 구성되지 않는다.
다른 데몬의 경우 복수로 구성되기 때문에 실패시 재실행을
시킬수 있으나 Namenode의 경우 그럴 수 없다.
Namenode는 각 블럭이 어떤 Datanode에 위치하는지 클라이언트에게 알려준다.
클라이언트는 HDFS블록들에 대응되는 로컬 파일을 처리하기위해 Datanode 데몬과 통신한다.

Datanode
다른 Datanode와 통신함으로써 자기가 가지고 있는 블럭을 다른 Datanode에 복사
할 수 있다. 이렇게 함으로써 네트웍이 깨져서 접근인 안되어도 사용자는 파을을 계속
읽을 수 있게 된다.
Datanode는 이러한 이동상황 블럭의 이동 복사 계속해서 Namenode에 보고한다.

Secondary NameNode(SNN)
클러스터로 구성되 HDFS 상태를 모니터하는 보조적인 성격을 가진 데몬이다. 각 클러스터는 SNN을 가진다. SNN은 Namenode와 달리 실시간으로 발생하는 HDFS의 변경에 관한 어떤 정보도 기록하지 않는다. 대신 클러스터 설정 시 정의된 값을 가지고 주기적으로 HDFS 메타데이터의 스냅샷을 찍는다.
Namenode는 하둡 클러스터에 대해 단일 실패 지점을 가지고 있기때문에
SNN의 스냅샷은 데이터의 손실과 시스템의 정지시간을 최소화 하는데 사용된다.
Namenode가 오류가 발생한 경우 SNN은 NameNode로 사용되는데 클러스터의 환경 설정 작업은
수작업으로 이루어진다.

Datanode slave 머신에는 DataNode 데몬이 존재한다.
로컬 파일시스템에 위치한 HDFS 블럭을 기록하거나
해당 파일을 읽는 등의 단순한 기능을 수행한다.
Datanode는 파일의 메타데이터 정보를 보관한다.
메타데이터는 다음정보를 포함한다.
(어떤 파일들이 있는지, 각각의 파일은 어떤게 블록으로 나누어지는지)
Datanode는 블럭의 백업 저장소 역할을 한다.
그리고 지속적으로 현재 시점의 메타데이터를 가질수 있도록 Namenode에게 계속 보고한다.

JobTracker

클러스터 노드에서 실행되는 사용자 어플리케이션들을 관리한다.
사용자가 코드를 하둡클러스터에 넘기면 JobTracker는 여러가지 실행 계획을 결정하게된다.
예를 들면 어느 데이터 파일을 처리할지 결정하고 노드에 여러 태스크를 할당한다.
또한 실행되는 모든 태스크를 모니터링하고 태스크라 실패한 경우 자동으로 실패한 태스크를
재실행한다. 재실행 시 실패한 태스크는 가능하면 다른 노드에 새로 할당되어 실행된다.
하둡 클러스터에는 하나의 JobTraker 만 존재한다. JobTracker는 보통 클러스터의 Master 노등에서 실행된다.

TaskTracker
데이터 저장에 관련된 NameNode 데몬과 마찬가지로 연산에 돤련되 데몬도
Master/Slave 구조를 가진다. JobTracker는 Master로서 MapReduce의 전체 실행을 감독한다.
TaskTracker는 JobTracker가 할당한 개별 작업을 실행한다.
slave 노드에는 TaskTracker가 하나만 존재한다. 하지만 여러 개의 jvm을 생성해서
다수의 map과 reduce 작업을 병렬 처리할 수 있다.
TaskTracker의 또 다른 일은 JobTracker와 계속해서 통신하는 것이다
jobTracker는 heartbeat 메시지가 TaskTracker로 부터 정해진 주기 내에 도착하지 않으면
해당 TaskTracker에 문제가 생긴것으로 간주하고 해당 작업을 클러스터 내에 위치한 다른
노드에 할당한다.
NameNode와 JobTracker 데몬을 실행하는 Master 노드가 있고 Master 노드에 문제가 생길 경우를 대비해, SNN이 Slave 노드 중 하나에 위치 할 수 있다. 클러스터 규모가 작은 경우에는
SNN이 Slave 노드 중 하나에 위치할 수 있다. 또한 클러스터 규모가 큰 경우에는
NameNode와 JobTracker를 서로 다른 컴퓨터에 분할해 배치할 수 있다.
Slave에 해당하는 컴퓨터들은 DataNode와 TaskTracker를 제공하는데 이들은 해당노드에서 작업을 실행한다. 이때 데이터 역시 같은 노드에 저장되어 있어야 한다.
하둡을 구성하려면 우선 Master 노드를 만들고 노드들 사이에 컨트롤 채널을 구헝한다. 이
통신 채널이 SSH가 된다.

'Hadoop' 카테고리의 다른 글

flume 설치 해보고 로그 수집하기  (0) 2013.03.07
하둡 Master / Slave 접근방식과 ssh의 설정  (0) 2013.02.19
하둡 설정 파일  (0) 2013.02.19
HDFS의 특징  (0) 2013.02.19
hadoop HDFS 명령어  (0) 2013.02.19
by pacino.kang 2013. 2. 19. 14:27

하둡 클러스터를 구축 할때는 하나의 특정 노드를 master 노드로 지정해야 한다.
master 노드의 역할을 하는 서버는 NameNode와 JobTracker 데몬을 제공하게된다.
또한 모든 Slave노드에 위치한 DataNode와 TaskTracker 데몬을 실행시킨다.
따라서 Master노드는 클러스터에 위치한 다른 모든 노드들에 접근할 수 있어야 한다.
하둡은 이러한 접근을 위해 SSH를 사용한다. SSH는 표준 공개 키 암호를 이용해 한쌍의
키를 생성한다. 이 키는 사용자를 확인하는데 사용하는데 하나는 공개(PUBLIC) 키이고
다른 하나는 개인(Private) 키로 설정된다. 공개 키는 클러스터에 있는 모든 노드에 저장되고
Master 노드는 원껴의 컴퓨터에 접근할때 개인키를 보낸다. 해당컴퓨터는 이두개의 키를 가지고
접근 시도를 허락한다.

하둡은 모든 노드가 동일한 사용자 계정을 가진다.
한 노드의 사용자 계정을 가지고 다른 컴퓨터에 접근하는 것이다.
보안을 위해 root가 아닌 사용자 계정을 사용할것을 권고한다.
이 계정은 하둡 클러스터를 관리할 목적으로만 사용된다.

ssh가 설치되어 있는지 확인

$ which ssh
/usr/bin/ssh

SSH가 클러스터의 모든 노드에 설치되어 있는것을 확인한 후 ssh-keygen을 사용하여
Master노드에 한 쌍의 RSA 키를 생성한다. 이때 passphrase는 입력하지 않는다.
그렇지 않으면 master 노드가 다른 노드에 접근할 때마다 매번 passparase를 입력해야 한다.

$ssh-keygen -t rsa

key파일을 저장할 위치를 물어보고나면
Enter passphrase 물어보면 그냥 enter를 친다.

본인의 서버구성이 분산 환경으로 구성된 경우에는
scp 명령어로 공개키를 분산서버의 같은위치에 옮기는 장업이 필요합니다.

'Hadoop' 카테고리의 다른 글

flume 설치 해보고 로그 수집하기  (0) 2013.03.07
hadoop 데몬  (0) 2013.02.19
하둡 설정 파일  (0) 2013.02.19
HDFS의 특징  (0) 2013.02.19
hadoop HDFS 명령어  (0) 2013.02.19
by pacino.kang 2013. 2. 19. 14:22

core-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>

<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-1.0.4/hadoop-${user.name}</value>
</property>
</configuration>

mapred-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>

<property>
<name>mapred.local.dir</name>
<value>${hadoop.tmp.dir}/mapred/local</value>
</property>

<property>
<name>mapred.system.dir</name>
<value>${hadoop.tmp.dir}/mapred/system</value>
</property>
</configuration>
</configuration>

hdfs-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop-1.0.4/dfs/name</value>
</property>

<property>
<name>dfs.name.edits.dir</name>
<value>${dfs.name.dir}</value>
</property>

<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop-1.0.4/dfs/data</value>
</property>
</configuration>

hadoop-env.sh

export JAVA_HOME=/usr/local/jdk1.6.0_38
export HADOOP_HOME=/usr/local/hadoop-1.0.4

'Hadoop' 카테고리의 다른 글

hadoop 데몬  (0) 2013.02.19
하둡 Master / Slave 접근방식과 ssh의 설정  (0) 2013.02.19
HDFS의 특징  (0) 2013.02.19
hadoop HDFS 명령어  (0) 2013.02.19
hadoop 개요  (0) 2013.02.14
by pacino.kang 2013. 2. 19. 14:11

HDFS의 정의
분산 서버 구조로 Master Name node가 파일의 메타(meta) 정보를 관리하고 실제 데이터는 여러 대의 Data node에 분산해서 저장하는 하둡 분산 파일 시스템

HDFS의 장점
기존의 대용량의 파일 시스템이나 DB서버를 구성하려면 고성능의 서버를 구매해야 했으면 상당히 많은
비용때문에 부담이 가는 실정이었습니다.
하지만 HDFS를 사용하면 일반 PC급 사양의 서버를 묶어서 하나의 스토리지 처럼 사용 할 수 있게되어
비용적인 부담이 줄게 되었고 향후 업그레이드 시에도 클러스터에 서버를 묶어 주기만하면 성능을
효과적으로 향상시킬수 있는 장점이 있습니다.
기존의 RDBMS 시스템은 투자한 금액에 비례해서 성능이 나오지 않았으나
HDFS는 투자한만큼 성능이 나타납니다.

HDFS의 특징
1. 분산서버는 다양한 장애 상황에 놓일수 있습니다.
   네트웍장애 하드웨어장애 등
   또한 디스크 장애로 인해 복구가 불가능한 상황에 놓일 수도 있습니다.
   HDFS는 이러한 장애를 감지하기위해 분산서버간에 서로 상태를 체크하여
   장애를 인지하고 대처할 수 있게 도와줍니다.
   이렇게 하기위해 데이터 노드간에는 데이터를 서로 복제하여 저장하게됩니다.

2. HDFS는 배치작업에 적합하도록 설계되어 있습니다.
   스트리밍 방식으로 데이터에 접근하기 때문에 특정위치의 정보에 정보를 읽는데는 적합하지 않고
   처음부터 끝까지 모든데이터를 읽는 높은데이터 처리량에 중점을 두고 있습니다.

3. HDFS는 하나의 파일이 수 기가바이트에서 테라바이트이상 으로 저장될 수 있게 설계 됐습니다.

4.HDFS는 한번 저장한 데이터는  수정할 수 없고 읽기만 가능하게 해서 데이터 무결성을 유지 시킵니다.
   이점에서 RDBMS와는 사용처가 다르다고 할 수 있습니다.
   데이터의 수정은 불가능 하지만 파일의 이동 삭제 복사는 할 수 있습니다.

'Hadoop' 카테고리의 다른 글

hadoop 데몬  (0) 2013.02.19
하둡 Master / Slave 접근방식과 ssh의 설정  (0) 2013.02.19
하둡 설정 파일  (0) 2013.02.19
hadoop HDFS 명령어  (0) 2013.02.19
hadoop 개요  (0) 2013.02.14
by pacino.kang 2013. 2. 19. 14:06

하둡에서 생성한 HDFS 디렉토리 정보는 일반 리눅스 명령어로는 보이지 않습니다.
아래의 HDFS명령어를 사용해야 합니다.

ls - 현재 디렉토리 정보를 나열합니다.
hadoop fs -ls output

lsr - 현재 디렉토리 목록과 하위디렉토리 정보를 나열합니다.
hadoop fs -lsr output

du - 디렉토리나 파일의 사용량을 확인하는 명령 바이트 단위로 결과 출력
hadoop fs -du output

dus - 디렉토리 전체의 합계용량을 출력
hadoop fs -dus output

cat - 테스트파일의 내용을 표시
hadoop fs -cat /user/root/output/part-r-00000

text - 테스트파일뿐 아니라 zip파일 형태의 내용도 표시.
hadoop fs -text /user/root/output/part-r-00000

mkdir - 디렉토리를 생성합니다..
hadoop fs -mkdir output1

put - 로컬의 파일 및 디렉토리를 목적지 경로(hdfs)로 복사.
        목적지 디렉토리가 없을 경우엔 디렉토리를 생성.

hadoop fs -put NOTICE.txt /user/root/input

get - hdfs의 파일 및 디렉토리를 로컬의 목적지로 복사.
목적지 디렉토리가 없을 경우엔 디렉토리를 생성.

hadoop fs -get input output

cp - hdfs간에 소스디렉토리 및 파을을 목저지로 복사.
hadoop fs -cp input/NOTICE.txt input/NOTICE.txt

rm - hdfs 디렉토리나 파일을 삭제한다.
       디렉토리는 반드시 비어있는 경우만 삭제 할 수 있습니다.
rmr - 비어있지 않은 디렉토리는 rmr로 삭제 할 수 있습니다.

hadoop fs -rm input1

mv - hdfs의 파일이나 디렉토리를 이동 합니다..

tail - 파일의 마지막 1kb의 내용을 화면에 출력합니다.
       로그파일의 마지막을 보고자 할때 유용합니다.
hadoop fs -tail -f input/notice.txt

count - 지정경로에 대한 파일갯수 디렉토리갯수 전체파일사이즈를 출력합니다.
           -q옵션을 사용할 경우 디렉토리의 파일 용량제한 정보를 조회할 수 있습니다.
hadoop fs -count -q input
첫번째 none은 파일갯수 쿼터값
첫번째 inf는 파일잔여쿼터값
두번째 none은 파일용량 쿼터값
두번째 inf는 파일용량 잔여 쿼터값
1은 디렉토리갯수
2는 파일갯수
1467은 전체파일사이즈
다음은 지정한경로이름

chmod - 지정한 파일이나 디렉토리에 대해 권한을 변경합니다.
          -R옵션을 주면 해당 디렉토리에 포함된 파일이나 디렉토리까지 변경됩니다.

chown - 지정한 파일이나 디렉토리의 소유권을 변경합니다.
           -R옵션을 주면 해당 디렉토리에 포함된 파일이나 디렉토리까지 변경됩니다.

touchz - 0바이트 파일을 생성합니다.

 

'Hadoop' 카테고리의 다른 글

hadoop 데몬  (0) 2013.02.19
하둡 Master / Slave 접근방식과 ssh의 설정  (0) 2013.02.19
하둡 설정 파일  (0) 2013.02.19
HDFS의 특징  (0) 2013.02.19
hadoop 개요  (0) 2013.02.14
by pacino.kang 2013. 2. 19. 12:41

 

 

 

by pacino.kang 2013. 2. 14. 15:09

by pacino.kang 2013. 2. 14. 14:42

Act는 Oracle로 치면 Sql_plus같은 프로그램이다.

by pacino.kang 2013. 2. 14. 14:33

 ACM에 접속하기위해서는 QUEEN NODE가 가동되어 있어야 한다.

       ACM에 접속하기위해서는 QUEEN NODE가 가동되어 있어야 한다.

by pacino.kang 2013. 2. 14. 13:33

Aster Express 실습 - 필요사항 

범위 : 실습을 위한 Aster Cluster Multi Node Server 이미지 설치

          ACT 사용법

          Eclipse 내에 ADE(Aster Development Environment)구축

          Aster Data SQL client

          Aster 분석 라이브러리 설치

          SQL-MR실습(Aster 내장 분석 MapReduce 함수 실행)

          사용자의 정의 MapReduce 작성, 배포, 실행

 소프트웨어 : vmplayer, 7zip, winscp, putty, 이클립스 64bit ,jdk 64bit

                        aster express 이미지 다운로드 URL

                        http://www.asterdata.com/download_aster_express/

                        ADE 다운로드 URL

                        http://www.asterdata.com/download_development_environment/

                       

 하드웨요구사항 : 64-bit capable CPU

                           메모리 4Gb이상

                           하드 20 Gb 이상

참고 tutorial 사이트

http://www.asterdata.com/download_aster_express/tutorial.php

 

 

by pacino.kang 2013. 2. 14. 13:19
| 1 2 3 |