Tip & Tech2009. 4. 27. 20:57
맑은 고딕이나 나눔 고딕과 같은

ClearType (클리어타입) 글꼴을 쓰면 좋다고 하는데...


디스플레이 등록 정보에 있는 화면 배색에서

화면 글꼴의 가장자리를 다듬는 데 다음 방법 사용을 체크하고

ClearType을 선택했음에도 불구하고

웬지 모르게 글꼴이 흐리멍텅해 보인다.


이럴 때는 아래 페이지에 방문해본다.

http://www.microsoft.com/typography/ClearType/tuner/tune.aspx

액티브 엑스를 설치하고, 아래 단계를 진행하면 흐리멍텅한 글씨로부터 벗어날 수 있다.


먼저 Tune on ClearType를 체크한다. 그리고 Next를 누른다.


설정을 선택한다. 대부분 왼쪽을 선택하면 된다. 왼쪽을 선택한 후, Next를 누른다.


마지막으로 6가지 중에서 가장 잘 보이는 것을 선택한다. 본인의 경우 상단 중앙을 선택하였다.

그리고 Finish를 누른다.



액티브 엑스 설치에 거부감이 있는 분들은 아래 링크를 통해 프로그램을 다운로드 받을 수 있다.

http://download.microsoft.com/download/b/7/0/b7019730-0fa3-47a9-a159-98b80c185aad/setup.exe

프로그램을 설치하면 제어판에 ClearType Tuning 이라는 아이콘이 생긴다.

이용 방법은 웹에서 설정하는 것과 대동소이하다.







클리어타입, ClearType, 글꼴, 폰트, Font, 흐리멍텅, ClearType Tuning, 클리어타입 튜닝, 맑은 고딕, 나눔 고딕, ClearType Tuner, 클리어타입 튜너
Posted by virgo81

댓글을 달아 주세요

Tip & Tech2009. 4. 13. 20:20
Let's Ko 구글 맵 API를 이용하면

뭔가 재미있는 것을 만들 수 있을거 같다.

기대하시라~^^









위도:   ~  
경도:   ~  
Posted by virgo81

댓글을 달아 주세요

Tip & Tech2008. 9. 27. 23:00


 
번역 문서 보기

원본 문서 보기



 

 

 

하둡 분산 파일 시스템: 구조와 설계

The Hadoop Distributed File System:
Architecture and Design

by Dhruba Borthakur
Translated by INHWAN HWANG.
http://www.virgo81.net / virgo81@gmail.com

목차

1. 소개 (Introduction) 4
2. 가정과 목표 (Assumptions and Goals) 5
    2.1. 하드웨어 실패 (Hardware Failure) 5
    2.2. 스트리밍 데이터 접근 (Streaming Data Access) 5
    2.3. 대용량 데이터 집합 (Large Data Sets) 5
    2.4. 단순 간섭 모델 (Simple Coherency Model) 5
    2.5. “데이터를 옮기는 것 보다 계산을 옮기는 것이 저렴하다.” (“Moving Computation is Cheaper than Moving Data”) 5
    2.6. 이종 하드웨어와 소프트웨어 플랫폼으로의 이식성 (Portability Across Heterogeneous Hardware and Software Platforms) 6
3. 네임노드와 데이터노드 (Namenode and Datanodes) 7
4. 파일 시스템 네임스페이스 (The File System Namespace) 9
5. 데이터 복제 (Data Replication) 10
    5.1. 복제 배치: 걸음마 (Replica Placement: The First Baby Steps) 10
    5.2. 복제 선택 (Replica Selection) 11
    5.3. 안전모드 (SafeMode) 11
6. 파일 시스템 메타데이터의 영속 (Persistence of File System Metadata) 11
7. 통신 프로토콜 (The Communication Protocols) 13
8. 견고성 (Robustness) 14
    8.1. 데이터 디스크 실패, 심장 박동 그리고 재 복제 (Data Disk Failure, Heartbeats and Re-Replication) 14
    8.2. 클러스터 재 균형 (Cluster Rebalancing) 14
    8.3. 데이터 일관성 (Data Integrity) 14
    8.4. 메타데이터 디스크 실패 (Metadata Disk Failure) 15
    8.5. 스냅샷 (Snapshots) 15
9. 데이터 구성 (Data Organization) 16
    9.1. 데이터 블록 (Data Blocks) 16
    9.2. 옮겨 바꾸기 (Staging) 16
    9.3. 복제 파이프라이닝 (Replication Pipelining) 16
10. 접근 성... 18
    10.1. DFSShell 18
    10.2. DFSAdmin. 18
    10.3. 브라우저 인터페이스 (Browser Interface) 18
11. 공간 교정 (Space Reclamation) 19
    11.1. 파일 삭제 및 복원... 19
    11.2. 복제 인수 감소 (Decrease Replication Factor) 19
12. 참고문헌 (References) 20 


 

1. 소개 (Introduction)

하둡 분산 파일 시스템(Hadoop Distributed File System, HDFS)은 기성 하드웨어에서 실행할 수 있도록 디자인된 분산 파일 시스템입니다. 그것은 기존의 분산 파일 시스템과 많은 유사성을 가지고 있습니다.
그러나, 다른 분산 파일 시스템과의 차이점은 매우 큽니다. HDFS는 상당히 내(
)고장(fault-tolerant)하고 저비용 하드웨어를 통해 배포할 수 있도록 설계되었습니다. HDFS는 응용 프로그램 데이터의 접근에 높은 처리량을 제공하고, 대용량 데이터 집합을 갖는 응용 프로그램에 적합합니다.
HDFS
는 파일 시스템 데이터의 스트리밍 접근을 가능하게 하기 위해 약간의 POSIX 요구사항을 게을리하였습니다. HDFS는 애초에 아파치 넛치(Apache Nutch) 웹 검색 엔진 프로젝트를 위한 하부 구조로써 만들어졌습니다
.
HDFS
는 아파치 루씬(Apache Lucene) 프로젝트의 부분인 아파치 하둡(Apache Hadoop) 프로젝트의 부분입니다. 프로젝트의 URL
http://projects.apache.org/projects/hadoop.html 입니다.

 


 

2. 가정과 목표 (Assumptions and Goals)

2.1. 하드웨어 실패 (Hardware Failure)

하드웨어 실패는 예외와는 뚜렷하게 다른 기준입니다. HDFS 인스턴스는 파일 시스템의 데이터의 부분을 저장하는 서버 장비의 수백 또는 수천으로 구성될 수 있습니다. 사실 대단히 많은 구성요소가 존재하고 각 구성요소는 불분명한 실패의 확률을 갖습니다. , HDFS의 일부 구성요소는 항상 기능을 수행하지 못합니다. 따라서 결함의 탐지와 빠르고 자동적인 복구는 HDFS의 핵심적인 구조적 목표입니다.

2.2. 스트리밍 데이터 접근 (Streaming Data Access)

HDFS에서 수행되는 응용 프로그램은 그들의 데이터 집합을 위하여 스트리밍 접근을 필요로 합니다. 그들은 일반적으로 일반적인 목적의 파일 시스템에서 수행되는 일반적인 목적의 응용 프로그램이 아닙니다. HDFS는 사용자에 의한 상호작용적(interactive) 사용 대신 배치 프로세싱에 더 적합하게 설계되었습니다. 강점은 데이터 접근의 낮은 지연(low latency)보다 데이터 접근의 높은 처리입니다. POSIX HDFS가 대상으로 하는 응용 프로그램이 필요로 하지 않는 많은 어려운 요구사항을 부과합니다. 약간의 키 영역들의 POSIX 의미론(semantics)은 데이터 처리율의 향상으로 교환되었습니다.

2.3. 대용량 데이터 집합 (Large Data Sets)

HDFS에서 수행되는 응용 프로그램은 대용량 데이터 집합을 가집니다. HDFS에서의 일반적인 파일은 기가 바이트부터 테라 바이트의 용량입니다. 따라서, HDFS는 대용량 파일들을 지원할 수 있도록 조정(tuned)되었습니다. 그것은 높은 총 데이터 대역폭과 단일 클러스터에서의 수백 노드로의 확장을 제공해야 합니다. 또한 단일 인스턴스에서 수 천만 파일을 제공해야 합니다.

2.4. 단순 간섭 모델 (Simple Coherency Model)

HDFS 응용 프로그램은 파일에 대해 한번 쓰고 여러 번 읽는(write-once-read-many) 접근 모델을 필요로 합니다. 파일이 한번 생성되고, 쓰여지고, 닫히면 변화를 필요로 하지 않습니다. 이런 가정은 데이터 간섭 이슈를 단순화하고 높은 처리량의 데이터 접근을 가능하게 합니다. MapReduce 응용 프로그램 또는 웹 크롤러 응용 프로그램은 이 모델에 완벽하게 적합합니다. 미래에는 파일에 추가-쓰기(appending-writes)를 제공할 계획이 있습니다.

2.5. “데이터를 옮기는 것 보다 계산을 옮기는 것이 저렴하다.” (“Moving Computation is Cheaper than Moving Data”)

응용 프로그램에 의해 요청된 계산은 만약 그것이 수행하는 데이터 근처에서 실행된다면 보다 더 효율적입니다. 이것은 데이터 집합의 사이즈가 대단히 클 때 특히 사실입니다. 이것은 네트워크 혼잡을 최소화 시키고 시스템의 전체적 처리량을 증가시킵니다. 가정은 응용 프로그램이 수행 되는 곳으로 데이터를 옮기는 것 보다 데이터 가까이로 계산을 옮기는 것이 더 낫다는 것 입니다. HDFS는 데이터가 위치한 곳 가까이로 그들을 옮길 수 있도록 응용 프로그램을 위한 인터페이스를 제공합니다.

2.6. 이종 하드웨어와 소프트웨어 플랫폼으로의 이식성 (Portability Across Heterogeneous Hardware and Software Platforms)

HDFS는 한 플랫폼에서 다른 플랫폼으로 쉽게 이식할 수 있도록 디자인되었습니다. 이것은 응용 프로그램의 대형 집합을 위한 선택의 플랫폼으로써 HDFS의 광범위한 적용을 용이하게 했습니다.


 

3. 네임노드와 데이터노드 (Namenode and Datanodes)

HDFS는 주/종 구조를 가지고 있습니다. HDFS 클러스터는 파일 시스템 네임스페이스를 관리하고 클라이언트에 의한 파일 접근을 통제하는 마스터 서버인 단일 네임노드로 구성됩니다. 추가적으로 클러스터에서 노드 당 하나며 노드에 붙은 스토리지를 관리하는 수 많은 데이터노드가 있습니다. HDFS는 파일 시스템 네임스페이스를 노출하고 사용자의 데이터를 파일로 저장되도록 허용합니다. 내부적으로 파일은 하나 또는 그 이상의 블록으로 쪼개지며 이러한 블록들은 데이터노드의 집합 안에 저장됩니다. 네임노드는 파일과 디렉터리의 열기, 닫기, 이름 변경과 같은 파일 시스템 네임스페이스 동작을 수행합니다. 또한 데이터노드로의 블록의 매핑을 판단합니다. 데이터노드는 파일 시스템의 클라이언트들로부터의 읽기와 쓰기 요청을 제공하는 역할을 합니다. 또한 네임노드의 지시에 따라 블록 생성, 삭제 그리고 복제를 수행합니다.


네임노드와 데이터노드는 기성 기계에서 실행하도록 설계된 소프트웨어의 조각입니다. 이러한 기계들은 일반적으로 GNU/Linux 운영체제(OS)를 수행합니다. HDFS Java 언어를 이용하여 만들었습니다; Java를 지원하는 어떤 기계도 네임노드 또는 데이터노드 소프트웨어를 수행할 수 있습니다. 높은 이식성의 Java 언어의 사용은 HDFS가 광범위한 기계에 배포될 수 있음을 의미합니다. 일반적인 배포는 네임노드만을 수행하는 전용의 기계를 가지고 있습니다. 클러스터에서의 각각의 다른 기계들은 데이터노드 소프트웨어의 한 인스턴스를 수행합니다. 구조는 같은 기계에서의 여러 데이터노드 수행을 제한하지는 않지만 실제 배포에서는 드문 경우 입니다
.
클러스터에서의 단일 네임노드의 존재는 시스템의 구조를 대단히 단순화시킵니다. 네임노드는 모든 HDFS 메타데이터를 위한 중재자 그리고 저장소입니다. 시스템은 사용자 데이터는 결코 네임노드를 통해 흐르지 않도록 설계되었습니다.


 

4. 파일 시스템 네임스페이스 (The File System Namespace)

HDFS 전통적인 계층적 파일 구조를 지원합니다. 사용자 또는 응용 프로그램은 디렉터리를 생성할 수 있고 디렉터리에 파일을 저장할 수 있습니다. 파일 시스템 네임스페이스 계층은 대부분의 다른 기존 파일 시스템들과 유사합니다; 파일을 생성하고 지울 수 있고, 하나의 디렉터리에서 다른 디렉터리로 파일을 복사할 수 있고, 파일 이름을 바꿀 수 있습니다. HDFS에 사용자 한도 량(quotas)과 접근 허가(permissions)는 아직 구현되지 않았습니다. HDFS는 하드 링크와 소프트 링크를 지원하지 않습니다. 그러나, HDFS 구조는 이러한 특징들의 구현을 제한하지는 않습니다.
네임노드는 파일 시스템 네임스페이스를 유지합니다. 파일 시스템 네임스페이스 또는 그것의 속성에 가해지는 어떠한 변화도 네임노드에 의해 기록됩니다. 응용 프로그램은 HDFS에 의해 유지되어야 하는 복제 개수를 명기할 수 있습니다. 파일의 사본 수는 그 파일의 복제 인수라 불립니다. 이러한 정보는 네임노드에 의해 저장됩니다.

 


 

5. 데이터 복제 (Data Replication)

HDFS는 대단위 클러스터에 매우 큰 파일들을 견실히 저장할 수 있도록 설계되었습니다. 그것은 각 파일을 블록의 순서로 저장합니다; 파일에서의 마지막 블록을 제외한 모든 블록은 같은 크기입니다. 파일의 블록들은 내()고장을 위해 복제됩니다. 블록 사이즈와 복제 인수는 파일마다 설정할 수 있습니다. 응용 프로그램은 파일의 복제의 수를 명기할 수 있습니다. 복제 인수는 파일 생성 시 명기되고 이후에 수정될 수 있습니다. HDFS의 파일은 바꿔 쓰기가 안되고(write-once) 엄격하게 말하면 언제나 하나의 작성자를 갖습니다.
네임스페이스는 블록의 복제에 관하여 모든 결정을 합니다. 그것은 심장 박동(Heartbeat)블록리포트(Blockreport)를 클러스터 내의 각 데이터노드로부터 주기적으로 받습니다.


5.1.
복제 배치: 걸음마 (Replica Placement: The First Baby Steps)

복제의 배치는 HDFS 신뢰성과 성능에 중요합니다. 복제 배치의 최적화는 HDFS를 대부분의 다른 분산 파일 시스템과 구분시킵니다. 이것은 많은 조정과 경험이 필요한 특징입니다. 랙을 아는(rack-aware) 복제 배치 정책의 목적은 데이터 신뢰성, 가용성 그리고 네트워크 대역폭 이용을 증대시키는 것 입니다. 복제 배치 정책을 위한 현재의 구현은 이 방향에서의 첫 번째 노력입니다. 이 정책을 구현하는 단기 목표는 상용 시스템에 그것을 검증하고, 그것의 행동에 대해 더 배우고, 그리고 테스트와 연구를 좀 더 정교하게 하는 기반을 만드는 것입니다.
대형 HDFS 인스턴스는 일반적으로 많은 랙에 널리 퍼진 컴퓨터의 클러스터에서 수행합니다. 다른 랙에 있는 두 노드 사이의 통신은 스위치를 통해야만 합니다. 대부분의 경우 같은 랙 안의 기계 간에 네트워크 대역폭은 다른 랙 안의 기계 간의 네트워크 대역폭보다 훨씬 큽니다
.
시작할 때, 각 데이터노드는 속해있는 랙을 판단하고 등록 시에 네임노드에게 자신의 랙의 아이디를 알립니다. HDFS는 기계의 랙 아이디를 판단하는데 사용되는 플러그 할 수 있는(pluggable) 모듈을 용이하게 하기 위한 API들을 제공합니다. 단순하지만, 최적화되지 않는 정책은 복제를 유일한 랙들에 위치 시키는 것 입니다. 이것은 전체 랙이 실패할 때 데이터를 잃는 것을 방지하고 데이터를 읽을 때 여러 랙으로부터의 대역폭의 사용을 허락합니다. 이 정책은 클러스터 안의 복제를 공평하게 분배합니다. 이 정책은 구성요소 실패 시에도 부하 균형을 쉽게 만들어 줍니다. 그러나 이 정책은 쓰기는 블록을 여러 랙으로 전송해야 하기 때문에 쓰기 비용을 증가 시킵니다
.
일반적인 경우, 복제 인수가 3이고, HDFS의 배치 정책은 첫 복제를 로컬 랙의 하나의 노드에 놓고, 다른 하나를 로컬 랙의 다른 노드에 넣고 마지막 하나를 다른 랙의 다른 노드에 넣습니다. 이 정책은 랙 사이의 쓰기 트래픽을 감소 시키고 일반적으로 쓰기 성능을 향상시킵니다. 랙 실패의 기회는 노드 실패의 기회보다 훨씬 적습니다; 이 정책은 데이터 신뢰성과 가용성 보장에 영향을 주지 않습니다. 그러나 블록이 유일한 3개의 랙 대신 2개의 랙에 위치하기 때문에 데이터를 읽을 때 사용되는 총 네트워크 대역폭은 감소 시킵니다. 이 정책으로 파일의 복제는 랙 사이에 공평하게 분배되지 않습니다. 복제의 1/3은 한 노드에 있고, 복제의 2/3은 하나의 랙에 있고 복제의 1/3은 나머지 랙에 공평하게 분배됩니다. 이 정책은 데이터 신뢰성 또는 읽기 성능의 손상 없이 쓰기 성능을 향상시킵니다
.
여기에 설명된 현재의 기본 복제 배치 정책은 진행 중인 작업 입니다.

5.2. 복제 선택 (Replica Selection)

전체 대역폭 소비와 읽기 지연을 최소화하기 위해 HDFS는 독자로부터 가까운 복제로부터 읽기 요구를 만족 시키는 것을 노력합니다. 만약 독자 노드와 같은 랙에 복제가 존재하면 그 복제가 읽기 요구를 만족 시키기 위해 선호됩니다. 만약 HDFS 클러스터가 여러 데이터 센터로 확장한다면 로컬 데이터 센터에 거주하는 복제가 어떠한 원격 복제보다 선호됩니다.

5.3. 안전모드 (SafeMode)

시작 시, 네임노드는 안전모드라 불리는 특별한 상태에 진입합니다. 데이터 블록의 복제는 네임노드가 안전모드 상태일 때 발생하지 않습니다. 네임노드는 데이터노드로부터 심장 박동(Heartbeat)과 블록리포트 메시지를 받습니다. 블록리포트는 데이터 노드가 호스팅하고 있는 데이터 블록의 목록을 포함합니다. 각 블록은 명기된 복제의 최소 수를 갖고 있습니다. 블록은 네임노드로에 점검된 데이터 블록의 복제의 최소 수 일 때 안전하게 복제된(safely replicated) 것으로 고려됩니다. 안전하게 복제된 데이터 블록의 설정 가능한 백분율이 네임노드와 점검한 이후에 (추가적으로 30초를 더함), 네임노드는 안전모드 상태를 벗어납니다. 그리고 나서 여전히 명기된 수보다 적은 데이터 블록의 목록을 판단합니다. 네임노드는 그리고 나서 이 블록들을 다른 데이터노드에 복제합니다.

6. 파일 시스템 메타데이터의 영속 (Persistence of File System Metadata)

HDFS 네임스페이스는 네임노드에 의해 저장됩니다. 네임노드는 영속적으로 파일 시스템 메타데이터에 발생하는 변화를 기록하기 위해 EditLog라 불리는 트랜잭션 로그를 사용합니다. 예를 들면 HDFS에서의 새 파일 생성은 네임노드에게 이것을 가리키는 기록을 EditLog에 넣는 것 유발합니다. 비슷하게 파일의 복제 인수의 변경도 EditLog로의 새로운 기록 삽입을 유발합니다. 네임노드는 EditLog를 저장하기 위해 그것의 지역 호스트 OS 파일 시스템 안의 파일을 사용합니다. 블록에서 파일로의 매핑과 파일 시스템 속성을 저장하는 전체 파일 시스템 네임스페이스는 FsImage라 불리는 파일 안에 저장됩니다. 또한 FsImage는 네임노드의 로컬 파일 시스템 안의 파일로 저장됩니다.
네임노드는 전체 파일 시스템 네임스페이스와 메모리 안의 파일 블록맵의 이미지를 유지합니다. 이 키 메타데이터 항목은 4GB의 램을 가진 네임노드가 거대한 수의 파일과 디렉터리를 지원하기에 충분하도록 작고 경제적으로 설계되었습니다. 네임노드가 시작하면 FsImage EditLog를 디스크로부터 읽고 EditLog로부터 모든 트랜잭션을 FsImage의 메모리 내 표현으로 적용하고 이 새 버전을 디스크의 새 FsImage로 내보냅니다. 그리고 나서 그것의 트랜잭션은 영속적으로 FsImage에 적용되었기 때문에 기존 EditLog를 버립니다. 이런 과정을 체크포인트(checkpoint)라 부릅니다. 현재 구현에서는 체크포인트는 네임노드가 시작할 때만 발생합니다. 가까운 미래에 주기적으로 체크포인팅을 지원하는 작업은 진행 중입니다
.
데이터노드는 로컬 파일 시스템의 파일에 HDFS 데이터를 저장합니다. 데이터노드는 HDFS 파일에 관한 지식을 가지고 있지 않습니다. 그것은 그것의 로컬 파일 시스템의 분리된 파일에 HDFS의 각 블록을 저장합니다. 데이터노드는 모든 파일을 같은 디렉터리에 생성하지 않습니다. 대신에 디렉터리 당 파일의 최적화된 수를 판단하고 적절하게 부 디렉터리를 생성하기 위해 휴리스틱(heuristic)을 사용합니다. 같은 디렉터리 내에 모든 로컬 파일을 생성하는 것은 로컬 파일 시스템이 한 디렉터리에 대량의 파일 수를 효과적으로 지원할 수 없기 때문에 최적화가 아닙니다. 데이터노드가 시작할 때 로컬 파일 시스템을 통해 검사하고 로컬 파일 시스템 각각에 상응하는 모든 HDFS 데이터 블록의 목록을 생성하고 네임노드로 보고 합니다: 이것이 블록리포트 입니다.

 


 

7. 통신 프로토콜 (The Communication Protocols)

모든 HDFS 통신 프로토콜은 TCP/IP 프로토콜 최상에 계층화되어 있습니다. 클라이언트는 네임노드 기계 상의 설정 가능한 TCP 포트로 연결을 설정합니다. 그것은 네임노드와 클라이언트프로토콜(ClientProtocol)로 말합니다. 데이터노드는 데이터노드프로토콜(DatanodProtocol)을 이용하여 네임노드에게 말합니다. 원격 프로시저 호출(Remote Procedure Call, RPC) 추상은 클라이언트프로토콜과 데이터노드프로토콜로 포장합니다. 설계에 의하면 네임노드는 어떠한 RPC들도 초기화하지 않습니다. 대신에 그것은 단지 데이터노드와 클라이언트들에 의해 발행된 RPC 요청들만 응답합니다.


 

8. 견고성 (Robustness)

HDFS의 주된 목표는 실패의 발생에서 조차도 데이터를 견실히 저장하는 것입니다. 실패의 세 일반적인 형식은 네임노드 실패, 데이터노드 실패 그리고 네트워크 분할 입니다.

8.1. 데이터 디스크 실패, 심장 박동 그리고 재 복제 (Data Disk Failure, Heartbeats and Re-Replication)

각 데이터노드는 네임노드로 심장 박동(Heartbeat) 메시지를 주기적으로 보냅니다. 네트워크 분할은 데이터노드의 부분집합이 네임노드와의 연결을 잃게 하는 것을 유발 시킬 수 있습니다. 네임노드는 심장 박동(Heartbeat) 메시지의 부재를 통해 이런 조건을 발견합니다. 네임노드는 최근 심장 박동(Heartbeat)이 없는 데이터노드를 죽은 것으로 표시하고 새로운 IO 요청을 그들에게 전달하지 않습니다. 죽은 데이터 노드에 등록된 어떤 데이터도 더 이상 HDFS에서 사용 가능하지 않습니다. 데이터노드 죽음은 복제 인수를 어떤 블록의 그들의 명기된 값 이하로 떨어지는 것을 유발합니다. 네임노드는 끊임없이 어떤 블록이 복제되어야 하는지 추적하고 필요할 때 복제를 시작합니다. 재 복제의 필요성은 여러 원인에 의해 발생합니다: 데이터노드가 사용 가능하지 않을 수 있고, 복제가 잘못 될 수도 있고, 데이터노드의 하드디스크가 실패할 수도 있고, 파일의 복제 인수가 증가되었을 수도 있습니다.

8.2. 클러스터 재 균형 (Cluster Rebalancing)

HDFS 구조는 데이터 재 균형 계획(scheme)과 호환 가능합니다. 계획은 만약 데이터노드의 여유 공간이 특정 임계 값 아래로 떨어졌을 때 자동적으로 데이터를 하나의 데이터노드에서 다른 노드로 이동시킬 수 있습니다. 특정 파일에 대한 갑작스런 높은 요구에 계획은 동적으로 추가적인 복제를 생성할 수 있고 클러스터 내의 다른 데이터를 재 균형 시킬 수 있습니다. 데이터 재 균형 계획의 이런 형식은 아직 구현되지 않았습니다.

8.3. 데이터 일관성 (Data Integrity)

데이터노드로부터 가져온 데이터의 블록이 잘못될 수 있습니다. 이러한 변조는 저장 장치의 결함, 네트워크 결함 또는 오류 있는 소프트웨어에 의해 발생할 수 있습니다. HDFS 클라이언트 소프트웨어는 HDFS 파일의 내용을 확인하기 위해 검사 합(checksum)을 구현합니다. 클라이언트가 HDFS 파일을 생성할 때, 파일의 각 블록의 검사 합(checksum)을 계산하고 이 검사 합(checksum)을 같은 HDFS 네임스페이스 안의 분리된 숨겨진 파일로 저장합니다. 클라이언트가 파일 내용을 탐색할 때 연관된 검사 합(checksum) 파일로 저장된 검사 합(checksum)을 데이터와 검증합니다. 만약 아니라면 클라이언트는 그 블록의 복제를 가진 다른 데이터노드로부터 블록을 탐색하는 것을 선택할 수 있습니다.

8.4. 메타데이터 디스크 실패 (Metadata Disk Failure)

FSImage EditLog HDFS의 중심 데이터 구조입니다. 이러한 파일의 변조는 HDFS 인스턴스를 동작하지 않게 할 수 있습니다. 이러한 이유로 네임노드는 FsImage EditLog의 여러 사본의 관리를 지원하도록 설정될 수 있습니다. FsImage 또는 EditLog의 어떠한 갱신도 FsImage들과 EditLog들의 각각의 동기적인 갱신을 유발합니다. FsImage EditLog의 여러 사본의 동기적인 갱신은 네임노드가 지원할 수 있는 초 당 네임스페이스 트랜잭션의 비율을 감소시킬 수 있습니다. 그러나 이러한 감소는 HDFS 태생적으로 응용 프로그램이 데이터 집중적이지 메타데이터 집중적이지 않기 때문에 수용할만합니다. 네임노드가 재 시작할 때 마지막 일관된 FsImage EditLog를 사용하기 위해 선택합니다.
네임노드 기계는 HDFS 클러스터에서 실패의 단일 지점입니다. 만약 네임노드 기계가 실패하면 수동적인 조정이 필요합니다. 현재로는 자동적인 재 시작과 다른 기계를 통한 네임노드 소프트웨어의 장애 극복(failover)은 지원되지 않습니다.

8.5. 스냅샷 (Snapshots)

스냅샷은 특정 시점의 순간의 사본의 저장을 지원합니다. 스냅샷 특징의 한 사용은 변조된 HDFS 인스턴스를 이전의 잘 알려진 좋은 시점으로 되돌리는 것일 수 있습니다. HDFS는 현재 스냅샷을 지원하지 않지만 미래의 발표 물에는 지원할 것 입니다.

 


 

9. 데이터 구성 (Data Organization)

9.1. 데이터 블록 (Data Blocks)

HDFS는 매우 큰 파일을 지원하도록 설계되었습니다. HDFS와 호환 가능한 응용 프로그램은 큰 데이터 집합을 다루는 그것 입니다. 이러한 응용 프로그램은 그들의 데이터를 한번만 쓰지만 한번 이상 읽고 이러한 읽기가 스트리밍 속도에 만족하는 것을 요구합니다. HDFS는 파일에서 한번 쓰고 여러 번 읽는 의미론(semantics)을 지원합니다. HDFS에서 사용되는 일반적인 블록 크기는 64MB입니다 따라서 HDFS 파일은 64 MB의 조각으로 잘리고 가능하면 각 조각은 다른 데이터 노드에 존재합니다.

9.2. 옮겨 바꾸기 (Staging)

파일 생성의 클라이언트 요청은 네임노드에 즉각적으로 도달하지 않습니다. 사실, 초기에 HDFS 클라이언트는 파일 데이터를 임시 로컬 파일로 저장합니다. 응용 프로그램의 쓰기는 투명하게 이 임시 로컬 파일로 돌려집니다. 로컬 파일 누적 데이터가 HDFS의 블록 크기를 넘어서면 클라이언트는 네임노드에 접촉합니다. 네임노드는 파일 이름을 파일 시스템 계층에 삽입하고 그것을 위한 데이터 블록을 할당합니다. 네임노드는 데이터노드와 목적지 데이터 블록의 신원과 함께 클라이언트 요구에 응답합니다. 그리고 나서 클라이언트는 데이터 블록을 로컬 임시 파일로부터 명기된 데이터노드로 내보냅니다. 파일이 닫히면, 임시 로컬 파일 내의 나머지 내보내지지 않은 데이터는 데이터노드로 전송됩니다. 클라이언트는 그리고 나서 네임노드에게 그 파일이 닫혔다고 말합니다. 이 때 네임노드는 파일 생성 동작을 영속 저장소에 넘깁니다. 만약 파일을 닫기 전에 네임노드가 죽으면 파일은 잃습니다.
위의 접근법은 HDFS에서 수행하는 대상 응용 프로그램에 대한 신중한 고려 후에 적용되어야 합니다. 이런 응용 프로그램은 파일로 스트리밍 쓰기를 필요로 합니다. 만약 클라이언트가 클라이언트 측 버퍼링 없이 원격 파일에 직접적으로 쓴다면 네트워크에서 네트워크 속도와 혼잡은 처리량에 상당하게 영향을 줍니다. 이러한 접근법은 전례 없는 것은 아닙니다. 초창기 분산 파일 시스템, 예를 들면 AFS는 성능 향상을 위해 클라이언트 측 캐싱을 사용했습니다. POSIX 요구 사항은 데이터 전송(upload)의 높은 성능을 달성하기 위해 게을리 하였습니다.

9.3. 복제 파이프라이닝 (Replication Pipelining)

클라이언트가 HDFS 파일에 데이터를 쓰는 중일 때, 데이터는 이전에 장에서 설명했던 것처럼 로컬 파일에 먼저 쓰여집니다. HDFS 파일이 세 개의 복제 인수를 가지고 있다고 가정합니다. 로컬 파일이 사용자 데이터의 가득 찬 블록으로 누적 되었을 때 클라이언트는 네임노드로부터 데이터노드의 목록을 탐색합니다. 이 목록은 블록의 복제를 호스트 할 데이터노드를 포함하고 있습니다. 그리고 나서 클라이언트는 데이터 블록을 첫 번째 데이터노드로 내보냅니다. 첫 번째 데이터 노드는 작은 부분(4 KB)으로 데이터를 받기 시작하고 각각의 부분을 로컬 저장소에 쓰고 목록의 두 번째 데이터노드로 전송합니다. 데이터노드의 각 부분을 받기 시작한 두 번째 데이터노드는 부분을 로컬 저장소에 쓰고 세 번째 데이터노드로 내보냅니다. 마지막으로 세 번째 데이터 노드는 데이터를 로컬 저장소에 씁니다. 따라서 데이터노드는 파이프라인 내의 이전 데이터노드로부터 데이터를 받고 동시에 파이프라인 내의 다음 데이터노드로 전송합니다. 따라서 데이터는 한 데이터 노드에서 다음으로 파이프라인으로 보내집니다.


 

10. 접근 성

HDFS는 다양한 방법으로 응용 프로그램으로부터 접근될 수 있습니다. 본래, HDFS는 응용 프로그램이 사용하는 것을 위해 Java API를 제공합니다. Java API를 위한 C 언어 포장(wrapper) 역시 있습니다. 추가적으로 HTTP 브라우저 역시 HDFS 인스턴스의 파일을 브라우저 하는 것에 쓰여집니다. HDFS WebDAV 프로토콜을 통해 노출하는 작업은 진행 중 입니다.

10.1. DFSShell

HDFS는 사용자 데이터를 파일과 디렉터리 형식으로 구성하는 것을 허가합니다. HDFS내의 데이터와 사용자가 상호작용할 수 잇는 DFSShell 이라 불리는 명령 줄 인터페이스를 제공합니다. 이 명령 집합의 구문은 사용자가 이미 익숙한 다른 쉘(shell)과 유사합니다. (예를 들면 bash, csh). 여기에 약간의 예제 액션/명령 쌍이 있습니다:

액션

명령

/foodir 이름의 디렉터리 생성

bin/hadoop dfs –mkdir /foodir

/foodir/myfile.txt 이름의 파일 내용 보기

bin/hadoop dfs –cat /foodir/myfile.txt

DFSShell은 저장된 데이터와 상호작용을 위해 스크립팅 언어가 필요한 응용 프로그램을 대상으로 합니다.

10.2. DFSAdmin

DFSAdmin 명령 집합은 HDFS 클러스터를 관리하기 위해 사용됩니다. HDFS 관리자에 의해서만 사용되는 명령들이 있습니다. 여기에 약간의 예제 액션/명령 쌍이 있습니다.

액션

명령

안전모드에서 클러스터 놓기

bin/hadoop dfsadmin –safemode enter

데이터노드의 목록 생성

bin/hadoop dfsadmin -report

datanodname 데이터노드의 중지

bin/hadoop dfsadmin –decommission datanodename

 

10.3. 브라우저 인터페이스 (Browser Interface)

일반적인 HDFS 설치는 HDFS 네임스페이스를 설정 가능한 TCP 포트로 노출하기 위해 웹 서버로 설정합니다. 이것은 사용자가 HDFS 네임스페이스를 항해하고 파일의 내용을 웹 브라우저를 통해 보는 것을 허가합니다.

11. 공간 교정 (Space Reclamation)

11.1. 파일 삭제 및 복원

사용자나 응용 프로그램에 의해 파일이 삭제 되었을 때, 그것은 즉각적으로 HDFS에서 제거되지 않습니다. 대신에 HDFS /trash 디렉터리의 파일로 먼저 이름을 변경합니다. 파일은 /trash에 남겨진 동안 빠르게 복원 될 수 있습니다. 파일은 /trash에 설정된 시간 동안 남아있습니다. /trash에서의 생활이 만료된 후, 네임노드는 HDFS 네임스페이스에서 그 파일을 지웁니다. 파일의 삭제는 파일과 연계된 블록의 해제를 유발합니다. 사용자에 의해 지워진 파일과 그에 상응하는 HDFS에서의 자유 공간 증가는 상당한 지연이 있을 수 있습니다.
사용자는 /trash 디렉터리에 남아있는 동안 삭제 후, 취소할 수 있습니다. 만약 사용자가 지운 파일의 취소를 원한다면 /trash 디렉터리를 항해하고 파일을 탐색할 수 있습니다. /trash 디렉터리는 단지 삭제된 파일의 최근 사본만 포함합니다. /trash 디렉터리는 한가지 특별한 특징(HDFS는 이 디렉터리로부터 자동적으로 파일을 삭제하기 위해 명기된 정책을 적용할 수 있습니다.)과 함께 어떠한 다른 디렉터리와 같습니다. 현재의 기본 정책은 /trash 로부터 6시간 이상 된 파일을 지우는 것 입니다. 미래에는 잘 정의된 인터페이스를 통해 정책을 수정할 수 있게 될 것 입니다.

11.2. 복제 인수 감소 (Decrease Replication Factor)

파일의 복제 인수가 감소 되었을 때, 네임노드는 삭제될 수 있는 초과 복제를 선택합니다. 다음 심장 박동(Heartbeat)은 이 정보를 데이터노드로 전송합니다. 데이터노드는 그러면 상응하는 블록을 제가하고 상응하는 자유 공간을 클러스터에 표시합니다. 다시 말하면, setReplication API 호출의 완료와 클러스터 내의 자유 공간 출현에는 시간 지연이 있습니다.


 

12. 참고문헌 (References)

HDFS Java API: http://lucene.apache.org/hadoop/api/
HDFS
소스 코드: http://lucene.apache.org/hadoop/version_control.html

 

Posted by virgo81

댓글을 달아 주세요

  1. 성모

    역시! 올때마다 이것저것 주워먹고 갑니다 냠냠

    2008.10.07 13:22 [ ADDR : EDIT/ DEL : REPLY ]
  2. 익명

    비밀댓글입니다

    2008.10.27 15:25 [ ADDR : EDIT/ DEL : REPLY ]
  3. 고형석

    감사합니다

    2010.01.12 14:23 [ ADDR : EDIT/ DEL : REPLY ]

Tip & Tech2008. 8. 30. 12:50
윈도 XP에서 지메일 드라이브(GMail Drive)를 설치했을 때는 내 컴퓨터에 GMail Drive가 표시되는데,
윈도 비스타에서는 Administrator 외의 계정에서는 내 컴퓨터에 GMail Drive가 표시되지 않는다.

GMail Drive was shown on Windows XP,
but it isn't shown on Windows Vista except Administrator account.


한참 고민하다가,
예전에 바탕화면에 인터넷 익스플로어 아이콘 만드는 것을 응용해봤다.

Long time I thought about it,
finally I found the idea from making Internet Explorer icon on desktop.

사용자 삽입 이미지

레지스트리에는 분명히 내 컴퓨터의 네임스페이스에
GMail Drive의 GUID {2B3453E4-49DF-11D3-8229-0080BE509050}가 등록 되어 있다.
GMail Drive를 만들 때 이를 이용할 것이다.

In registry, there is a GUID {2B3453E4-49DF-11D3-8229-0080BE509050} of GMail Drive in Mycomputer\NameSpace.
I will use it to make GMail Drive.


바탕화면에서 새 폴더를 만들고
폴더 이름을 GMail Drive.{2B3453E4-49DF-11D3-8229-0080BE509050} 로 변경한다.

Make a new folder on your desktop
and change its name to GMail Drive.{2B3453E4-49DF-11D3-8229-0080BE509050}

사용자 삽입 이미지

엔터를 치는 순간,
짜잔! GMail Drive를 만날 수 있다.!!

When you type an enter,
Wow, you can meet GMail Drive!!!

사용자 삽입 이미지

참고로, GMail Drive는 아래 링크에서 받을 수 있다.
Additionally, you can download GMail Drive below link.

http://www.viksoe.dk/code/gmail.htm


윈도 비스타 Windows Vista GMail Drive Shell Namespace Extention 쉘 네임스페이스 확장 쉘 네임스페이스 익스텐션 viksoe.dk 지메일 드라이브
Posted by virgo81

댓글을 달아 주세요

Tip & Tech2008. 8. 10. 15:09
윈도 XP를 운영체제로 사용하실 때, 바뀐 로그인 화면에서

Administrator 가 나타나지 않아서 불편을 느끼신 분이 계실 겁니다.

레지스트리를 조금만 편집해주면 Administrator를 나오게 할 수 있습니다.

시작 -> 실행 -> regedit 로 레지스트리 편집기를 실행하세요.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList]

를 찾아 갑니다.

오른쪽 마우스 버튼을 누르시고 새로 만들기 -> DWORD 값을 선택합니다.

사용자 삽입 이미지

이름은 Administrator 로 하시고, 더블 클릭하셔서 값은 1로 하십시오.

사용자 삽입 이미지

이제 다음 로그인부터는 Administrator를 보실 수 있습니다.


Windows XP 윈도 XP 윈도우 XP Administrator 로그인 화면 Login Winlogon SpecialAccounts UserList
Posted by virgo81

댓글을 달아 주세요

  1. 개인적인 생각이지만, Administrator 없는 것이 더 안전하지 않을까요?

    2008.09.10 04:55 [ ADDR : EDIT/ DEL : REPLY ]
    • 저도 개인적으로는 Administrator 계정을 사용하지는 않지만, 때때로 필요할 때가 있더라고요.
      필요하신 분이 있을거 같아서 올려봤습니다.^^

      2008.09.10 20:16 [ ADDR : EDIT/ DEL ]

Tip & Tech2008. 8. 10. 15:01

내가 쓰고 있는 IP 주소가 무엇인지 궁금하신가요?

# 간단하게 확인 -> myip.virgo81.net

# 다른 방법

시작 -> 실행 


cmd 라고 치시고, 확인을 누르세요.

그러면 명령 프롬프트가 나타납니다.

그 창에서

ipconfig 쳐보세요.

그러면 IP Address 와 Subnet Mask, Default Gateway 를 보실 수 있습니다.

사용자 삽입 이미지


ipconfig 에는 아래와 같은 옵션이 있습니다.

사용자 삽입 이미지


/? 도움말을 보여줍니다.
/all 모든 설정 정보를 보여줍니다.
/release 특정 아답터에 대한 IP Address 를 해제합니다.
/renew 특정 아답터에 대한 IP Address 를 새로 고칩니다.
/flushdns DNS 변환 캐시를 비웁니다.
/registerdns 모든 DHCP 임대를 새로 고치고, DNS 이름을 다시 등록합니다.
/displaydns DNS 변환 캐시의 내용을 보여줍니다.
/showclassid 아답터에 허용되는 모든 dhcp class ID들을 보여줍니다.
/setclassid dhcp class id를 수정합니다.

/? 하면 도움말을 보실 수 있습니다.




IP 주소 IP Address ipconfig Subnet Mask Default Gateway 서브넷 마스크 기본 게이트웨이 IP 새로 고침 IP 해제 DNS 변환 캐시


Posted by virgo81

댓글을 달아 주세요

Tip & Tech2008. 8. 10. 14:54
인터넷 주소체계는 A클래스 B클래스 C클래스 등으로 나누어져 있습니다.

각 A ~ C 클래스에는 클래스별로 사설 네트워크용으로 할당된 아이피 주소가 있습니다.

A클래스에서는 10.0.0.0 ~ 10.255.255.255

B클래스에서는 172.16.0.0 ~ 172.31.255.255

C클래스에서는 192.168.0.0 ~ 192.168.255.255

까지 사용할 수 있습니다.

사설 네트워크용 아이피는 현재 아이피 자원의 부족으로 인하여,

모든 기기에게 아이피를 할당해줄 수 없기 때문에

소수의 공용 아이피에 다수의 사설 아이피를 매핑해서 사용하게 합니다.

사설 아이피는 규모에 따라서 A ~ C 까지 선택하실 수 있는데,

가정에서는 얼마 연결하지 않기 때문에 일반적으로 C 클래스를 사용합니다.

사용자 삽입 이미지
192.168.0.2로 C클래스를 사용하고 있음.


인터넷 주소체계 A 클래스 B 클래스 C 클래스 사설 네트워크 아이피 주소 공용 아이피 사설 아이피 IP Address A Class B Class C Class Private Network Public IP Private IP Internet Protocol
Posted by virgo81

댓글을 달아 주세요

Tip & Tech2008. 8. 10. 14:47
XP에서 GUEST 계정은 기본적으로 사용 안함으로 되어 있습니다.

사용 안함을 해제하고 암호를 설정하는 법을 알려드리겠습니다.

일단 시작 -> 제어판 -> 관리 도구 -> 컴퓨터 관리 항목으로 갑니다.

시스템 도구 -> 로컬 사용자 및 그룹 -> 사용자로 가시면

Guest 를 보실 수 있습니다.

Guest 를 선택하신 후, 오른쪽 마우스 버튼을 누르시고, 속성을 선택하세요.

사용자 삽입 이미지

계정 사용 안함의 체크 표시를 제거하시고 확인을 눌러주세요.

사용자 삽입 이미지

그리고 나서 다시 Guest 를 선택하신 후, 오른쪽 마우스 버튼을 누르시고, 암호 설정을 선택하세요.

경고가 뜨면 예를 누르시고, 새 암호와 암호 확인을 입력하시고 확인을 누르시면,

사용자 삽입 이미지

Guest 계정에 암호가 설정됩니다.



Windows XP 윈도 XP 윈도우 XP GUEST 계정 로컬 사용자 및 그룹 사용자 게스트 계정 GUEST ACCOUNT LOCAL USER LOCAL GROUP USER
Posted by virgo81

댓글을 달아 주세요

Tip & Tech2008. 8. 9. 21:16
윈도 XP Pro에서는 기존 윈도 서버 운영체제에서

지원하던 터미널 서비스를 기본으로 제공하게 합니다.

하지만 보안상의 이유로 기본 설정으로는 접속이 불가능 합니다.

이 설정을 바꿔주시려면

내 컴퓨터에서 오른쪽 마우스 버튼을 누르시고,

속성을 선택합니다.

창이 나타나면 원격 탭으로 이동합니다.

사용자 삽입 이미지


사용자가 이 컴퓨터에 원격으로 연결할 수 있음 앞에 체크 표시 해줍니다.

이때 일부 사용자에 암호가 설정되어 있지 않다고 나타날 겁니다.

확인을 누르세요.

이제 원격으로 이 컴퓨터에 접속할 수 있습니다.

단, 원격으로 접속하려면 사용자와 암호를 알아야합니다.

또한, 암호가 없는 사용자라면 암호를 설정해주셔야합니다.

암호를 설정하시려면 시작 -> 설정 -> 제어판 -> 사용자 계정 에서 해당 사용자를 선택하신 후,

암호 만들기를 수행해주십시오.

너무 간단한 암호를 만드시면 보안상 위험이 있으니, 조금 난해한 암호로 설정하시기 바랍니다.


Windows XP 윈도 XP 윈도우 XP 원격 접속 원격 데스크탑 터미널 서비스 원격 지원 Remote Desktop Terminal Service
Posted by virgo81

댓글을 달아 주세요

Tip & Tech2008. 8. 6. 01:03
모처럼 새로운 마음의로 윈도를 새로 설치 했는데,

웹사이트에 로그인이 안되서 짜증나셨던 경험 있으실 겁니다.

그럼 이런 짜증나는 일을 어떻게 하면 해결할 수 있을까요?

아래 순서대로 따라해보시기 바랍니다.

IE6
먼저 인터넷 익스플로어 메뉴의 도구 -> 인터넷 옵션 -> 개인정보 탭 -> 고급 -> 설정에서

자동 쿠키 처리 덮어쓰기 - 체크
제 1 사 쿠키 - 적용
제 3 사 쿠키 - 적용
항상 세션에 쿠키 허용 - 체크

편집에서 관리된 웹 사이트 모두 제거를 하시기 바랍니다.

그리고 나서 일반 탭에 임시 인터넷 파일 부분의 설정 버튼을 누르신 후,
저장된 페이지의 새 버전 확인을 페이지를 열 때 마다 로 바꾸신 후,
해보시기 바랍니다.


IE7
먼저 인터넷 익스플로어 메뉴의 도구 -> 인터넷 옵션 -> 개인정보 탭 -> 고급 -> 설정에서

사용자 삽입 이미지

자동으로 쿠키 처리 안 함 - 체크
현재 사이트의 쿠키 - 허용
링크된 사이트의 쿠키 - 허용
항상 세션에 쿠키 허용 - 체크

사이트에서 관리되는 웹 사이트 모두 제거를 하시기 바랍니다.

사용자 삽입 이미지

그리고 나서 일반 탭에 검색 기록 부분의 설정 버튼을 누르신 후,
저장된 페이지의 새 버전 확인을 페이지를 열 때 마다 로 바꾸신 후,
해보시기 바랍니다.

사용자 삽입 이미지


웹사이트 로그인 Login 로그인 문제 login problem internet explorer
Posted by virgo81

댓글을 달아 주세요