HDFS
HDFS 커넥터를 사용하면 HDFS 데이터에 대한 삽입, 삭제, 업데이트, 읽기 작업을 수행할 수 있습니다.
지원되는 버전
이 커넥터는 HDFS Hadoop 버전 3.4.0을 지원합니다.
시작하기 전에
HDFS 커넥터를 사용하기 전에 다음 태스크를 수행합니다.
- Google Cloud 프로젝트에서:
- 커넥터를 구성하는 사용자에게 roles/connectors.admin IAM 역할을 부여합니다.
- 커넥터에 사용할 서비스 계정에 다음 IAM 역할을 부여합니다.
roles/secretmanager.viewer
roles/secretmanager.secretAccessor
서비스 계정은 인증을 거쳐야 하며 Google API의 데이터에 액세스할 수 있는 승인을 받은 사람이 아닌 사용자를 나타내는 특별한 유형의 Google 계정입니다. 서비스 계정이 없으면 서비스 계정을 만들어야 합니다. 자세한 내용은 서비스 계정 만들기를 참조하세요.
- 다음 서비스를 사용 설정합니다.
secretmanager.googleapis.com
(Secret Manager API)connectors.googleapis.com
(Connectors API)
서비스 사용 설정 방법은 서비스 사용 설정을 참조하세요.
이러한 서비스나 권한이 이전 프로젝트에서 사용 설정되지 않았으면 커넥터를 구성할 때 서비스나 권한을 사용 설정하라는 메시지가 표시됩니다.
커넥터 구성
연결은 데이터 소스와 관련이 있습니다. 즉, 데이터 소스가 많으면 데이터 소스마다 별도의 연결을 만들어야 합니다. 연결을 만들려면 다음 단계를 따르세요.
- Cloud 콘솔에서 Integration Connectors > 연결 페이지로 이동한 다음 Google Cloud 프로젝트를 선택하거나 만듭니다.
- + 새로 만들기를 클릭하여 연결 만들기 페이지를 엽니다.
- 위치 섹션에서 연결 위치를 선택합니다.
- 리전: 드롭다운 목록에서 위치를 선택합니다.
지원되는 모든 리전 목록은 위치를 참조하세요.
- 다음을 클릭합니다.
- 리전: 드롭다운 목록에서 위치를 선택합니다.
- 연결 세부정보 섹션에서 다음을 완료합니다.
- 커넥터: 사용 가능한 커넥터의 드롭다운 목록에서 HDFS를 선택합니다.
- 커넥터 버전: 사용 가능한 버전의 드롭다운 목록에서 커넥터 버전을 선택합니다.
- 연결 이름 필드에서 연결 인스턴스의 이름을 입력합니다.
연결 이름은 다음 기준을 충족해야 합니다.
- 연결 이름에 문자, 숫자, 하이픈을 사용할 수 있습니다.
- 문자는 소문자여야 합니다.
- 연결 이름은 문자로 시작하고 문자 또는 숫자로 끝나야 합니다.
- 연결 이름은 49자(영문 기준)를 초과할 수 없습니다.
- 선택적으로 연결 인스턴스에 대한 설명을 입력합니다.
- 필요한 경우 Cloud Logging을 사용 설정한 다음 로그 수준을 선택합니다. 기본적으로 로그 수준은
Error
로 설정됩니다. - 서비스 계정: 필수 역할이 있는 서비스 계정을 선택합니다.
- 경로: 작업 디렉터리로 사용할 HDFS 경로를 지정합니다.
- 필요한 경우 연결 노드 설정을 구성합니다.
- 최소 노드 수: 최소 연결 노드 수를 입력합니다.
- 최대 노드 수: 최대 연결 노드 수를 입력합니다.
노드는 트랜잭션을 처리하는 연결의 단위(또는 복제본)입니다. 연결에 대해 더 많은 트랜잭션을 처리하려면 더 많은 노드가 필요합니다. 이와 반대로 더 적은 트랜잭션을 처리하기 위해서는 더 적은 노드가 필요합니다. 노드가 커넥터 가격 책정에 미치는 영향을 파악하려면 연결 노드 가격 책정을 참조하세요. 값을 입력하지 않으면 기본적으로 최소 노드가 (높은 가용성을 위해) 2로 설정되고 최대 노드는 50으로 설정됩니다.
- 선택적으로 + 라벨 추가를 클릭하여 키/값 쌍의 형식으로 연결에 라벨을 추가합니다.
- 다음을 클릭합니다.
- 대상 섹션에서 연결하려는 원격 호스트(백엔드 시스템)의 세부정보를 입력합니다.
- 대상 유형: 대상 유형을 선택합니다.
- 대상 호스트 이름 또는 IP 주소를 지정하려면 호스트 주소를 선택하고 호스트 1 필드에 주소를 입력합니다.
- 비공개 연결을 설정하려면 엔드포인트 연결을 선택하고 엔드포인트 연결 목록에서 필요한 연결을 선택합니다.
추가 보안을 사용하여 백엔드 시스템에 공개 연결을 설정하려면 연결의 고정 아웃바운드 IP 주소를 구성한 후 방화벽 규칙을 구성하여 특정 고정 IP 주소만 허용 목록에 추가합니다.
추가 대상을 입력하려면 +대상 추가를 클릭합니다.
- 다음을 클릭합니다.
- 대상 유형: 대상 유형을 선택합니다.
-
인증 섹션에서 인증 세부정보를 입력합니다.
- 인증 유형을 선택하고 관련 세부정보를 입력합니다.
HDFS 연결에서 지원되는 인증 유형은 다음과 같습니다.
- 사용자 이름 및 비밀번호
이러한 인증 유형을 구성하는 방법은 인증 구성을 참조하세요.
- 다음을 클릭합니다.
- 인증 유형을 선택하고 관련 세부정보를 입력합니다.
- 검토: 연결 및 인증 세부정보를 검토합니다.
- 만들기를 클릭합니다.
인증 구성
사용할 인증을 기반으로 세부정보를 입력합니다.
-
사용자 이름 및 비밀번호
- 사용자 이름: HDFS 연결에 사용할 사용자 이름을 입력합니다.
- 비밀번호 : 사용자 이름과 연결된 비밀번호가 포함된 Secret Manager 보안 비밀을 입력합니다.
- 보안 비밀 버전: 위에 선택된 보안 비밀의 보안 비밀 버전을 선택합니다.
연결 구성 샘플
이 섹션에서는 연결을 만들 때 구성할 다양한 필드의 샘플 값이 표시됩니다.
사용자 이름 및 비밀번호 연결 유형
필드 이름 | 세부정보 |
---|---|
위치 | europe-west1 |
커넥터 | HDFS |
커넥터 버전 | 1 |
연결 이름 | hdfs-v24-new |
서비스 계정 | my-service-account@my-project.iam.gserviceaccount.com |
최소 노드 수 | 2 |
최대 노드 수 | 2 |
대상 위치 유형 | 호스트 주소 |
호스트 | 10.128.0. |
port1 | 10000 |
사용자 이름 | user1 |
비밀번호 | PASSWORD |
보안 비밀 버전 | 1 |
시스템 제한사항
HDFS 커넥터는 노드별로 초당 최대 20개의 트랜잭션을 처리할 수 있으며 이 한도를 초과하는 모든 트랜잭션을 제한할 수 있습니다. 기본적으로 Integration Connectors는 가용성을 높이기 위해 연결에 2개의 노드를 할당합니다.
Integration Connectors에 적용되는 한도에 대한 자세한 내용은 한도를 참조하세요.
통합에서 HDFS 연결 사용
연결을 만들면 Apigee Integration 및 Application Integration에서 사용할 수 있게 됩니다. 커넥터 태스크를 통해 통합에서 연결을 사용할 수 있습니다.
- Apigee Integration에서 커넥터 태스크를 만들고 사용하는 방법을 알아보려면 커넥터 태스크를 참조하세요.
- Application Integration에서 커넥터 태스크를 만들고 사용하는 방법을 이해하려면 커넥터 태스크를 참조하세요.
작업
이 섹션에서는 이 커넥터에서 일부 작업을 수행하는 방법을 보여줍니다.
MakeDirectory 작업
이 작업은 지정된 경로에 디렉터리를 만듭니다.
MakeDirectory 작업의 입력 매개변수
매개변수 이름 | 데이터 유형 | 필수 | 설명 |
---|---|---|---|
권한 | 문자열 | 거짓 | 새 디렉터리를 만들 권한입니다. |
경로 | 문자열 | 참 | 새 디렉터리의 경로입니다. |
MakeDirectory
작업을 구성하는 방법의 예시는 예시를 참고하세요.
ListStatus 작업
이 작업은 제공된 경로의 콘텐츠를 나열합니다.
ListStatus 작업의 입력 매개변수
매개변수 이름 | 데이터 유형 | 필수 | 설명 |
---|---|---|---|
경로 | 문자열 | 참 | 파일의 경로입니다. |
ListStatus
작업을 구성하는 방법의 예시는 예시를 참고하세요.
GetHomeDirectory 작업
이 작업은 현재 사용자의 홈 디렉터리를 가져옵니다.
GetHomeDirectory 작업의 입력 매개변수
매개변수 이름 | 데이터 유형 | 필수 | 설명 |
---|---|---|---|
connectorInputPayload | JSON | 참 | 커넥터의 입력 페이로드입니다. |
GetHomeDirectory
작업을 구성하는 방법의 예시는 예시를 참고하세요.
DeleteFile 작업
이 작업은 파일 또는 디렉터리를 삭제합니다.
DeleteFile 작업의 입력 매개변수
매개변수 이름 | 데이터 유형 | 필수 | 설명 |
---|---|---|---|
경로 | 문자열 | 참 | 파일의 경로입니다. |
재귀적 | 불리언 | 거짓 | 폴더의 하위 폴더를 삭제할지 여부를 지정합니다. |
DeleteFile
작업을 구성하는 방법의 예시는 예시를 참고하세요.
GetContentSummary 작업
이 작업은 파일 또는 폴더의 콘텐츠 요약을 가져옵니다.
GetContentSummary 작업의 입력 파라미터
매개변수 이름 | 데이터 유형 | 필수 | 설명 |
---|---|---|---|
경로 | 문자열 | 참 | 파일 또는 폴더의 경로입니다. |
GetContentSummary
작업을 구성하는 방법의 예시는 예시를 참고하세요.
RenameFile 작업
이 작업은 파일 또는 디렉터리의 이름을 바꿉니다.
RenameFile 작업의 입력 매개변수
매개변수 이름 | 데이터 유형 | 필수 | 설명 |
---|---|---|---|
경로 | 문자열 | 참 | 파일의 경로입니다. |
destination | 문자열 | 참 | 파일의 새 이름과 경로를 지정합니다. |
RenameFile
작업을 구성하는 방법의 예시는 예시를 참고하세요.
SetPermission 작업
이 작업은 경로의 권한을 설정합니다.
SetPermission 작업의 입력 매개변수
파라미터 이름 | 데이터 유형 | 필수 | 설명 |
---|---|---|---|
경로 | 문자열 | 참 | 파일의 경로입니다. |
권한 | 문자열 | 참 | 8진수 (기수 8) 표기법으로 Unix 권한을 지정합니다. |
SetPermission
작업을 구성하는 방법의 예시는 예시를 참고하세요.
SetPermission 작업
이 작업은 경로의 권한을 설정합니다.
SetPermission 작업의 입력 매개변수
매개변수 이름 | 데이터 유형 | 필수 | 설명 |
---|---|---|---|
경로 | 문자열 | 참 | 파일의 경로입니다. |
권한 | 문자열 | 참 | 8진수 (기수 8) 표기법으로 Unix 권한을 지정합니다. |
SetPermission
작업을 구성하는 방법의 예시는 예시를 참고하세요.
SetOwner 작업
이 작업은 경로의 소유자와 그룹을 설정합니다.
SetOwner 작업의 입력 매개변수
매개변수 이름 | 데이터 유형 | 필수 | 설명 |
---|---|---|---|
경로 | 문자열 | 참 | 파일의 경로입니다. |
소유자 | 문자열 | 참 | 경로의 새 소유자입니다. |
그룹 | 문자열 | 거짓 | 새 그룹의 이름입니다. |
SetOwner
작업을 구성하는 방법의 예시는 예시를 참고하세요.
UploadFile 작업
이 작업은 파일을 업로드합니다.
UploadFile 작업의 입력 매개변수
매개변수 이름 | 데이터 유형 | 필수 | 설명 |
---|---|---|---|
경로 | 문자열 | 참 | 파일의 경로입니다. |
콘텐츠 | 문자열 | 참 | 업로드된 파일의 콘텐츠입니다. |
UploadFile
작업을 구성하는 방법의 예시는 예시를 참고하세요.
DownloadFile 작업
이 작업을 수행하면 파일을 다운로드합니다.
DownloadFile 작업의 입력 매개변수
매개변수 이름 | 데이터 유형 | 필수 | 설명 |
---|---|---|---|
경로 | 문자열 | 참 | 파일의 경로입니다. |
WriteToFile | 문자열 | 거짓 | 출력이 기록되는 파일의 로컬 위치입니다. |
DownloadFile
작업을 구성하는 방법의 예시는 예시를 참고하세요.
AppendToFile 작업
이 작업은 파일을 추가합니다.
AppendToFile 작업의 입력 매개변수
매개변수 이름 | 데이터 유형 | 필수 | 설명 |
---|---|---|---|
경로 | 문자열 | 참 | 파일의 경로입니다. |
콘텐츠 | 문자열 | 참 | 파일에 추가할 콘텐츠입니다. |
AppendToFile
작업을 구성하는 방법의 예시는 예시를 참고하세요.
GetFileChecksum 작업
이 작업은 파일의 체크섬을 가져옵니다.
GetFileChecksum 작업의 입력 매개변수
매개변수 이름 | 데이터 유형 | 필수 | 설명 |
---|---|---|---|
경로 | 문자열 | 참 | 파일의 경로입니다. |
GetFileChecksum
작업을 구성하는 방법의 예시는 예시를 참고하세요.
작업 예시
이 섹션에서는 이 커넥터에서 일부 작업 예시를 수행하는 방법을 보여줍니다.
예시 - 디렉터리 만들기
Configure connector task
대화상자에서Actions
를 클릭합니다.MakeDirectory
조치를 선택한 다음 완료를 클릭합니다.- 데이터 매핑 섹션에서
Open Data Mapping Editor
를 클릭한 후Input
필드에 다음과 유사한 값을 입력합니다.{ "Path": "/user/hduser" }
작업이 성공하면 커넥터 태스크의 connectorOutputPayload
응답 매개변수가 다음과 비슷한 값을 갖습니다.
[{ "Success": true }]
예 - 홈 디렉터리 가져오기
Configure connector task
대화상자에서Actions
를 클릭합니다.GetHomeDirectory
조치를 선택한 다음 완료를 클릭합니다.- 데이터 매핑 섹션에서
Open Data Mapping Editor
를 클릭한 후Input
필드에 다음과 유사한 값을 입력합니다.{}
작업이 성공하면 커넥터 태스크의 connectorOutputPayload
응답 매개변수가 다음과 비슷한 값을 갖습니다.
[{ "Path": "/user/hduser" }]
예시 - 파일 삭제
Configure connector task
대화상자에서Actions
를 클릭합니다.DeleteFile
조치를 선택한 다음 완료를 클릭합니다.- 데이터 매핑 섹션에서
Open Data Mapping Editor
를 클릭한 후Input
필드에 다음과 유사한 값을 입력합니다.{ "Path": "/user/hduser/testFile" }
작업이 성공하면 커넥터 태스크의 connectorOutputPayload
응답 매개변수가 다음과 비슷한 값을 갖습니다.
[{ "Success": true }]
예시 - 파일 상태 나열
Configure connector task
대화상자에서Actions
를 클릭합니다.ListStatus
조치를 선택한 다음 완료를 클릭합니다.- 데이터 매핑 섹션에서
Open Data Mapping Editor
를 클릭한 후Input
필드에 다음과 유사한 값을 입력합니다.{ "path": "/user/hduser/deletefile" }
작업이 성공하면 커넥터 태스크의 connectorOutputPayload
응답 매개변수가 다음과 비슷한 값을 갖습니다.
[{ "fileId": 16471.0, "PathSuffix": "data.txt", "owner": "hduser", "group": "supergroup", "length": 38.0, "permission": "644", "replication": 1.0, "storagePolicy": 0.0, "childrenNum": 0.0, "blockSize": 1.34217728E8, "modificationTime": "2024-08-16 16:12:01.921", "accessTime": "2024-08-16 16:12:01.888", "type": "FILE" }, { "fileId": 16469.0, "PathSuffix": "file2.txt", "owner": "hduser", "group": "supergroup", "length": 53.0, "permission": "644", "replication": 1.0, "storagePolicy": 0.0, "childrenNum": 0.0, "blockSize": 1.34217728E8, "modificationTime": "2024-08-16 16:12:01.762", "accessTime": "2024-08-16 16:12:01.447", "type": "FILE" }]
예 - 파일의 콘텐츠 요약 가져오기
Configure connector task
대화상자에서Actions
를 클릭합니다.GetContentSummary
조치를 선택한 다음 완료를 클릭합니다.- 데이터 매핑 섹션에서
Open Data Mapping Editor
를 클릭한 후Input
필드에 다음과 유사한 값을 입력합니다.{ "Path": "/user/hduser/appendtofile" }
작업이 성공하면 커넥터 태스크의 connectorOutputPayload
응답 매개변수가 다음과 비슷한 값을 갖습니다.
[{ "DirectoryCount": "1", "FileCount": "1", "Length": 52.0, "Quota": -1.0, "SpaceConsumed": 52.0, "SpaceQuota": -1.0, "ecpolicy": "", "snapshotdirectorycount": "0", "snapshotfilecount": "0", "snapshotlength": "0", "snapshotspaceconsumed": "0" }]
예 - 파일 이름 바꾸기
Configure connector task
대화상자에서Actions
를 클릭합니다.hdfs_RenameFile_action
조치를 선택한 다음 완료를 클릭합니다.- 데이터 매핑 섹션에서
Open Data Mapping Editor
를 클릭한 후Input
필드에 다음과 유사한 값을 입력합니다.{ "Path": "/user/hduser/renamefile_second/file1.txt", "Destination": "/user/hduser/renamefile_second/file1rename" }
작업이 성공하면 커넥터 태스크의 connectorOutputPayload
응답 매개변수가 다음과 비슷한 값을 갖습니다.
[{ "Success": true }]
예시 - 파일 권한 설정
Configure connector task
대화상자에서Actions
를 클릭합니다.SetPermission
조치를 선택한 다음 완료를 클릭합니다.- 데이터 매핑 섹션에서
Open Data Mapping Editor
를 클릭한 후Input
필드에 다음과 유사한 값을 입력합니다.{ "Path": "/user/hduser/gcpdirectory", "Permission": "777" }
작업이 성공하면 커넥터 태스크의 connectorOutputPayload
응답 매개변수가 다음과 비슷한 값을 갖습니다.
[{ "Success": true }]
예시 - 파일 소유자 설정
Configure connector task
대화상자에서Actions
를 클릭합니다.SetOwner
조치를 선택한 다음 완료를 클릭합니다.- 데이터 매핑 섹션에서
Open Data Mapping Editor
를 클릭한 후Input
필드에 다음과 유사한 값을 입력합니다.{ "Path": "/user/hduser/gcpdirectory", "Owner": "newowner" }
작업이 성공하면 커넥터 태스크의 connectorOutputPayload
응답 매개변수가 다음과 비슷한 값을 갖습니다.
[{ "Success": true }]
예 - 파일 업로드
Configure connector task
대화상자에서Actions
를 클릭합니다.UploadFile
조치를 선택한 다음 완료를 클릭합니다.- 데이터 매핑 섹션에서
Open Data Mapping Editor
를 클릭한 후Input
필드에 다음과 유사한 값을 입력합니다.{ "Path": "/user/newfile9087.txt", "Content": "string" }
작업이 성공하면 커넥터 태스크의 connectorOutputPayload
응답 매개변수가 다음과 비슷한 값을 갖습니다.
[{ "Success": true }]
예 - 파일 다운로드
Configure connector task
대화상자에서Actions
를 클릭합니다.DownloadFile
조치를 선택한 다음 완료를 클릭합니다.- 데이터 매핑 섹션에서
Open Data Mapping Editor
를 클릭한 후Input
필드에 다음과 유사한 값을 입력합니다.{ "Path": "/user/sampleFile/file1.txt" }
작업이 성공하면 커넥터 태스크의 connectorOutputPayload
응답 매개변수가 다음과 비슷한 값을 갖습니다.
[ { "Output": "This is sample File\nfor this testing\ncontent" } ]
예 - 파일 추가
Configure connector task
대화상자에서Actions
를 클릭합니다.AppendToFile
조치를 선택한 다음 완료를 클릭합니다.- 데이터 매핑 섹션에서
Open Data Mapping Editor
를 클릭한 후Input
필드에 다음과 유사한 값을 입력합니다.{ "Path": "/user/sampleFile/file1.txt", "Content": "content" }
작업이 성공하면 커넥터 태스크의 connectorOutputPayload
응답 매개변수가 다음과 비슷한 값을 갖습니다.
[ { "Success": true } ]
예시 - 파일의 체크섬 가져오기
Configure connector task
대화상자에서Actions
를 클릭합니다.GetFileChecksum
조치를 선택한 다음 완료를 클릭합니다.- 데이터 매핑 섹션에서
Open Data Mapping Editor
를 클릭한 후Input
필드에 다음과 유사한 값을 입력합니다.{ "Path": "/user/sampleFile/file1.txt" }
작업이 성공하면 커넥터 태스크의 connectorOutputPayload
응답 매개변수가 다음과 비슷한 값을 갖습니다.
[ { "Algorithm": "MD5-of-0MD5-of-512CRC32C", "Bytes": "00000200000000000000000080f5b53ae8c165ae56e86109b8bb2a1700000000", "Length": 28 } ]
항목 작업 예시
이 섹션에서는 이 커넥터에서 일부 항목 작업을 수행하는 방법을 보여줍니다.
예 - 모든 파일의 데이터 나열
이 예시에서는 Files
항목에 있는 모든 파일의 데이터를 가져옵니다.
Configure connector task
대화상자에서Entities
를 클릭합니다.Entity
목록에서Object
를 선택합니다.List
작업을 선택한 후 완료를 클릭합니다.
예시 - 권한 데이터 가져오기
이 예시에서는 Permission
항목에서 지정된 ID가 있는 권한의 데이터를 가져옵니다.
Configure connector task
대화상자에서Entities
를 클릭합니다.Entity
목록에서Permission
를 선택합니다.Get
작업을 선택한 후 완료를 클릭합니다.- 커넥터 태스크의 태스크 입력 섹션에서 EntityId를 클릭한 후 기본값 필드에
/user/hduser/appendfile
을 입력합니다.여기서
/user/hduser/appendfile
은Permission
항목의 고유 ID입니다.
Google Cloud 커뮤니티에서 도움 받기
Google Cloud 커뮤니티에서 Cloud 포럼에 질문을 게시하고 이 커넥터에 대해 토론할 수 있습니다.다음 단계
- 연결 일시중지 및 재개 방법 알아보기
- 커넥터 사용량 모니터링 방법 알아보기
- 커넥터 로그 확인 방법 알아보기