AWS EMR을 통한 HDFS HTTP 액세스(WebHDFS 편)
계속하다
컨디션
emr-6.2.0
us-east-1
차리다
보안 그룹
탭
서류
HDFS에 파일을 적절히 저장
# マスタノードから
echo hoge > hoge
hadoop fs -put hoge /user/hadoop/hoge
평가판(ls)
자주 노드 방문
curl -i -L -H "Content-Type: application/octet-stream" "http://[マスターパブリック DNS]:9870/webhdfs/v1/user/hadoop/hoge?user.name=hadoop&op=OPEN"
HTTP/1.1 307 Temporary Redirect
Date: Sat, 17 Apr 2021 09:37:28 GMT
Cache-Control: no-cache
Expires: Sat, 17 Apr 2021 09:37:28 GMT
Date: Sat, 17 Apr 2021 09:37:28 GMT
Pragma: no-cache
X-Content-Type-Options: nosniff
X-FRAME-OPTIONS: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Set-Cookie: hadoop.auth="u=hadoop&p=hadoop&t=simple&e=1618688248799&s=fQnBDkvI20pwGBmv5kdWY4V5FpN79P3qZSUhNT250kU="; Path=/; HttpOnly
Location: http://ip-172-31-0-218.ec2.internal:9864/webhdfs/v1/user/hadoop/hoge?op=OPEN&user.name=hadoop&namenoderpcaddress=ip-172-31-0-137.ec2.internal:8020&offset=0
Content-Type: application/octet-stream
Content-Length: 0
HTTP/1.1 200 OK
Access-Control-Allow-Methods: GET
Access-Control-Allow-Origin: *
Content-Type: application/octet-stream
Connection: close
Content-Length: 5
hoge
참고로 주공용 DNS 이름이 아니라 127..0.1을 지정하면 오류가 발생합니다.VPC 외부에서 액세스
방금 명령이 "http://ip-172-31-0-218.ec2.internal"로 리디렉션되었습니다.
따라서 VPC 외부에서 동일한 명령을 수행하더라도 목적지 이름을 리디렉션하는 데 문제가 발생하여 오류가 발생할 수 있습니다.
curl -i -L -H "Content-Type: application/octet-stream" "http://マスターパブリック DNS]:9870/webhdfs/v1/user/hadoop/hoge?user.name=hadoop&op=OPEN"
HTTP/1.1 307 Temporary Redirect
Date: Sat, 17 Apr 2021 09:37:19 GMT
Cache-Control: no-cache
Expires: Sat, 17 Apr 2021 09:37:19 GMT
Date: Sat, 17 Apr 2021 09:37:19 GMT
Pragma: no-cache
X-Content-Type-Options: nosniff
X-FRAME-OPTIONS: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Set-Cookie: hadoop.auth="u=hadoop&p=hadoop&t=simple&e=1618688239198&s=wOnS1DCO1eo6JJ5sRHkMlJd+/DF7oGnCi9iIa3H5MT4="; Path=/; HttpOnly
Location: http://ip-172-31-0-218.ec2.internal:9864/webhdfs/v1/user/hadoop/hoge?op=OPEN&user.name=hadoop&namenoderpcaddress=ip-172-31-0-137.ec2.internal:8020&offset=0
Content-Type: application/octet-stream
Content-Length: 0
curl: (6) Could not resolve host: ip-172-31-0-218.ec2.internal
목적지를 지정한 데이터 노드에 대응하는 공용 DNS 이름curl로 바꾸면 실행할 수 있습니다.curl -i -L -H "Content-Type: application/octet-stream" "http://[DataNodeにのパブリックDNS名]:9864/webhdfs/v1/user/hadoop/hoge?user.name=hadoop&op=OPEN&namenoderpcaddress=[リダイレクト指示に含まれる値]:8020&offset=0"
HTTP/1.1 200 OK
Access-Control-Allow-Methods: GET
Access-Control-Allow-Origin: *
Content-Type: application/octet-stream
Connection: close
Content-Length: 5
hoge
VPC에서 액세스
VPC 내 실례(※)에서 사유 DNS 명칭을 해결할 수 있기 때문에 주 노드와 같은curl을 실행할 수 있습니다.
※ EMR 클러스터 이외에도 가능
curl -i -L -H "Content-Type: application/octet-stream" "http://[マスターパブリック DNS]:9870/webhdfs/v1/user/hadoop/hoge?user.name=hadoop&op=OPEN"
HTTP/1.1 307 Temporary Redirect
Date: Sat, 17 Apr 2021 09:47:44 GMT
Cache-Control: no-cache
Expires: Sat, 17 Apr 2021 09:47:44 GMT
Date: Sat, 17 Apr 2021 09:47:44 GMT
Pragma: no-cache
X-Content-Type-Options: nosniff
X-FRAME-OPTIONS: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Set-Cookie: hadoop.auth="u=hadoop&p=hadoop&t=simple&e=1618688864675&s=R5/v/BXIQiwWOrs6XdzUenixck3o2He284wTXO6IqRE="; Path=/; HttpOnly
Location: http://ip-172-31-0-218.ec2.internal:9864/webhdfs/v1/user/hadoop/hoge?op=OPEN&user.name=hadoop&namenoderpcaddress=ip-172-31-0-137.ec2.internal:8020&offset=0
Content-Type: application/octet-stream
Content-Length: 0
HTTP/1.1 200 OK
Access-Control-Allow-Methods: GET
Access-Control-Allow-Origin: *
Content-Type: application/octet-stream
Connection: close
Content-Length: 5
hoge
HttpFS 와 비교할 때 어떤 것이 좋습니까?
위에서 설명한 내용일 경우 HttpFS에 비해 번거로울 뿐입니다.
그러나 웹HDFS에서는 NameNode를 통한 데이터 교환 없이 NameNode가 병목 현상에 빠지기 어려워 데이터 양과 요구가 많을 때 우위를 점할 수 있다.
VPC 외부에서 리디렉션
조사 중입니다.
Reference
이 문제에 관하여(AWS EMR을 통한 HDFS HTTP 액세스(WebHDFS 편)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/notrogue/articles/fe08d78468622b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)