HDFS 명령 가이드
HDFS 명령 가이드 (HDFS Commands Guide)
모든 HDFS 명령은 bin/hdfs 스크립트로 실행됩니다. 이 페이지에서는 HDFS 사용자 명령(User Commands)과 관리 명령(Administration Commands)의 사용법과 옵션을 안내합니다.
본문
개요 (Overview)
모든 HDFS 명령은 bin/hdfs 스크립트로 실행됩니다. 인자 없이 hdfs 스크립트를 실행하면 모든 명령에 대한 설명이 출력됩니다.
Usage: hdfs [SHELL_OPTIONS] COMMAND [GENERIC_OPTIONS] [COMMAND_OPTIONS]
Hadoop에는 일반 옵션을 파싱하고 클래스를 실행하는 옵션 파싱 프레임워크가 있습니다.
| COMMAND_OPTIONS | Description |
|---|---|
| SHELL_OPTIONS | 공통 셸 옵션 집합. Command 매뉴얼 페이지에 문서화되어 있습니다. |
| GENERIC_OPTIONS | 여러 명령이 지원하는 공통 옵션 집합. 자세한 내용은 Hadoop Command 매뉴얼을 참고하세요. |
| COMMAND_OPTIONS | 각 명령과 그 옵션은 다음 절에서 설명합니다. 명령은 User Commands와 Administration Commands로 그룹화되었습니다. |
사용자 명령 (User Commands)
Hadoop 클러스터의 사용자에게 유용한 명령입니다.
classpath
Usage: hdfs classpath [--glob |--jar <path> |-h |--help]
| COMMAND_OPTION | Description |
|---|---|
| --glob | 와일드카드를 확장합니다 |
| --jar path | classpath를 jar라는 이름의 매니페스트로 기록합니다 |
| -h, --help | 도움말을 출력합니다 |
Hadoop jar와 필요한 라이브러리를 얻는 데 필요한 클래스 경로를 출력합니다. 인자 없이 호출하면 명령 스크립트가 설정한 classpath를 출력하며, 이는 classpath 항목에 와일드카드를 포함할 가능성이 높습니다. 추가 옵션은 와일드카드 확장 후 classpath를 출력하거나 classpath를 jar 파일의 매니페스트에 기록합니다. 후자는 와일드카드를 사용할 수 없고 확장된 classpath가 지원되는 최대 명령줄 길이를 초과하는 환경에서 유용합니다.
dfs
Usage: hdfs dfs [COMMAND [COMMAND_OPTIONS]]
Hadoop에서 지원하는 파일시스템에 대해 파일시스템 명령을 실행합니다. 다양한 COMMAND_OPTIONS는 File System Shell 가이드에서 찾을 수 있습니다.
envvars
Usage: hdfs envvars
계산된 Hadoop 환경 변수를 표시합니다.
fetchdt
Usage: hdfs fetchdt <opts> <token_file_path>
| COMMAND_OPTION | Description |
|---|---|
| --webservice NN_Url | NN에 접속할 Url (http 또는 https로 시작) |
| --renewer name | 위임 토큰 갱신자(delegation token renewer)의 이름 |
| --cancel | 위임 토큰을 취소합니다 |
| --renew | 위임 토큰을 갱신합니다. 위임 토큰은 --renewer name 옵션으로 가져왔어야 합니다. |
| 위임 토큰을 출력합니다 | |
| token_file_path | 토큰을 저장할 파일 경로 |
NameNode에서 Delegation Token을 가져옵니다. 자세한 내용은 fetchdt를 참고하세요.
fsck
Usage:
hdfs fsck <path>
[-list-corruptfileblocks |
[-move | -delete | -openforwrite]
[-files [-blocks [-locations | -racks | -replicaDetails | -upgradedomains]]]
[-includeSnapshots] [-showprogress]
[-storagepolicies] [-maintenance]
[-blockId <blk_Id>] [-replicate]
| COMMAND_OPTION | Description |
|---|---|
| path | 이 경로에서부터 검사를 시작합니다. |
| -delete | 손상된 파일을 삭제합니다. |
| -files | 검사 중인 파일을 출력합니다. |
| -files -blocks | 블록 리포트를 출력합니다 |
| -files -blocks -locations | 모든 블록의 위치를 출력합니다. |
| -files -blocks -racks | DataNode 위치의 네트워크 토폴로지를 출력합니다. |
| -files -blocks -replicaDetails | 각 복제본 세부 사항을 출력합니다. |
| -files -blocks -upgradedomains | 모든 블록의 업그레이드 도메인을 출력합니다. |
| -includeSnapshots | 주어진 경로가 스냅샷 가능 디렉터리를 나타내거나 그 아래에 스냅샷 가능 디렉터리가 있으면 스냅샷 데이터를 포함합니다. |
| -list-corruptfileblocks | 누락된 블록과 그것이 속한 파일 목록을 출력합니다. |
| -move | 손상된 파일을 /lost+found로 이동합니다. |
| -openforwrite | 쓰기 위해 열린 파일을 출력합니다. |
| -showprogress | 더 이상 사용되지 않습니다. 이 스위치의 유무와 관계없이 100개 파일마다 점이 출력됩니다. |
| -storagepolicies | 블록의 스토리지 정책 요약을 출력합니다. |
| -maintenance | 유지보수 상태 노드 세부 사항을 출력합니다. |
| -blockId | 블록에 대한 정보를 출력합니다. |
| -replicate | 잘못 복제된 블록이 블록 배치 정책을 충족하도록 복제 작업을 시작합니다. |
HDFS 파일시스템 검사 유틸리티를 실행합니다. 자세한 내용은 fsck를 참고하세요.
getconf
Usage:
hdfs getconf -namenodes
hdfs getconf -secondaryNameNodes
hdfs getconf -backupNodes
hdfs getconf -journalNodes
hdfs getconf -includeFile
hdfs getconf -excludeFile
hdfs getconf -nnRpcAddresses
hdfs getconf -confKey [key]
| COMMAND_OPTION | Description |
|---|---|
| -namenodes | 클러스터의 namenode 목록을 가져옵니다. |
| -secondaryNameNodes | 클러스터의 secondary namenode 목록을 가져옵니다. |
| -backupNodes | 클러스터의 backup node 목록을 가져옵니다. |
| -journalNodes | 클러스터의 journal node 목록을 가져옵니다. |
| -includeFile | 클러스터에 가입할 수 있는 DataNode를 정의하는 include 파일 경로를 가져옵니다. |
| -excludeFile | decommission해야 하는 DataNode를 정의하는 exclude 파일 경로를 가져옵니다. |
| -nnRpcAddresses | namenode rpc 주소를 가져옵니다 |
| -confKey [key] | 설정에서 특정 키를 가져옵니다 |
후처리(post-processing)를 거쳐 구성 디렉터리에서 구성 정보를 가져옵니다.
groups
Usage: hdfs groups [username ...]
하나 이상의 사용자 이름에 대한 그룹 정보를 반환합니다.
httpfs
Usage: hdfs httpfs
HttpFS 서버, 즉 HDFS HTTP Gateway를 실행합니다.
lsSnapshottableDir
Usage: hdfs lsSnapshottableDir [-help]
| COMMAND_OPTION | Description |
|---|---|
| -help | 도움말을 출력합니다 |
스냅샷 가능 디렉터리 목록을 가져옵니다. 슈퍼 유저로 실행하면 모든 스냅샷 가능 디렉터리를 반환합니다. 그 외에는 현재 사용자가 소유한 디렉터리를 반환합니다.
lsSnapshot
Usage: hdfs lsSnapshot [-help]
| COMMAND_OPTION | Description |
|---|---|
| -help | 도움말을 출력합니다 |
스냅샷 가능 디렉터리의 스냅샷 목록을 가져옵니다.
jmxget
Usage: hdfs jmxget [-localVM ConnectorURL | -port port | -server mbeanserver | -service service]
| COMMAND_OPTION | Description |
|---|---|
| -help | 도움말을 출력합니다 |
| -localVM ConnectorURL | 같은 머신의 VM에 연결합니다 |
| -port mbean server port | mbean server 포트를 지정합니다. 누락되면 같은 VM의 MBean Server에 연결을 시도합니다 |
| -server | mbean server를 지정합니다 (기본값: localhost) |
| -service NameNode/DataNode | jmx 서비스를 지정합니다. 기본값: NameNode |
서비스에서 JMX 정보를 덤프합니다.
oev
Usage: hdfs oev [OPTIONS] -i INPUT_FILE -o OUTPUT_FILE
필수 명령줄 인자:
| COMMAND_OPTION | Description |
|---|---|
| -i,--inputFile arg | 처리할 edits 파일. xml(대소문자 구분 없음) 확장자는 XML 형식을 뜻하고, 다른 파일 이름은 이진 형식을 뜻합니다 |
| -o,--outputFile arg | 출력 파일 이름. 지정된 파일이 존재하면 덮어쓰이며, 파일 형식은 -p 옵션으로 결정됩니다 |
선택 명령줄 인자:
| COMMAND_OPTION | Description |
|---|---|
| -f,--fix-txids | 입력의 트랜잭션 ID를 번호를 다시 매겨 간격이나 잘못된 트랜잭션 ID가 없게 합니다. |
| -h,--help | 사용법 정보를 표시하고 종료합니다 |
| -r,--recover | 이진 편집 로그를 읽을 때 복구 모드를 사용합니다. 이는 편집 로그의 손상된 부분을 건너뛰는 기회를 줍니다. |
| -p,--processor arg | 이미지 파일에 적용할 프로세서 유형을 선택합니다. 현재 지원되는 프로세서: binary (Hadoop이 사용하는 네이티브 이진 형식), xml (기본값, XML 형식), stats (edits 파일에 대한 통계 출력) |
| -v,--verbose | 더 상세한 출력. 입력·출력 파일 이름을 출력하며, 파일에 쓰는 프로세서의 경우 화면에도 출력합니다. 대형 이미지 파일에서는 처리 시간이 크게 늘어납니다 (기본값: false). |
Hadoop 오프라인 edits 뷰어(Offline Edits Viewer)입니다. 자세한 내용은 Offline Edits Viewer 가이드를 참고하세요.
oiv
Usage: hdfs oiv [OPTIONS] -i INPUT_FILE
필수 명령줄 인자:
| COMMAND_OPTION | Description |
|---|---|
| -i/--inputFile input file | 처리할 입력 fsimage 파일(또는 ReverseXML 프로세서를 사용하는 경우 XML 파일)을 지정합니다. |
선택 명령줄 인자:
| COMMAND_OPTION | Description |
|---|---|
| -o,--outputFile output file | 지정된 출력 프로세서가 생성하는 경우 출력 파일 이름을 지정합니다. 지정된 파일이 이미 존재하면 조용히 덮어씁니다. (기본값: stdout으로 출력) 입력 파일이 XML 파일이면 <outputFile>.md5도 생성합니다. |
| -p,--processor processor | 이미지 파일에 적용할 이미지 프로세서를 지정합니다. 현재 유효한 옵션: Web (기본값), XML, Delimited, FileDistribution, ReverseXML. |
| -addr address | 수신할 주소(host:port)를 지정합니다. (기본값: localhost:5978). 이 옵션은 Web 프로세서와 함께 사용됩니다. |
| -maxSize size | 분석할 파일 크기 범위 [0, maxSize]를 바이트 단위로 지정합니다 (기본값: 128GB). 이 옵션은 FileDistribution 프로세서와 함께 사용됩니다. |
| -step size | 분포의 세분성을 바이트 단위로 지정합니다 (기본값: 2MB). 이 옵션은 FileDistribution 프로세서와 함께 사용됩니다. |
| -format | 출력 결과를 바이트 수 대신 사람이 읽기 쉬운 형식으로 표시합니다. (기본값: false) 이 옵션은 FileDistribution 프로세서와 함께 사용됩니다. |
| -delimiter arg | Delimited 프로세서와 함께 사용할 구분 문자열. |
| -sp | Storage policy를 출력할지 여부 (기본값: false). 이 옵션은 Delimited 프로세서에만 사용됩니다. |
| -ec | Erasure coding policy를 출력할지 여부 (기본값: false). 이 옵션은 Delimited 프로세서에만 사용됩니다. |
| -m,--multiThread arg | 하위 섹션을 처리할 multiThread를 지정합니다. 이 옵션은 Delimited 프로세서에만 사용됩니다. |
| -t,--temp temporary dir | Delimited 출력을 생성하기 위해 중간 결과를 캐시할 임시 디렉터리를 사용합니다. 설정하지 않으면 Delimited 프로세서는 텍스트 출력 전에 네임스페이스를 메모리에 구성합니다. |
| -h,--help | 도구 사용법과 도움말 정보를 표시하고 종료합니다. |
Hadoop 2.4 이상의 이미지 파일을 위한 Hadoop 오프라인 이미지 뷰어(Offline Image Viewer)입니다. 자세한 내용은 Offline Image Viewer 가이드를 참고하세요.
oiv_legacy
Usage: hdfs oiv_legacy [OPTIONS] -i INPUT_FILE -o OUTPUT_FILE
| COMMAND_OPTION | Description |
|---|---|
| -i,--inputFile input file | 처리할 입력 fsimage 파일을 지정합니다. |
| -o,--outputFile output file | 지정된 출력 프로세서가 생성하는 경우 출력 파일 이름을 지정합니다. 지정된 파일이 이미 존재하면 조용히 덮어씁니다. |
선택 명령줄 인자:
| COMMAND_OPTION | Description |
|---|---|
| -p/--processor processor | 이미지 파일에 적용할 이미지 프로세서를 지정합니다. 유효한 옵션: Ls (기본값), XML, Delimited, Indented, FileDistribution, NameDistribution. |
| -maxSize size | 분석할 파일 크기 범위 [0, maxSize]를 바이트 단위로 지정합니다 (기본값: 128GB). 이 옵션은 FileDistribution 프로세서와 함께 사용됩니다. |
| -step size | 분포의 세분성을 바이트 단위로 지정합니다 (기본값: 2MB). 이 옵션은 FileDistribution 프로세서와 함께 사용됩니다. |
| -format | 출력 결과를 바이트 수 대신 사람이 읽기 쉬운 형식으로 표시합니다. (기본값: false) 이 옵션은 FileDistribution 프로세서와 함께 사용됩니다. |
| -skipBlocks | 파일 내 개별 블록을 열거하지 않습니다. 매우 큰 파일이 있는 네임스페이스에서 처리 시간과 출력 파일 공간을 절약할 수 있습니다. Ls 프로세서는 파일 크기를 올바르게 결정하기 위해 블록을 읽으므로 이 옵션을 무시합니다. |
| -printToScreen | 프로세서의 출력을 지정된 파일뿐 아니라 콘솔에도 보냅니다. 매우 큰 네임스페이스에서는 처리 시간이 한 자릿수로 늘어날 수 있습니다. |
| -delimiter arg | Delimited 프로세서와 함께 사용될 때 기본 탭 구분자를 arg로 지정된 문자열로 대체합니다. |
| -h/--help | 도구 사용법과 도움말 정보를 표시하고 종료합니다. |
이전 버전의 Hadoop을 위한 하둡 오프라인 이미지 뷰어입니다. 자세한 내용은 oiv_legacy 명령을 참고하세요.
snapshotDiff
Usage: hdfs snapshotDiff <path> <fromSnapshot> <toSnapshot>
HDFS 스냅샷 간의 차이를 결정합니다. 자세한 내용은 HDFS Snapshot 문서를 참고하세요.
version
Usage: hdfs version
버전을 출력합니다.
관리 명령 (Administration Commands)
Hadoop 클러스터의 관리자에게 유용한 명령입니다.
balancer
Usage:
hdfs balancer
[-policy <policy>]
[-threshold <threshold>]
[-exclude [-f <hosts-file> | <comma-separated list of hosts>]]
[-include [-f <hosts-file> | <comma-separated list of hosts>]]
[-source [-f <hosts-file> | <comma-separated list of hosts>]]
[-blockpools <comma-separated list of blockpool ids>]
[-idleiterations <idleiterations>]
[-runDuringUpgrade]
[-asService]
[-sortTopNodes]
[-limitOverUtilizedNum <specified maximum number of overUtilized datanodes>]
[-hotBlockTimeInterval <specified time interval>]
| COMMAND_OPTION | Description |
|---|---|
| -policy |
datanode (기본값): 각 datanode가 균형을 이루면 클러스터가 균형을 이룹니다. blockpool: 각 datanode의 각 block pool이 균형을 이루면 클러스터가 균형을 이룹니다. |
| -threshold |
디스크 용량의 백분율. 기본 임계값을 덮어씁니다. |
| -exclude -f |
|
| -include -f |
|
| -source -f |
|
| -blockpools |
balancer는 이 목록에 포함된 blockpool에서만 실행됩니다. |
| -idleiterations |
종료 전 최대 유휴 반복 수. 기본 idleiterations(5)를 덮어씁니다. |
| -runDuringUpgrade | 진행 중인 HDFS 업그레이드 동안 balancer를 실행할지 여부. 과잉 사용 머신의 사용 공간에 영향을 주지 않으므로 보통 바람직하지 않습니다. |
| -asService | Balancer를 장기 실행 서비스로 실행합니다. |
| -sortTopNodes | 활용도에 따라 datanode를 정렬해 활용도가 높은 datanode를 먼저 스케줄링합니다. |
| -limitOverUtilizedNum | 과잉 사용(overUtilized) datanode의 최대 수를 제한합니다. |
| -hotBlockTimeInterval | 지정된 시간 간격 이전에 접근되거나 수정된 파일과 연관된 블록, 즉 콜드 블록 이동을 선호합니다. |
| -h/--help | 도구 사용법과 도움말 정보를 표시하고 종료합니다. |
클러스터 밸런싱 유틸리티를 실행합니다. 관리자는 Ctrl-C를 눌러 리밸런싱 프로세스를 중지할 수 있습니다. 자세한 내용은 Balancer를 참고하세요.
blockpool 정책은 datanode 정책보다 더 엄격합니다.
위 명령 옵션 외에도 2.7.0부터 특정 복제본이 balancer/mover에 의해 이동되지 않도록 막는 pinning 기능이 도입되었습니다. 이 pinning 기능은 기본적으로 비활성화되어 있으며, 구성 속성 "dfs.datanode.block-pinning.enabled"로 활성화할 수 있습니다. 활성화되면 이 기능은 create() 호출에서 지정된 favored 노드에 기록된 블록에만 영향을 줍니다. 이 기능은 HBase regionserver 같은 애플리케이션에서 데이터 지역성을 유지하려고 할 때 유용합니다.
Balancer를 장기 실행 서비스로 실행하려면 daemon-mode의 -asService 파라미터로 시작하세요. hdfs --daemon start balancer -asService 명령이나 -asService 파라미터와 함께 sbin/start-balancer.sh 스크립트를 사용하면 됩니다.
cacheadmin
Usage:
hdfs cacheadmin [-addDirective -path <path> -pool <pool-name> [-force] [-replication <replication>] [-ttl <time-to-live>]]
hdfs cacheadmin [-modifyDirective -id <id> [-path <path>] [-force] [-replication <replication>] [-pool <pool-name>] [-ttl <time-to-live>]]
hdfs cacheadmin [-listDirectives [-stats] [-path <path>] [-pool <pool>] [-id <id>]]
hdfs cacheadmin [-removeDirective <id>]
hdfs cacheadmin [-removeDirectives -path <path>]
hdfs cacheadmin [-addPool <name> [-owner <owner>] [-group <group>] [-mode <mode>] [-limit <limit>] [-maxTtl <maxTtl>]]
hdfs cacheadmin [-modifyPool <name> [-owner <owner>] [-group <group>] [-mode <mode>] [-limit <limit>] [-maxTtl <maxTtl>]]
hdfs cacheadmin [-removePool <name>]
hdfs cacheadmin [-listPools [-stats] [<name>]]
hdfs cacheadmin [-help <command-name>]
자세한 내용은 HDFS Cache Administration 문서를 참고하세요.
crypto
Usage:
hdfs crypto -createZone -keyName <keyName> -path <path>
hdfs crypto -listZones
hdfs crypto -provisionTrash -path <path>
hdfs crypto -help <command-name>
자세한 내용은 HDFS Transparent Encryption 문서를 참고하세요.
datanode
Usage: hdfs datanode [-regular | -rollback | -rollingupgrade rollback]
| COMMAND_OPTION | Description |
|---|---|
| -regular | 일반 datanode 시작 (기본값). |
| -rollback | datanode를 이전 버전으로 롤백합니다. datanode를 중지하고 이전 Hadoop 버전을 배포한 후에 사용해야 합니다. |
| -rollingupgrade rollback | 롤링 업그레이드 연산을 롤백합니다. |
HDFS datanode를 실행합니다.
dfsadmin
Usage:
hdfs dfsadmin [-report [-live] [-dead] [-decommissioning] [-enteringmaintenance] [-inmaintenance] [-slownodes]]
hdfs dfsadmin [-safemode enter | leave | get | wait | forceExit]
hdfs dfsadmin [-saveNamespace [-beforeShutdown]]
hdfs dfsadmin [-rollEdits]
hdfs dfsadmin [-restoreFailedStorage true |false |check]
hdfs dfsadmin [-refreshNodes]
hdfs dfsadmin [-setQuota <quota> <dirname>...<dirname>]
hdfs dfsadmin [-clrQuota <dirname>...<dirname>]
hdfs dfsadmin [-setSpaceQuota <quota> [-storageType <storagetype>] <dirname>...<dirname>]
hdfs dfsadmin [-clrSpaceQuota [-storageType <storagetype>] <dirname>...<dirname>]
hdfs dfsadmin [-finalizeUpgrade]
hdfs dfsadmin [-rollingUpgrade [<query> |<prepare> |<finalize>]]
hdfs dfsadmin [-upgrade [query | finalize]
hdfs dfsadmin [-refreshServiceAcl]
hdfs dfsadmin [-refreshUserToGroupsMappings]
hdfs dfsadmin [-refreshSuperUserGroupsConfiguration]
hdfs dfsadmin [-refreshCallQueue]
hdfs dfsadmin [-refresh <host:ipc_port> <key> [arg1..argn]]
hdfs dfsadmin [-reconfig <namenode|datanode> <host:ipc_port|livenodes|decomnodes> <start |status |properties>]
hdfs dfsadmin [-printTopology]
hdfs dfsadmin [-refreshNamenodes datanodehost:port]
hdfs dfsadmin [-getVolumeReport datanodehost:port]
hdfs dfsadmin [-deleteBlockPool datanode-host:port blockpoolId [force]]
hdfs dfsadmin [-setBalancerBandwidth <bandwidth in bytes per second>]
hdfs dfsadmin [-getBalancerBandwidth <datanode_host:ipc_port>]
hdfs dfsadmin [-fetchImage <local directory>]
hdfs dfsadmin [-allowSnapshot <snapshotDir>]
hdfs dfsadmin [-disallowSnapshot <snapshotDir>]
hdfs dfsadmin [-provisionSnapshotTrash <snapshotDir> [-all]]
hdfs dfsadmin [-shutdownDatanode <datanode_host:ipc_port> [upgrade]]
hdfs dfsadmin [-evictWriters <datanode_host:ipc_port>]
hdfs dfsadmin [-getDatanodeInfo <datanode_host:ipc_port>]
hdfs dfsadmin [-metasave filename]
hdfs dfsadmin [-triggerBlockReport [-incremental] <datanode_host:ipc_port> [-namenode <namenode_host:ipc_port>]]
hdfs dfsadmin [-listOpenFiles [-blockingDecommission] [-path <path>]]
hdfs dfsadmin [-help [cmd]]
| COMMAND_OPTION | Description |
|---|---|
| -report [-live] [-dead] [-decommissioning] [-enteringmaintenance] [-inmaintenance] [-slownodes] | 기본 파일시스템 정보와 통계를 보고합니다. dfs 사용량은 모든 DN에서 복제, 체크섬, 스냅샷 등이 사용하는 raw 공간을 측정하므로 "du" 사용량과 다를 수 있습니다. 선택 플래그로 표시할 DataNode 목록을 필터링할 수 있습니다. 필터는 DN 상태(예: live, dead, decommissioning) 또는 DN 특성(예: slow nodes - 동료보다 지연 시간이 높은 노드)에 기반합니다. |
| -safemode enter/leave/get/wait/forceExit | Safe mode 유지보수 명령. Safe mode는 Namenode가 1. 네임스페이스에 대한 변경을 허용하지 않고(읽기 전용) 2. 블록을 복제하거나 삭제하지 않는 상태입니다. Safe mode는 Namenode 시작 시 자동으로 진입하며, 구성된 최소 블록 백분율이 최소 복제 조건을 충족하면 자동으로 종료됩니다. Namenode가 이상을 감지하면 문제가 해결될 때까지 safe mode에 머뭅니다. 그 이상이 의도적인 조치의 결과라면 관리자는 -safemode forceExit로 safe mode를 종료할 수 있습니다. forceExit가 필요할 수 있는 경우: 1. Namenode 메타데이터가 일관되지 않습니다. Namenode가 메타데이터가 대역 외(out of band)로 수정되어 데이터 손실을 일으킬 수 있음을 감지하면 forceExit 상태에 진입합니다. 그 시점에 사용자는 올바른 메타데이터 파일로 Namenode를 재시작하거나 forceExit 할 수 있습니다(데이터 손실이 허용되는 경우). 2. Rollback으로 인해 메타데이터가 교체되고 드물게 Namenode에서 safe mode forceExit 상태가 유발될 수 있습니다. 그 경우 -safemode forceExit를 발행해 진행하면 됩니다. Safe mode는 수동으로 진입할 수도 있지만, 그러면 수동으로만 종료할 수 있습니다. |
| -saveNamespace [-beforeShutdown] | 현재 네임스페이스를 스토리지 디렉터리에 저장하고 edits 로그를 리셋합니다. Safe mode가 필요합니다. "beforeShutdown" 옵션이 주어지면 NameNode는 시간 창(구성 가능한 체크포인트 기간 수) 동안 체크포인트가 수행되지 않은 경우에만 체크포인트를 수행합니다. 이는 일반적으로 잠재적 fsimage/editlog 손상을 방지하기 위해 NameNode를 종료하기 전에 사용됩니다. |
| -rollEdits | 활성 NameNode의 edit log를 롤합니다. |
| -restoreFailedStorage true/false/check | 실패한 스토리지 복제본을 자동으로 복원하려는 시도를 켜거나 끕니다. 실패한 스토리지를 다시 사용할 수 있게 되면 시스템은 체크포인트 중 edits 및/또는 fsimage 복원을 시도합니다. 'check' 옵션은 현재 설정을 반환합니다. |
| -refreshNodes | hosts와 exclude 파일을 다시 읽어 Namenode에 연결할 수 있는 DataNode와 decommission 또는 recommission해야 할 DataNode 집합을 업데이트합니다. |
| -setQuota |
자세한 내용은 HDFS Quotas 가이드를 참고하세요. |
| -clrQuota |
자세한 내용은 HDFS Quotas 가이드를 참고하세요. |
| -setSpaceQuota |
자세한 내용은 HDFS Quotas 가이드를 참고하세요. |
| -clrSpaceQuota [-storageType |
자세한 내용은 HDFS Quotas 가이드를 참고하세요. |
| -finalizeUpgrade | HDFS 업그레이드를 마무리합니다. DataNode가 이전 버전 작업 디렉터리를 삭제한 다음 NameNode도 동일하게 수행합니다. 이로써 업그레이드 과정이 완료됩니다. |
| -rollingUpgrade [ |
|
| -upgrade query/finalize | 현재 업그레이드 상태를 쿼리합니다. HDFS 업그레이드를 마무리합니다(-finalizeUpgrade와 동일). |
| -refreshServiceAcl | 서비스 레벨 인가 정책 파일을 다시 로드합니다. |
| -refreshUserToGroupsMappings | 사용자-그룹 매핑을 갱신합니다. |
| -refreshSuperUserGroupsConfiguration | 슈퍼유저 프록시 그룹 매핑을 갱신합니다 |
| -refreshCallQueue | 구성에서 call queue를 다시 로드합니다. |
| -refresh host:ipc_port |
host:ipc_port에서 |
| -reconfig <datanode/nomenode> host:ipc_port/livenodes/decomnodes <start/status/properties> | 재구성(reconfiguration)을 시작하거나 진행 중인 재구성의 상태를 얻거나, 재구성 가능한 속성 목록을 얻습니다. 두 번째 파라미터는 노드 유형을 지정합니다. 세 번째 파라미터는 호스트 주소를 지정합니다. start 또는 status의 경우 datanode는 세 번째 파라미터로 livenodes와 decomnodes를 지원하며, 이는 모든 live 또는 decommissioning datanode에서 재구성을 시작하거나 검색합니다. |
| -printTopology | Namenode가 보고한 랙과 그 노드의 트리를 출력합니다 |
| -refreshNamenodes datanodehost:port | 주어진 datanode에 대해 구성 파일을 다시 로드하고, 제거된 block-pool 서빙을 중지하고 새 block-pool 서빙을 시작합니다. |
| -getVolumeReport datanodehost:port | 주어진 datanode에 대한 볼륨 리포트를 가져옵니다. |
| -deleteBlockPool datanode-host:port blockpoolId [force] | force가 전달되면 주어진 datanode에서 주어진 blockpool id에 대한 블록 풀 디렉터리가 내용과 함께 삭제되고, 그 외에는 디렉터리가 비어 있는 경우에만 삭제됩니다. datanode가 여전히 블록 풀을 서빙하고 있으면 명령은 실패합니다. datanode에서 블록 풀 서비스를 종료하려면 refreshNamenodes를 참고하세요. |
| -setBalancerBandwidth |
HDFS 블록 밸런싱 동안 각 datanode가 사용하는 네트워크 대역폭을 변경합니다. |
| -getBalancerBandwidth <datanode_host:ipc_port> | datanode 호스트에 적용된 최대 밸런서 대역폭(바이트/초)을 가져옵니다. |
| -fetchImage |
최신 fsimage를 로컬 디렉터리로 가져옵니다. |
| -allowSnapshot |
주어진 디렉터리에 snapshots 생성을 허용합니다. |
| -disallowSnapshot |
주어진 디렉터리에 snapshots 생성을 허용하지 않습니다. |
| -provisionSnapshotTrash |
스냅샷 삭제 시 .snapshot 휴지통 디렉터리를 준비합니다. |
| -shutdownDatanode <datanode_host:ipc_port> [upgrade] | datanode를 종료합니다. |
| -evictWriters <datanode_host:ipc_port> | datanode에서 writer를 추방합니다. |
| -getDatanodeInfo <datanode_host:ipc_port> | datanode에 대한 정보를 가져옵니다. |
| -metasave filename | Namenode의 기본 메타데이터 정보를 지정된 파일에 저장합니다. 저장되는 내용: 1. Namenode와 하트비트하는 DataNode 2. 복제를 기다리는 블록 3. 현재 복제 중인 블록 4. 삭제를 기다리는 블록 |
| -triggerBlockReport [-incremental] <datanode_host:ipc_port> [-namenode <namenode_host:ipc_port>] | 주어진 datanode에 대한 블록 리포트를 트리거합니다. 'incremental'이 지정되면 증분 블록 리포트, 그 외에는 전체 블록 리포트입니다. '-namenode <namenode_host:ipc_port>'가 주어지면 지정된 namenode에만 블록 리포트를 보냅니다. |
| -listOpenFiles [-blockingDecommission] [-path |
NameNode가 현재 관리하는 모든 열린 파일을 클라이언트 이름과 접근하는 클라이언트 머신과 함께 나열합니다. 열린 파일 목록은 주어진 타입과 경로로 필터링됩니다. DataNode의 decommissioning을 막는 열린 파일만 나열하려면 -blockingDecommission 옵션을 추가하세요. |
| -help [cmd] | 주어진 명령에 대한 도움말을 표시하거나, 지정된 것이 없으면 모든 명령에 대한 도움말을 표시합니다. |
HDFS dfsadmin 클라이언트를 실행합니다.
dfsrouter
Usage: hdfs dfsrouter
DFS 라우터를 실행합니다. 자세한 내용은 Router를 참고하세요.
dfsrouteradmin
Usage:
hdfs dfsrouteradmin
[-add <source> <nameservice1, nameservice2, ...> <destination> [-readonly] [-faulttolerant] [-order HASH|LOCAL|RANDOM|HASH_ALL] -owner <owner> -group <group> -mode <mode>]
[-addAll <source1> <nameservice1,nameservice2,...> <destination1> [-readonly] [-faulttolerant][-order HASH|LOCAL|RANDOM|HASH_ALL|SPACE] -owner <owner1> -group <group1> -mode <mode1> , <source2> <nameservice1,nameservice2,...> <destination2> [-readonly] [-faulttolerant] [-order HASH|LOCAL|RANDOM|HASH_ALL|SPACE] -owner <owner2> -group <group2> -mode <mode2> , ...]
[-update <source> [<nameservice1, nameservice2, ...> <destination>] [-readonly true|false] [-faulttolerant true|false] [-order HASH|LOCAL|RANDOM|HASH_ALL] -owner <owner> -group <group> -mode <mode>]
[-rm <source>]
[-ls [-d] <path>]
[-getDestination <path>]
[-setQuota <path> -nsQuota <nsQuota> -ssQuota <quota in bytes or quota size string>]
[-setStorageTypeQuota <path> -storageType <storage type> <quota in bytes or quota size string>]
[-clrQuota <path>]
[-clrStorageTypeQuota <path>]
[-dumpState]
[-safemode enter | leave | get]
[-nameservice disable | enable <nameservice>]
[-getDisabledNameservices]
[-refresh]
[-refreshRouterArgs <host:ipc_port> <key> [arg1..argn]]
[-refreshSuperUserGroupsConfiguration]
[-refreshCallQueue]
| COMMAND_OPTION | Description |
|---|---|
| -add source nameservices destination | 마운트 테이블 항목을 추가하거나, 존재하면 업데이트합니다. |
| -update source nameservices destination | 마운트 테이블 항목 속성을 업데이트합니다. |
| -rm source | 지정된 경로의 마운트 지점을 제거합니다. |
| -ls [-d] path | 지정된 경로 아래의 마운트 지점을 나열합니다. 자세한 목록을 얻으려면 -d 파라미터를 지정하세요. |
| -getDestination path | 파일이 있거나 생성되어야 하는 하위 클러스터를 가져옵니다. |
| -setQuota path -nsQuota nsQuota -ssQuota ssQuota | 지정된 경로의 쿼터를 설정합니다. 쿼터 세부 사항은 HDFS Quotas 가이드를 참고하세요. |
| -setStorageTypeQuota path -storageType storageType stQuota | 지정된 경로의 스토리지 타입 쿼터를 설정합니다. 쿼터 세부 사항은 HDFS Quotas 가이드를 참고하세요. |
| -clrQuota path | 주어진 마운트 지점의 쿼터를 지웁니다. 쿼터 세부 사항은 HDFS Quotas 가이드를 참고하세요. |
| -clrStorageTypeQuota path | 주어진 마운트 지점의 스토리지 타입 쿼터를 지웁니다. 쿼터 세부 사항은 HDFS Quotas 가이드를 참고하세요. |
| -safemode enter leave get | Router가 safe mode에 진입하거나 떠나도록 수동으로 설정합니다. get 옵션은 Router가 safe mode 상태인지 확인하는 데 사용됩니다. |
| -nameservice disable enable nameservice | 페더레이션에서 name service를 비활성화/활성화합니다. 비활성화되면 요청이 해당 name service로 가지 않습니다. |
| -getDisabledNameservices | 페더레이션에서 비활성화된 name services를 가져옵니다. |
| -refresh | 연결된 라우터의 마운트 테이블 캐시를 업데이트합니다. |
| refreshRouterArgs host:ipc_port |
host:ipc_port에서 |
| -refreshSuperUserGroupsConfiguration | Router에서 슈퍼유저 프록시 그룹 매핑을 갱신합니다. |
| -refreshCallQueue | Router의 구성에서 call queue를 다시 로드합니다. |
Router 기반 페더레이션을 관리하는 명령입니다. 자세한 내용은 Mount table management를 참고하세요.
diskbalancer
Usage:
hdfs diskbalancer
[-plan <datanode> -fs <namenodeURI>]
[-execute <planfile>]
[-query <datanode>]
[-cancel <planfile>]
[-cancel <planID> -node <datanode>]
[-report -node <file://> | [<DataNodeID|IP|Hostname>,...]]
[-report -node -top <topnum>]
| COMMAND_OPTION | Description |
|---|---|
| -plan | diskbalancer 플랜을 생성합니다 |
| -execute | datanode에서 주어진 플랜을 실행합니다 |
| -query | datanode에서 현재 diskbalancer 상태를 가져옵니다 |
| -cancel | 실행 중인 플랜을 취소합니다 |
| -report | datanode(들)의 볼륨 정보를 보고합니다 |
diskbalancer CLI를 실행합니다. 이 명령에 대한 자세한 내용은 HDFS Diskbalancer를 참고하세요.
ec
Usage:
hdfs ec [generic options]
[-setPolicy -policy <policyName> -path <path> [-replicate]]
[-getPolicy -path <path>]
[-unsetPolicy -path <path>]
[-listPolicies]
[-addPolicies -policyFile <file>]
[-listCodecs]
[-enablePolicy -policy <policyName>]
[-disablePolicy -policy <policyName>]
[-removePolicy -policy <policyName>]
[-verifyClusterSetup -policy <policyName>...<policyName>]
[-help [cmd ...]]
| COMMAND_OPTION | Description |
|---|---|
| -setPolicy | 디렉터리에 지정된 ErasureCoding 정책을 설정합니다 |
| -getPolicy | 지정된 경로에 대한 ErasureCoding 정책 정보를 가져옵니다 |
| -unsetPolicy | 디렉터리에 대한 이전 "setPolicy" 호출로 설정된 ErasureCoding 정책을 해제합니다 |
| -listPolicies | 지원되는 모든 ErasureCoding 정책을 나열합니다 |
| -addPolicies | 이레이저 코딩 정책 목록을 추가합니다 |
| -listCodecs | 시스템의 지원되는 이레이저 코딩 코덱과 코더 목록을 가져옵니다 |
| -enablePolicy | 시스템에서 ErasureCoding 정책을 활성화합니다 |
| -disablePolicy | 시스템에서 ErasureCoding 정책을 비활성화합니다 |
| -removePolicy | 시스템에서 ErasureCoding 정책을 제거합니다 |
| -verifyClusterSetup | 클러스터 설정이 이레이저 코딩 정책 목록을 지원할 수 있는지 확인합니다 |
ErasureCoding CLI를 실행합니다. 이 명령에 대한 자세한 내용은 HDFS ErasureCoding을 참고하세요.
haadmin
Usage:
hdfs haadmin -transitionToActive <serviceId> [--forceactive]
hdfs haadmin -transitionToStandby <serviceId>
hdfs haadmin -transitionToObserver <serviceId>
hdfs haadmin -failover [--forcefence] [--forceactive] <serviceId> <serviceId>
hdfs haadmin -getServiceState <serviceId>
hdfs haadmin -getAllServiceState
hdfs haadmin -checkHealth <serviceId>
hdfs haadmin -help <command>
| COMMAND_OPTION | Description |
|---|---|
| -checkHealth | 주어진 NameNode의 상태를 확인합니다 |
| -failover | 두 NameNode 간에 페일오버를 시작합니다 |
| -getServiceState | 주어진 NameNode가 Active인지 Standby인지 결정합니다 |
| -getAllServiceState | 모든 NameNode의 상태를 반환합니다 |
| -transitionToActive | 주어진 NameNode의 상태를 Active로 전환합니다 (경고: 펜싱이 수행되지 않음) |
| -transitionToStandby | 주어진 NameNode의 상태를 Standby로 전환합니다 (경고: 펜싱이 수행되지 않음) |
| -transitionToObserver | 주어진 NameNode의 상태를 Observer로 전환합니다 (경고: 펜싱이 수행되지 않음) |
| -help [cmd] | 주어진 명령에 대한 도움말을 표시하거나, 지정된 것이 없으면 모든 명령에 대한 도움말을 표시합니다. |
이 명령에 대한 자세한 내용은 HDFS HA with NFS 또는 HDFS HA with QJM을 참고하세요.
journalnode
Usage: hdfs journalnode
이 명령은 HDFS HA with QJM에 사용할 journalnode를 시작합니다.
mover
Usage: hdfs mover [-p <files/dirs> | -f <local file name>]
| COMMAND_OPTION | Description |
|---|---|
| -f |
마이그레이션할 HDFS 파일/디렉터리 목록을 포함하는 로컬 파일을 지정합니다. |
| -p <files/dirs> | 마이그레이션할 HDFS 파일/디렉터리의 공백으로 구분된 목록을 지정합니다. |
데이터 마이그레이션 유틸리티를 실행합니다. 자세한 내용은 Mover를 참고하세요.
-p와 -f 옵션이 모두 생략되면 기본 경로는 루트 디렉터리입니다.
또한 2.7.0부터 balancer/mover가 특정 복제본을 이동하지 못하도록 방지하는 pinning 기능이 도입되었습니다. 이 pinning 기능은 기본적으로 비활성화되어 있으며, 구성 속성 "dfs.datanode.block-pinning.enabled"로 활성화할 수 있습니다. 활성화되면 이 기능은 create() 호출에서 지정된 favored 노드에 기록된 블록에만 영향을 줍니다. 이 기능은 HBase regionserver 같은 애플리케이션에서 데이터 지역성을 유지하려고 할 때 유용합니다.
namenode
Usage:
hdfs namenode [-backup] |
[-checkpoint] |
[-format [-clusterid cid ] [-force] [-nonInteractive] ] |
[-upgrade [-clusterid cid] [-renameReserved<k-v pairs>] ] |
[-upgradeOnly [-clusterid cid] [-renameReserved<k-v pairs>] ] |
[-rollback] |
[-rollingUpgrade <rollback |started> ] |
[-importCheckpoint] |
[-initializeSharedEdits] |
[-bootstrapStandby [-force] [-nonInteractive] [-skipSharedEditsCheck] ] |
[-recover [-force] ] |
[-metadataVersion ]
| COMMAND_OPTION | Description |
|---|---|
| -backup | 백업 노드를 시작합니다. |
| -checkpoint | 체크포인트 노드를 시작합니다. |
| -format [-clusterid cid] | 지정된 NameNode를 포맷합니다. NameNode를 시작하고, 포맷한 후 종료합니다. name 디렉터리가 이미 존재하고 클러스터에서 reformat이 비활성화되어 있으면 NameNodeFormatException을 던집니다. |
| -upgrade [-clusterid cid] [-renameReserved |
새 Hadoop 버전 배포 후 Namenode는 upgrade 옵션으로 시작해야 합니다. |
| -upgradeOnly [-clusterid cid] [-renameReserved |
지정된 NameNode를 업그레이드한 다음 종료합니다. |
| -rollback | NameNode를 이전 버전으로 롤백합니다. 클러스터를 중지하고 이전 Hadoop 버전을 배포한 후에 사용해야 합니다. |
| -rollingUpgrade <rollback/started> | 자세한 내용은 Rolling Upgrade 문서를 참고하세요. |
| -importCheckpoint | 체크포인트 디렉터리에서 이미지를 로드해 현재 디렉터리에 저장합니다. 체크포인트 디렉터리는 dfs.namenode.checkpoint.dir 속성에서 읽습니다. |
| -initializeSharedEdits | 새 공유 edits 디렉터리를 포맷하고 standby NameNode가 시작할 수 있을 만큼 충분한 edit log 세그먼트를 복사합니다. |
| -bootstrapStandby [-force] [-nonInteractive] [-skipSharedEditsCheck] | 활성 NameNode에서 최신 네임스페이스 스냅샷을 복사해 standby NameNode의 스토리지 디렉터리를 부트스트랩할 수 있게 합니다. HA 클러스터를 처음 구성할 때 사용됩니다. -force 또는 -nonInteractive 옵션은 namenode -format 명령에서 설명한 것과 같은 의미입니다. -skipSharedEditsCheck 옵션은 활성의 마지막 체크포인트에서 시작하기에 충분한 edits가 공유 디렉터리에 이미 있는지 확인하는 edits 검사를 건너뜁니다. |
| -recover [-force] | 손상된 파일시스템에서 손실된 메타데이터를 복구합니다. 자세한 내용은 HDFS User Guide를 참고하세요. |
| -metadataVersion | 구성된 디렉터리가 존재하는지 확인한 다음 소프트웨어와 ...의 메타데이터 버전을 출력합니다. |
namenode를 실행합니다. 업그레이드와 롤백에 대한 자세한 내용은 Upgrade Rollback에 있습니다.
nfs3
Usage: hdfs nfs3
이 명령은 HDFS NFS3 서비스에 사용할 NFS3 게이트웨이를 시작합니다.
portmap
Usage: hdfs portmap
이 명령은 HDFS NFS3 서비스에 사용할 RPC portmap을 시작합니다.
secondarynamenode
Usage: hdfs secondarynamenode [-checkpoint [force]] | [-format] | [-geteditsize]
| COMMAND_OPTION | Description |
|---|---|
| -checkpoint [force] | EditLog 크기가 >= fs.checkpoint.size이면 SecondaryNameNode를 체크포인트합니다. force를 사용하면 EditLog 크기와 관계없이 체크포인트합니다. |
| -format | 시작 중 로컬 스토리지를 포맷합니다. |
| -geteditsize | NameNode에서 체크포인트되지 않은 트랜잭션 수를 출력합니다. |
HDFS secondary namenode를 실행합니다. 자세한 내용은 Secondary Namenode를 참고하세요.
storagepolicies
Usage:
hdfs storagepolicies
[-listPolicies]
[-setStoragePolicy -path <path> -policy <policy>]
[-getStoragePolicy -path <path>]
[-unsetStoragePolicy -path <path>]
[-satisfyStoragePolicy -path <path>]
[-isSatisfierRunning]
[-help <command-name>]
모든 스토리지 정책을 나열하거나 가져오기/설정/해제합니다. 자세한 내용은 HDFS Storage Policy 문서를 참고하세요.
zkfc
Usage: hdfs zkfc [-formatZK [-force] [-nonInteractive]]
| COMMAND_OPTION | Description |
|---|---|
| -formatZK | Zookeeper 인스턴스를 포맷합니다. -force: znode가 존재하면 포맷합니다. -nonInteractive: znode가 존재하면 -force 옵션이 지정되지 않는 한 포맷을 중단합니다. |
| -h | 도움말 표시 |
이 명령은 HDFS HA with QJM에 사용할 Zookeeper Failover Controller 프로세스를 시작합니다.
디버그 명령 (Debug Commands)
관리자가 HDFS 문제를 디버그하는 데 유용한 명령입니다. 이 명령은 고급 사용자 전용입니다.
verifyMeta
Usage: hdfs debug verifyMeta -meta <metadata-file> [-block <block-file>]
| COMMAND_OPTION | Description |
|---|---|
| -block block-file | 데이터 노드 로컬 파일시스템의 블록 파일 절대 경로를 지정하는 선택 파라미터. |
| -meta metadata-file | 데이터 노드 로컬 파일시스템의 메타데이터 파일 절대 경로. |
HDFS 메타데이터와 블록 파일을 검증합니다. 블록 파일이 지정되면 메타데이터 파일의 체크섬이 블록 파일과 일치하는지 검증합니다.
computeMeta
Usage: hdfs debug computeMeta -block <block-file> -out <output-metadata-file>
| COMMAND_OPTION | Description |
|---|---|
| -block block-file | 데이터 노드 로컬 파일시스템의 블록 파일 절대 경로. |
| -out output-metadata-file | 블록 파일의 체크섬 계산 결과를 저장할 출력 메타데이터 파일의 절대 경로. |
블록 파일에서 HDFS 메타데이터를 계산합니다. 블록 파일이 지정되면 블록 파일에서 체크섬을 계산해 지정된 출력 메타데이터 파일에 저장합니다.
NOTE: 책임은 사용자에게 있습니다! 블록 파일이 손상되어 있고 그 meta 파일을 덮어쓰면 HDFS에는 'good'으로 표시되지만 데이터를 읽을 수 없습니다. 최후의 수단으로, 블록 파일이 100% 정상이라고 확신할 때만 사용하세요.
recoverLease
Usage: hdfs debug recoverLease -path <path> [-retries <num-retries>]
| COMMAND_OPTION | Description |
|---|---|
| [-path path] | lease를 복구할 HDFS 경로. |
| [-retries num-retries] | 클라이언트가 recoverLease 호출을 재시도하는 횟수. 기본 재시도 횟수는 1입니다. |
지정된 경로의 lease를 복구합니다. 경로는 HDFS 파일시스템에 있어야 합니다. 기본 재시도 횟수는 1입니다.
verifyEC
Usage: hdfs debug verifyEC -file <file> [-blockId <blk_Id>] [-skipFailureBlocks]
| COMMAND_OPTION | Description |
|---|---|
| [-file EC-file] | 검증할 HDFS EC 파일. |
| [-blockId blk_Id] | 파일의 블록 그룹을 검증할 blk_Id를 지정합니다. |
| [-skipFailureBlocks] | 검증 중 블록 그룹 실패를 건너뛰고 파일의 모든 블록 그룹 검증을 계속하도록 지정합니다. 기본값은 실패 블록을 건너뛰지 않는 것입니다. |
이레이저 코딩된 파일의 이레이저 코딩 정확성을 검증합니다.
ViewFsOverloadScheme과 함께하는 dfsadmin
Usage: hdfs dfsadmin -fs <child fs mount link URI> <dfsadmin command options>
| COMMAND_OPTION | Description |
|---|---|
| -fs child fs mount link URI | ViewFS 세계에서 자식 파일시스템의 논리적 마운트 링크 경로입니다. 이 URI는 보통 fs.defaultFS가 앞에 붙은 src 마운트 링크로 구성됩니다. 실제 자식 파일시스템 URI가 아니라 실제 자식 파일시스템을 가리키는 논리적 마운트 링크 URI입니다. |
예시 명령 사용법: hdfs dfsadmin -fs hdfs://nn1 -safemode enter
ViewFsOverloadScheme에서는 ViewFsOverloadScheme 가이드에 표시된 것처럼 마운트 지점 매핑으로 여러 자식 파일시스템을 가질 수 있습니다. 여기서 -fs 옵션은 dfsadmin이 지원하는 선택적 일반 파라미터입니다. 사용자가 자식 파일시스템 중 하나에서 명령을 실행하려면 그 파일시스템 마운트 매핑 링크 uri를 -fs 옵션으로 전달해야 합니다. 아래에 마운트 링크 구성과 dfsadmin 명령의 예를 들어보겠습니다.
Mount link:
<property>
<name>fs.defaultFS</name>
<value>hdfs://MyCluster1</value>
</property>
<property>
<name>fs.viewfs.mounttable.MyCluster1./user</name>
<value>hdfs://MyCluster2/user</value>
<!-- mount table name : MyCluster1
mount link mapping: hdfs://MyCluster1/user --> hdfs://MyCluster2/user
mount link path: /user
mount link uri: hdfs://MyCluster1/user
mount target uri for /user: hdfs://MyCluster2/user -->
</property>
사용자가 hdfs://MyCluster2/와 통신하려면 -fs 옵션(-fs hdfs://MyCluster1/user)을 전달할 수 있습니다. /user가 클러스터 hdfs://MyCluster2/user로 매핑되었으므로, dfsadmin은 전달된 (-fs hdfs://MyCluster1/user)를 대상 fs(hdfs://MyCluster2/user)로 해석합니다. 이렇게 하면 사용자는 ViewFsOverloadScheme의 모든 hdfs 자식 파일시스템에 접근할 수 있습니다. -fs 옵션이 제공되지 않으면, fs.defaultFS uri로 실행되는 클러스터가 있다면 구성된 fs.defaultFS 클러스터에 연결을 시도합니다.