동등해야합니까?
그러나 ” “명령이 로컬 파일을 hadoop fs
표시하는 hdfs files
반면 ” “명령이 표시되는 이유는 hdfs dfs
무엇입니까?
다음은 하둡 버전 정보입니다.
Hadoop 2.0.0-mr1-cdh4.2.1 Subversion git : //ubuntu-slave07.jenkins.cloudera.com/var/lib/jenkins/workspace/CDH4.2.1-Packaging-MR1/build/cdh4/mr1/2.0.0 -mr1-cdh4.2.1 / source -r Jenkins가 Mon Apr 22 10:48:26 PDT 2013에 컴파일
답변
다음은 동일하게 보이지만 미세한 차이가있는 세 가지 명령입니다.
- hadoop fs {args}
- hadoop dfs {args}
- hdfs dfs {args}
hadoop fs <args>
FS는 로컬, HDFS 등과 같은 모든 파일 시스템을 가리킬 수있는 일반 파일 시스템과 관련이 있습니다. 따라서 로컬 FS, (S) FTP, S3 등과 같은 다른 파일 시스템을 처리 할 때 사용할 수 있습니다.
hadoop dfs <args>
dfs는 HDFS에만 해당됩니다. HDFS와 관련된 작업을 위해 작동합니다. 이것은 더 이상 사용되지 않으며 대신 hdfs dfs 를 사용해야 합니다.
hdfs dfs <args>
두 번째와 동일합니다. 즉 HDFS와 관련된 모든 작업에 대해 작동하며 hadoop dfs 대신 권장되는 명령입니다.
아래는 hdfs
명령으로 분류 된 목록 입니다.
namenode|secondarynamenode|datanode|dfs|dfsadmin|fsck|balancer|fetchdt|oiv|dfsgroups
따라서 hadoop dfs 를 사용하더라도 hdfs를 찾고 해당 명령을 hdfs dfs에 위임합니다.
답변
https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/FileSystemShell.html
파일 시스템 (FS) 셸에는 HDFS (Hadoop Distributed File System) 및 로컬 FS, WebHDFS, S3 FS 등과 같이 Hadoop에서 지원하는 기타 파일 시스템과 직접 상호 작용하는 다양한 셸 유사 명령이 포함되어 있습니다.
bin / hadoop fs
<args>
모든 FS 셸 명령은 경로 URI를 인수로 사용합니다. URI 형식은 scheme : // authority / path입니다. HDFS의 경우 구성표는 hdfs이고 로컬 FS의 경우 구성표는 파일입니다. 계획과 권한은 선택 사항입니다. 지정하지 않으면 구성에 지정된 기본 체계가 사용됩니다. / parent / child와 같은 HDFS 파일 또는 디렉토리는 hdfs : // namenodehost / parent / child 또는 간단히 / parent / child로 지정할 수 있습니다 (구성이 hdfs : // namenodehost를 가리 키도록 설정되어있는 경우).
FS 셸의 대부분의 명령은 해당 Unix 명령처럼 작동합니다. 차이점은 각 명령으로 설명됩니다. 오류 정보는 stderr로 전송되고 출력은 stdout으로 전송됩니다.
HDFS를 사용하는 경우
hdfs dfs
동의어입니다.
답변
fs는 모든 파일 시스템을 나타내며 로컬 또는 HDFS 일 수 있지만 dfs는 HDFS 파일 시스템 만 나타냅니다. 따라서 서로 다른 파일 시스템간에 데이터 액세스 / 전송을 수행해야하는 경우 fs를 사용하면됩니다.
답변
내가 말할 수있는 건, 사이에 차이가 없다 hdfs dfs
하고 hadoop fs
. 사용중인 Hadoop 버전에 따라 다른 이름 지정 규칙입니다. 예를 들어,의 노트 1.2.1 을 사용 hdfs dfs
하는 동안 0.19 사용 hadoop fs
. 별도의 명령은 그대로 설명되어 있습니다. 그들은 동일하게 사용됩니다.
또한 두 명령 모두 사용자가 지정하는 항목 (hdfs, file, s3 등)에 따라 서로 다른 파일 시스템을 참조 할 수 있습니다. 파일 시스템이 나열되지 않으면 구성에 지정된 기본값으로 돌아갑니다.
Hadoop 2.0.0을 사용 하고 있으며 알파 버전이 사용 하고 구성에서 HDFS를 기본 체계로 사용하도록 설정되어있는 것처럼 보입니다 ( 2.0.5 문서 기반 ) hadoop fs
. hdfs dfs
명령은 이전에서 남아있을 수 있습니다 및 구성에 지정되지 않은 이후, 단지 로컬 파일 시스템을 디폴트 수 있습니다.
그래서 나는 hadoop fs
문서에서 동일하기 때문에 너무 걱정하지 않고 고수 할 것 입니다.
답변
FS 는 로컬, HDFS 등과 같은 모든 파일 시스템을 가리킬 수있는 일반 파일 시스템과 관련이 있습니다. 그러나 dfs 는 HDFS와 관련이 있습니다. 따라서 FS 를 사용할 때 로컬 또는 hadoop 분산 파일 시스템에서 대상으로 작업을 수행 할 수 있습니다. 하지만 DFS 지정 작업을 것은 HDFS와 관련이 있습니다.
다음은이 두 가지를 다른 셸로 설명하는 hadoop 문서에서 발췌 한 것입니다.
FS 셸
파일 시스템 (FS) 셸은 bin / hadoop fs에 의해 호출됩니다. 모든 FS 셸 명령은 경로 URI를 인수로 사용합니다. URI 형식은 scheme : // autority / path입니다. HDFS의 경우 체계는 hdfs이고 로컬 파일 시스템의 경우 체계는 파일입니다. 계획과 권한은 선택 사항입니다. 지정하지 않으면 구성에 지정된 기본 체계가 사용됩니다. / parent / child와 같은 HDFS 파일 또는 디렉토리는 hdfs : // namenodehost / parent / child 또는 간단히 / parent / child로 지정할 수 있습니다 (구성이 hdfs : // namenodehost를 가리 키도록 설정되어있는 경우). FS 셸의 대부분의 명령은 해당 Unix 명령처럼 작동합니다.
DFShell
HDFS 쉘은 bin / hadoop dfs에 의해 호출됩니다. 모든 HDFS 셸 명령은 경로 URI를 인수로 사용합니다. URI 형식은 scheme : // autority / path입니다. HDFS의 경우 체계는 hdfs이고 로컬 파일 시스템의 경우 체계는 파일입니다. 계획과 권한은 선택 사항입니다. 지정하지 않으면 구성에 지정된 기본 체계가 사용됩니다. / parent / child와 같은 HDFS 파일 또는 디렉토리는 hdfs : // namenode : namenodeport / parent / child 또는 간단히 / parent / child로 지정할 수 있습니다 (구성이 namenode : namenodeport를 가리 키도록 설정되어있는 경우). HDFS 셸의 대부분의 명령은 해당 Unix 명령처럼 작동합니다.
따라서 위에서 모든 것이 구성표 구성에 달려 있다고 결론을 내릴 수 있습니다. 절대 URI, 즉 scheme : // a / b와 함께이 두 명령을 사용할 때 동작은 동일해야합니다. fs 및 dfs에 대해 각각 파일 및 hdfs에 대해 구성된 기본 구성표 값만 동작 차이의 원인입니다.
답변
fs
= 파일 시스템
dfs
= 분산 파일 시스템
fs
= 다른 파일 시스템 + 분산 파일 시스템
FS는 로컬, HDFS 등과 같은 모든 파일 시스템을 가리킬 수있는 일반 파일 시스템과 관련이 있습니다. 그러나 dfs는 HDFS와 관련이 있습니다. 따라서 FS를 사용할 때 로컬 또는 hadoop 분산 파일 시스템에서 대상으로 작업을 수행 할 수 있습니다. 그러나 DFS 작업을 지정하는 것은 HDFS와 관련이 있습니다.
그것은 모두 구성표 구성에 달려 있습니다. 절대 URI와 함께이 두 명령을 사용할 때, 즉 scheme://a/b
동작은 동일해야합니다. 동작 차이의 원인 인 file://
및 hdfs://
for fs
및 dfs
각각에 대한 기본 구성된 구성표 값만 있습니다.
답변
