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 포럼에 질문을 게시하고 이 커넥터에 대해 토론할 수 있습니다.다음 단계
- 연결 일시중지 및 재개 방법 알아보기
- 커넥터 사용량 모니터링 방법 알아보기
- 커넥터 로그 확인 방법 알아보기