๋ฌธ์ œ ํ•ด๊ฒฐ

์ด ํŽ˜์ด์ง€์—์„œ๋Š” ๋‹ค์–‘ํ•œ ์˜ค๋ฅ˜ ์‹œ๋‚˜๋ฆฌ์˜ค์™€ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ์„ ์œ„ํ•œ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋‹จ๊ณ„์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์—ฐ๊ฒฐ ๋ฐ ๋„คํŠธ์›Œํ‚น ์˜ค๋ฅ˜ ์‹œ๋‚˜๋ฆฌ์˜ค

์—ฐ๊ฒฐ ๋˜๋Š” ๋„คํŠธ์›Œํ‚น ๋ฌธ์ œ๊ฐ€ ์„œ๋น„์Šค์— ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ ์„น์…˜์˜ ์‹œ๋‚˜๋ฆฌ์˜ค ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ฌธ์ œ์˜ ์›์ธ์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

VPC ํ”ผ์–ด๋ง์„ ์ œํ•œํ•˜๋Š” ์ œ์•ฝ์กฐ๊ฑด์œผ๋กœ ์ธํ•ด ์„œ๋น„์Šค ์ƒ์„ฑ์ด ์‹คํŒจํ•จ

VPC ํ”ผ์–ด๋ง ์ œํ•œ์„ ์œ„ํ•ด org-policy ์ œ์•ฝ์กฐ๊ฑด์„ ์„ค์ •ํ•˜์ง€ ๋งˆ์„ธ์š”. constraints/compute.restrictVpcPeering์„ ์ง€์ •ํ•˜๋ฉด INVALID_ARGUMENT ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์ƒ์„ฑ ์š”์ฒญ์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ์ œ์•ฝ์กฐ๊ฑด์„ ์„ค์ •ํ•ด์•ผ ํ•˜๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ under:folders/270204312590์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

gcloud resource-manager org-policies allow compute.restrictVpcPeering under:folders/270204312590 --organization ORGANIZATION_ID

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์กฐ์ง ์ •์ฑ… ์ œ์•ฝ์กฐ๊ฑด์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์„œ๋น„์Šค ๊ณ„์ •์ด ์กด์žฌํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ํ”„๋กœ์ ํŠธ ๊ฐ„ ๋ฐฐํฌ๊ฐ€ ์‹คํŒจํ•จ

์„œ๋น„์Šค๊ฐ€ ์†ํ•œ ํ”„๋กœ์ ํŠธ๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์— ์†ํ•œ ๋„คํŠธ์›Œํฌ์—์„œ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” Dataproc Metastore ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด ์„œ๋น„์Šค ํ”„๋กœ์ ํŠธ์˜ Dataproc Metastore ์„œ๋น„์Šค ์—์ด์ „ํŠธ(service-SERVICE_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com)์— roles/metastore.serviceAgent๋ฅผ ๋ถ€์—ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

gcloud projects add-iam-policy-binding NETWORK_PROJECT_ID \
    --role "roles/metastore.serviceAgent" \
    --member "serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com"

์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ต์ฐจ ํ”„๋กœ์ ํŠธ ๋ฐฐํฌ ์„ค์ •์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋ฉ€ํ‹ฐ ๋ฆฌ์ „ Dataproc Metastore ์„œ๋น„์Šค๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š์Œ

๋ฉ€ํ‹ฐ ๋ฆฌ์ „ Dataproc Metastore ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค ๋•Œ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

The Dataproc Service Agent does not have permission to GET Dataproc Metastore service
'projects/<dpmsproject>/locations/nam7/services/<service>'. If using a service from the
cluster's project, please ensure the service agent has the Cloud IAM role
'roles/dataproc.serviceAgent'. Please see
https://cloud.google.com/dataproc/docs/concepts/iam/dataproc-
principals#service_agent_control_plane_identity for information on the Dataproc Service
Agent, and https://cloud.google.com/iam/docs/granting-changing-revoking-access#granting-
gcloud-manual for information on granting access.

์ด ์˜ค๋ฅ˜๋Š” Dataproc ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ Dataproc Metastore์™€ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์— ์žˆ์ง€๋งŒ ํ”„๋กœ์ ํŠธ์— ์˜ฌ๋ฐ”๋ฅธ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์— ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด Dataproc Metastore ํ”„๋กœ์ ํŠธ์— ํฌํ•จ๋œ Dataproc ์„œ๋น„์Šค ๊ณ„์ •์— metastore.services.get ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์— ๋น„๊ณต๊ฐœ IP ํ•„์š”

Dataproc Metastore์—์„œ๋Š” ๋น„๊ณต๊ฐœ IP๋งŒ ์‚ฌ์šฉ๋˜๋ฏ€๋กœ ๊ณต๊ฐœ IP๊ฐ€ ๋…ธ์ถœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ œ๊ณต๋œ Virtual Private Cloud(VPC) ๋„คํŠธ์›Œํฌ ๋˜๋Š” ์˜จํ”„๋ ˆ๋ฏธ์Šค(Cloud VPN ๋˜๋Š” Cloud Interconnect๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ๋จ)์˜ VM๋งŒ Dataproc Metastore ์„œ๋น„์Šค์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„œ๋น„์Šค ์•ก์„ธ์Šค๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Kerberos์— ํ•„์š”ํ•œ ์ธ๊ทธ๋ ˆ์Šค ํ—ˆ์šฉ ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™

Kerberos๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด Dataproc Metastore์—์„œ ํ”„๋กœ์ ํŠธ ๋„คํŠธ์›Œํฌ์˜ ํ˜ธ์ŠคํŠธ์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์„ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Dataproc Metastore IP๊ฐ€ ํฌํ•จ๋œ /17 IP ๋ธ”๋ก์—์„œ ๋ชจ๋“  ํฌํŠธ์— TCP ๋ฐ UDP ์ธ๊ทธ๋ ˆ์Šค๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ KDC์— ๋Œ€ํ•œ ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™๊ณผ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๊ณต์œ  VPC ๋„คํŠธ์›Œํฌ์— ํ”„๋กœ๋น„์ €๋‹๋œ ๋ฆฌ์†Œ์Šค๋กœ ์—ฐ๊ฒฐ ์˜ค๋ฅ˜ ๋ฐœ์ƒ

Dataproc Metastore์ธ ๊ฒฝ์šฐ. ์ด ๊ฒฝ์šฐ Dataproc Metastore๋Š” ์„œ๋น„์Šค ์ƒ์„ฑ์„ ์œ„ํ•œ RFC 1918 ๋ฒ”์œ„ ๋ฐ–์— ์žˆ๋Š” ๋น„๊ณต๊ฐœ IP ์ฃผ์†Œ ๋ฒ”์œ„๋ฅผ ์˜ˆ์•ฝํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์ง€์›๋˜๋Š” RFC ์ด์™ธ์˜ 1918 ๋น„๊ณต๊ฐœ ๋ฒ”์œ„ ๋ชฉ๋ก์€ VPC ๋„คํŠธ์›Œํฌ ๋ฌธ์„œ์—์„œ ์œ ํšจํ•œ ๋ฒ”์œ„๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.} ์„œ๋น„์Šค๊ฐ€ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์— ์†ํ•œ ๋„คํŠธ์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  Compute Engine์ด ํ•ด๋‹น ์„œ๋น„์Šค ๊ฒฝ๊ณ„๋กœ ๋ณดํ˜ธ๋˜๋ฉด ๋ฉ”ํƒ€์Šคํ† ์–ด ํ”„๋กœ์ ํŠธ ๋ฐ ๋„คํŠธ์›Œํฌ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋™์ผํ•œ ๊ฒฝ๊ณ„์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ์กด Dataproc Metastore ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฒฝ๊ณ„์— ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ์„œ๋น„์Šค ๊ฒฝ๊ณ„ ์—…๋ฐ์ดํŠธ์˜ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

์ž์„ธํ•œ ๋‚ด์šฉ์€ Dataproc Metastore๋กœ VPC ์„œ๋น„์Šค ์ œ์–ด๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

ํ• ๋‹น๋œ IP ๋ฒ”์œ„๊ฐ€ ์†Œ์ง„๋จ

์ œ๊ณต๋œ VPC ๋„คํŠธ์›Œํฌ์—์„œ Dataproc Metastore ์„œ๋น„์Šค์— ํ•„์š”ํ•œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ RFC 1918 ์ฃผ์†Œ๊ฐ€ ๋ถ€์กฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ Dataproc Metastore๋Š” ์„œ๋น„์Šค ์ƒ์„ฑ์„ ์œ„ํ•œ RFC 1918 ๋ฒ”์œ„ ๋ฐ–์— ์žˆ๋Š” ๋น„๊ณต๊ฐœ IP ์ฃผ์†Œ ๋ฒ”์œ„๋ฅผ ์˜ˆ์•ฝํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์ง€์›๋˜๋Š” RFC ์ด์™ธ์˜ 1918 ๋น„๊ณต๊ฐœ ๋ฒ”์œ„ ๋ชฉ๋ก์€ VPC ๋„คํŠธ์›Œํฌ ๋ฌธ์„œ์—์„œ ์œ ํšจํ•œ ๋ฒ”์œ„๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Dataproc Metastore์— ์‚ฌ์šฉ๋˜๋Š” RFC 1918 ์ด์™ธ์˜ ๋น„๊ณต๊ฐœ IP ์ฃผ์†Œ๋Š” ์ œ๊ณต๋œ VPC ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋œ ์˜จํ”„๋ ˆ๋ฏธ์Šค ๋„คํŠธ์›Œํฌ์˜ ๋ฒ”์œ„์™€ ์ถฉ๋Œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Dataproc Metastore์—์„œ ์˜ˆ์•ฝํ•œ RFC 1918 ๋ฐ RFC 1918 ์ด์™ธ์˜ ๋น„๊ณต๊ฐœ IP ์ฃผ์†Œ ๋ชฉ๋ก์„ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

gcloud compute addresses list \
    --project NETWORK_PROJECT_ID \
    --filter="purpose:VPC_PEERING AND name ~ cluster|resourcegroup"

์ถฉ๋Œ์ด ํ™•์ธ๋œ ์ƒํƒœ์—์„œ ์˜จํ”„๋ ˆ๋ฏธ์Šค ๋„คํŠธ์›Œํฌ๋ฅผ ์žฌ๊ตฌ์„ฑํ•˜์—ฌ ์™„ํ™”ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” Dataproc Metastore ์„œ๋น„์Šค๋ฅผ ์‚ญ์ œํ•˜๊ณ  2์‹œ๊ฐ„ ํ›„์— ๋‹ค์‹œ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ IP ์ฃผ์†Œ ๋ฒ”์œ„ ์†Œ์ง„์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์ž‘์—… ์ œํ•œ ์‹œ๊ฐ„ ์˜ค๋ฅ˜ ์‹œ๋‚˜๋ฆฌ์˜ค

๋‹ค์Œ ์˜ค๋ฅ˜ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋Š” ์‘๋‹ตํ•˜์ง€ ์•Š๋Š” ์„œ๋น„์Šค ๋˜๋Š” ์ž‘์—… ์ œํ•œ ์‹œ๊ฐ„์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์‚ฌ ๋กœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—… ์ œํ•œ ์‹œ๊ฐ„ ๋ฌธ์ œ ํ•ด๊ฒฐ

์„œ๋น„์Šค ์ž‘์—… ์ œํ•œ ์‹œ๊ฐ„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด Google Cloud ์ฝ˜์†”์—์„œ ๋กœ๊ทธ ํƒ์ƒ‰๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ผ์šฐ๋“œ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๊ฐ์‚ฌ ๋กœ๊ทธ ํ•ญ๋ชฉ์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

์ฟผ๋ฆฌ ๋นŒ๋” ์ฐฝ์—์„œ ๊ฐ์‚ฌ๋ฅผ ๋ฐ›์€ ๋ฆฌ์†Œ์Šค ๋˜๋Š” audited_resource๋ฅผ Google Cloud ๋ฆฌ์†Œ์Šค ์œ ํ˜•์œผ๋กœ ์„ ํƒํ•˜๊ณ  Dataproc Metastore ๋˜๋Š” metastore.googleapis.com์„ ์„œ๋น„์Šค๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์„œ๋“œ ์„ ํƒ์€ ์„ ํƒ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋กœ๊ทธ ๋ณด๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์˜ค๋ฅ˜ ์‹œ๋‚˜๋ฆฌ์˜ค ๊ฐ€์ ธ์˜ค๊ธฐ ๋ฐ ๋‚ด๋ณด๋‚ด๊ธฐ

์ด ์„น์…˜์—์„œ๋Š” ์ผ๋ฐ˜์ ์ธ Dataproc Metastore ๊ฐ€์ ธ์˜ค๊ธฐ ๋ฐ ๋‚ด๋ณด๋‚ด๊ธฐ ๋ฌธ์ œ์— ๋Œ€ํ•ด ๊ฐ„๋žตํ•˜๊ฒŒ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Hive ๋ฒ„์ „์ด ์ผ์น˜ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€์ ธ์˜ค๊ธฐ๊ฐ€ ์‹คํŒจํ•จ

๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ๋Š” Hive ๋ฉ”ํƒ€์Šคํ† ์–ด์™€ Dataproc Metastore ๋ฒ„์ „์ด ํ˜ธํ™˜ ๊ฐ€๋Šฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ํ•ญ๋ชฉ์ด ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ฐ€์ ธ์˜ค๊ธฐ๊ฐ€ ์‹คํŒจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜ธํ™˜์„ฑ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฒ„์ „ ์ •์ฑ…์„ ์ฐธ์กฐํ•˜์„ธ์š”.

Cloud Logging์—์„œ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ฉ”์‹œ์ง€๋Š” ์ด ์˜ค๋ฅ˜์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

Metastore schema version is not compatible. Hive Version: 3.1.0, Database Schema Version: 2.3.0

Hive ํ…Œ์ด๋ธ” ํŒŒ์ผ์ด ๋ˆ„๋ฝ๋˜์–ด ๊ฐ€์ ธ์˜ค๊ธฐ๊ฐ€ ์‹คํŒจํ•จ

Avro์— ๋Œ€ํ•ด ๊ฐ€์ ธ์˜ค๊ธฐ๋ฅผ ์ค€๋น„ํ•  ๋•Œ๋Š” ํ…Œ์ด๋ธ”์ด ๋น„์–ด ์žˆ๋”๋ผ๋„ ๊ฐ Hive ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด ํŒŒ์ผ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ฐ€์ ธ์˜ค๊ธฐ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

Dataproc Metastore Toolkit์„ ์ฐธ์กฐ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ์˜ฌ๋ฐ”๋ฅธ Hive ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„œ๋น„์Šค ์—์ด์ „ํŠธ ๋˜๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ํ•„์š”ํ•œ ๊ถŒํ•œ์ด ์—†์Œ

Dataproc Metastore ์„œ๋น„์Šค ์—์ด์ „ํŠธ(service-CUSTOMER_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com)์™€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์‚ฌ์šฉ์ž๋Š” ๊ฐ€์ ธ์˜ค๊ธฐ์— ์‚ฌ์šฉ๋œ Cloud Storage ๋ฒ„ํ‚ท์— ๋Œ€ํ•œ ๋‹ค์Œ ์ฝ๊ธฐ ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • MySQL์˜ ๊ฒฝ์šฐ ๊ฐ€์ ธ์˜ค๊ธฐ์— ์‚ฌ์šฉ๋œ Cloud Storage ๊ฐ์ฒด(SQL ๋คํ”„ ํŒŒ์ผ)์— ๋Œ€ํ•œ storage.objects.get ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • Avro์˜ ๊ฒฝ์šฐ ๊ฐ€์ ธ์˜ค๊ธฐ์— ์‚ฌ์šฉ๋œ Cloud Storage ๋ฒ„ํ‚ท์— ๋Œ€ํ•œ storage.objects.get ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๋ณด๋‚ด๊ธฐ์˜ ๊ฒฝ์šฐ Dataproc Metastore ์„œ๋น„์Šค ์—์ด์ „ํŠธ(service-CUSTOMER_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com) ๋ฐ ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ๋งŒ๋“œ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ํ•ด๋‹น ๋ฒ„ํ‚ท์— ๋Œ€ํ•œ storage.objects.create ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŒŒ์ผ์ด ๋„ˆ๋ฌด ์ปค์„œ ์ž‘์—…์ด ์‹คํŒจํ•จ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŒŒ์ผ์ด ๋„ˆ๋ฌด ํฌ๋ฉด ๊ฐ€์ ธ์˜ค๊ธฐ ๋˜๋Š” ๋‚ด๋ณด๋‚ด๊ธฐ ํ”„๋กœ์„ธ์Šค๋ฅผ ์™„๋ฃŒํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์ด ์ž‘์—… ์ œํ•œ ์‹œ๊ฐ„ ํ•œ๋„๋ฅผ ์ดˆ๊ณผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 3์‹œ๊ฐ„์˜ ์ž‘์—… ์ œํ•œ ์‹œ๊ฐ„ ํ•œ๋„ ๋‚ด์— ๊ฐ€์ ธ์˜ค๊ธฐ๋ฅผ ์™„๋ฃŒํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ Dataproc Metastore ์ธ์Šคํ„ด์Šค์— ๋ถ„ํ• ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฑ์—… ๋ฐ ๋ณต์› ์˜ค๋ฅ˜ ์‹œ๋‚˜๋ฆฌ์˜ค

์ด ์„น์…˜์—์„œ๋Š” ์ผ๋ฐ˜์ ์ธ Dataproc Metastore ๋ฐฑ์—… ๋ฐ ๋ณต์› ๋ฌธ์ œ์— ๋Œ€ํ•ด ๊ฐ„๋žตํ•˜๊ฒŒ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์„œ๋น„์Šค์— ์ƒˆ ๋ฐฑ์—…์„ ๋งŒ๋“ค ์ˆ˜ ์—†์Œ

์„œ๋น„์Šค์— ์ด๋ฏธ ๋ฐฑ์—…์ด 7๊ฐœ ์žˆ์œผ๋ฉด ๋จผ์ € ๋ฐฑ์—…์„ ์ˆ˜๋™์œผ๋กœ ์‚ญ์ œํ•œ ํ›„์— ์ƒˆ ๋ฐฑ์—…์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฑ์—…/๋ณต์› ํƒญ์—์„œ ๊ธฐ์กด ๋ฐฑ์—…์„ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž์—๊ฒŒ ํ•„์š”ํ•œ ๊ถŒํ•œ์ด ์—†์Œ

๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฑ์—…ํ•˜๋ ค๋ฉด metastore.backups.create IAM ๊ถŒํ•œ์ด ํฌํ•จ๋œ IAM ์—ญํ• ์„ ์š”์ฒญํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์›ํ•˜๋ ค๋ฉด metastore.services.restore ๋ฐ metastore.backups.use IAM ๊ถŒํ•œ์ด ํฌํ•จ๋œ IAM ์—ญํ• ์„ ์š”์ฒญํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์„œ๋น„์Šค ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํŒŒ์ผ์ด ๋„ˆ๋ฌด ํฌ๊ธฐ ๋•Œ๋ฌธ์— ์ž‘์—…์ด ์‹คํŒจํ•จ

์„œ๋น„์Šค ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํŒŒ์ผ์ด ๋„ˆ๋ฌด ํฌ๋ฉด ๋ฐฑ์—… ๋˜๋Š” ๋ณต์› ํ”„๋กœ์„ธ์Šค๋ฅผ ์™„๋ฃŒํ•˜๋Š” ๋ฐ 1์‹œ๊ฐ„ ์ด์ƒ ์ž‘์—… ์ œํ•œ ์‹œ๊ฐ„ ํ•œ๋„๊ฐ€ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Dataproc ํด๋Ÿฌ์Šคํ„ฐ ์˜ค๋ฅ˜ ์‹œ๋‚˜๋ฆฌ์˜ค

๋‹ค์Œ ์„น์…˜์—์„œ๋Š” ์ผ๋ฐ˜์ ์ธ Dataproc ๋ฐ ์ž์ฒด ๊ด€๋ฆฌํ˜• ํด๋Ÿฌ์Šคํ„ฐ ๋ฌธ์ œ๋ฅผ ๋Œ€๋žต์ ์œผ๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๋ฒ„์ „ ๋ถˆ์ผ์น˜๋กœ ์ธํ•ด Dataproc ํด๋Ÿฌ์Šคํ„ฐ ์—ฐ๊ฒฐ์ด ์‹คํŒจํ•จ

Dataproc ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—ฐ๊ฒฐํ•  ๋•Œ Dataproc ์ด๋ฏธ์ง€์™€ Dataproc Metastore Hive ๋ฒ„์ „์ด ํ˜ธํ™˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์ด๋ฏธ์ง€ ๋ฒ„์ „ ๊ด€๋ฆฌ ํŽ˜์ด์ง€์—์„œ Hive ๋ฒ„์ „์ด ํ˜ธํ™˜๋˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

์ž์„ธํ•œ ๋‚ด์šฉ์€ Dataproc ์ด๋ฏธ์ง€ ๋ฒ„์ „ ๋ชฉ๋ก์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์—ญํ•  ๋ถ€์กฑ์œผ๋กœ ์ธํ•ด Dataproc ํด๋Ÿฌ์Šคํ„ฐ ์ƒ์„ฑ์ด ์‹คํŒจํ•จ

Dataproc ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋งŒ๋“ค ๋•Œ ๋‹ค์Œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ํด๋Ÿฌ์Šคํ„ฐ ์ƒ์„ฑ์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

gcloud.dataproc.clusters.create) INVALID_ARGUMENT: Default Service Account '**********-compute@developer.gserviceaccount.com' is missing required permissions: [dataproc.agents.create, dataproc.agents.delete, dataproc.agents.get, dataproc.agents.update, dataproc.tasks.lease, dataproc.tasks.listInvalidatedLeases, dataproc.tasks.reportStatus]. Service Accounts must have either 'Dataproc/Dataproc Worker' role or all permissions granted by the role.

์ด๋Š” Dataproc ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋งŒ๋“ค๊ณ  Dataproc Metastore์— ์—ฐ๊ฒฐํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์„œ๋น„์Šค ๊ณ„์ •์— roles/dataproc.worker๋ฅผ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์˜ˆ์‹œ์—์„œ๋Š” ๋ช‡ ๊ฐ€์ง€ ์ƒ˜ํ”Œ ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

gcloud projects add-iam-policy-binding my_project \
    --member=219315-compute@developer.gserviceaccount.com \
    --role=roles/dataproc.worker

์‹œ๊ฐ„๋Œ€ ๋ฌธ์ œ๋กœ ์ธํ•ด ๋ฉ”ํƒ€์Šคํ† ์–ด์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Œ

Hive ํŒŒ์ผ์ด The server time zone value 'CDT' is unrecognized or represents more than one time zone ์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

Dataproc์—์„œ ๋ฉ”ํƒ€์Šคํ† ์–ด์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ํ˜„์žฌ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ๋‹ค์Œ ์‹œ๊ฐ„๋Œ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํฌํ•จํ•˜๋„๋ก gcloud dataproc clusters create ๋ช…๋ น์–ด ๋˜๋Š” ์ž๋™ํ™” ๋„๊ตฌ๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

--metadata "hive-metastore-uri=jdbc:mysql://10.207.26.77:3306/hive_metastore?serverTimezone=CST6CDT"

Google Cloud CLI ๋ฌธ์ œ ํ•ด๊ฒฐ

gcloud CLI ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฑฐ๋‚˜ ๋ช…๋ น์–ด๊ฐ€ ๋ฌธ์„œํ™”๋œ ๋ฐฉ์‹๊ณผ ๋‹ค๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋Š” ๊ฒฝ์šฐ gcloud CLI๋ฅผ ์—…๋ฐ์ดํŠธํ•ด ๋ณด์„ธ์š”.

gcloud components update

๋‹ค์Œ ๋‹จ๊ณ„