[HADOOP] HDFS가 청취하고있는 포트 번호를 찾으십시오.
HADOOPHDFS가 청취하고있는 포트 번호를 찾으십시오.
나는 다음과 같은 정규화 된 이름으로 hdfs에 액세스하려고합니다.
hadoop fs -ls hdfs://machine-name:8020/user
나는 또한 단순히 hdfs에 액세스 할 수 있습니다.
hadoop fs -ls /user
그러나, 나는 다른 배포판 (HDP, Cloudera, MapR ... 등등)에서 작동해야하는 테스트 케이스를 작성하고있다. 정규화 된 이름으로 hdfs 파일에 액세스해야한다.
hdfs : // machine-name : 8020은 core-site.xml에 fs.default.name으로 정의되어 있음을 이해합니다. 그러나 이것은 다른 배포판에서 다른 것처럼 보입니다. 예를 들어, hdfs는 MapR의 MapRfs입니다. IBM BigInsights는 $ HADOOP_HOME / conf에 core-site.xml조차 갖지 않습니다.
hadoop이 명령 행 옵션으로 fs.default.name에 정의 된 것을 알려주는 것처럼 보이지 않습니다.
fs.default.name에 정의 된 값을 명령 행에서 안정적으로 얻으려면 어떻게해야합니까?
이 테스트는 항상 namenode에서 실행되므로 컴퓨터 이름은 쉽습니다. 그러나 포트 번호 (8020)를 얻는 것은 약간 어렵습니다. lsof, netstat를 시도했지만 .. 여전히 안정적인 방법을 찾지 못했습니다.
해결법
-
==============================
1.아파치 hadoop 2.7.0 이후 버전에서 사용할 수있는 명령 아래, 이것은 hadoop 설정 속성에 대한 값을 얻는 데 사용할 수 있습니다. hadoop 2.0에서는 fs.default.name이 사용되지 않으며 fs.defaultFS는 업데이트 된 값입니다. 이것이 maprfs를 작동시키는 지 여부는 확실하지 않습니다.
아파치 hadoop 2.7.0 이후 버전에서 사용할 수있는 명령 아래, 이것은 hadoop 설정 속성에 대한 값을 얻는 데 사용할 수 있습니다. hadoop 2.0에서는 fs.default.name이 사용되지 않으며 fs.defaultFS는 업데이트 된 값입니다. 이것이 maprfs를 작동시키는 지 여부는 확실하지 않습니다.
hdfs getconf -confKey fs.defaultFS # ( new property )
또는
hdfs getconf -confKey fs.default.name # ( old property )
Mapr 또는 hadoop 0.20 hadoop 버전의 구성 등록 정보 값을 검색하는 데 사용할 수있는 명령 줄 유틸리티가 있는지 여부는 확실하지 않습니다. 이 경우 Java에서 구성 등록 정보에 해당하는 값을 검색하는 것이 좋습니다.
Configuration hadoop conf = Configuration.getConf(); System.out.println(conf.get("fs.default.name"));
-
==============================
2.fs.default.name은 더 이상 사용되지 않습니다.
fs.default.name은 더 이상 사용되지 않습니다.
사용 : hdfs getconf -confKey fs.defaultFS
-
==============================
3.HDFS URI를 찾을 때이 대답을 발견했습니다. 일반적으로 그것은 namenode를 가리키는 URL입니다. hdfs getconf -confKey fs.defaultFS는 네임 서비스의 이름을 얻지 만 HDFS URI를 작성하는 데는 도움이되지 않습니다.
HDFS URI를 찾을 때이 대답을 발견했습니다. 일반적으로 그것은 namenode를 가리키는 URL입니다. hdfs getconf -confKey fs.defaultFS는 네임 서비스의 이름을 얻지 만 HDFS URI를 작성하는 데는 도움이되지 않습니다.
나는 아래 명령을 대신 namenodes의 목록을 얻으려고 시도했다.
hdfs getconf -namenodes
이것은 나에게 모든 namenodes의 목록을 주었다. 그 후 HDFS URI를 생성하는 것은 간단했습니다.
hdfs://<primarynamenode>/
-
==============================
4.당신이 사용할 수있는
당신이 사용할 수있는
hdfs getconf -confKey fs.default.name
-
==============================
5.네, hdfs getconf -namenodes는 namenodes의 목록을 보여줍니다.
네, hdfs getconf -namenodes는 namenodes의 목록을 보여줍니다.
from https://stackoverflow.com/questions/26216876/find-port-number-where-hdfs-is-listening by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Hadoop : 데이터 노드 프로세스가 종료되었습니다. (0) | 2019.07.05 |
---|---|
[HADOOP] AWS EMR에서 원사를 다시 시작하는 방법 (0) | 2019.07.05 |
[HADOOP] Hadoop 안전 모드 복구 - 너무 오래 걸림! (0) | 2019.07.05 |
[HADOOP] 테이블 크기 (행 수)를 빠르게 찾기위한 하이브 쿼리 (0) | 2019.07.05 |
[HADOOP] 하이브 : 테이블의 모든 파티션을 표시하는 방법? (0) | 2019.07.05 |