hive_base

Hive

  • image

    • https://www.simplilearn.com/tutorials/hadoop-tutorial/hive

  • ํ•˜๋‘ก ๊ธฐ๋ฐ˜์˜ ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์ง• ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ๋น ๋ฅธ ์†๋„๋กœ ์„ฑ์žฅํ•˜๋Š” ํŽ˜์ด์Šค๋ถ์˜ ์†Œ์…œ ๋„คํŠธ์›Œํฌ์—์„œ ๋งค์ผ๊ฐ™์ด ์ƒ์‚ฐ๋˜๋Š” ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ํ•™์Šตํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • ํ•˜์ด๋ธŒ์—์„œ ๋ ˆ์ฝ”๋“œ ๋‹จ์œ„ ๊ฐฑ์‹ (record-level update), ์‚ฝ์ž…, ์‚ญ์ œ๋ฅผ ํ•  ์ˆ˜ ์—†๊ธด ํ•˜์ง€๋งŒ ์ฟผ๋ฆฌ๋กœ ์ƒˆ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ  ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ํŒŒ์ผ๋กœ ๋‚จ๊ธธ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

  • SQL์€ ๋น„์ฆˆ๋‹ˆ์Šค ์ธํ…”๋ฆฌ์ „์Šค ๋ถ„์•ผ์˜ ๋„๊ตฌ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ณตํ†ต ์–ธ์–ด(lingua franca)์ด๊ธฐ ๋•Œ๋ฌธ์—(์˜ˆ๋ฅผ ๋“ค์–ด ODBC๋Š” ๊ณตํ†ต ์ธํ„ฐํŽ˜์ด์Šค) ํ•ด๋‹น ๋ถ„์•ผ์˜ ์ƒ์šฉ ์ œํ’ˆ๊ณผ ์‰ฝ๊ฒŒ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Hive๋Š” ๋ฐ์ดํ„ฐ์–‘์— ์ขŒ์šฐ๋˜์ง€ ์•Š๋Š” ์ฟผ๋ฆฌ ์—”์ง„์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

    • ๋†’์€ ํ™•์žฅ์„ฑ๊ณผ ๋‚ด๊ฒฐํ•จ์„ฑ์„ ๋ชฉํ‘œ๋กœ ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

    • ๋Œ€๊ทœ๋ชจ ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ๋ฅผ ๊พธ์ค€ํžˆ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    • ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•˜๊ฑฐ๋‚˜ ์—ด ์ง€ํ–ฅ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ๋งŒ๋“œ๋Š” ๋“ฑ์˜ ๋ฌด๊ฑฐ์šด ์ฒ˜๋ฆฌ๋Š” ์•„๋ฌด๋ž˜๋„ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง€๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์–ด์„œ Hive์—์„œ ์‹คํ–‰ํ•˜๋Š”๊ฒƒ์ด ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

    • ๋ถ„์‚ฐ์‹œ์Šคํ…œ์˜ ๋™ํ–ฅ์€ ์„œ์„œํžˆ ์ธ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋กœ ์˜ฎ๊ฒจ ๊ฐ€๊ณ  ์žˆ์ง€๋งŒ, Hive๋Š” ์•ž์œผ๋กœ๋„ ๋ฐ์ดํ„ฐ์–‘์— ์ขŒ์šฐ๋˜์ง€ ์•Š๋Š” ์ฟผ๋ฆฌ ์—”์ง„์œผ๋กœ ๊ณ„์† ์ด์šฉ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ํ•œ๊ณ„

    • Hive๋Š” ์˜จ๋ผ์ธ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ(OLTP)์šฉ์œผ๋กœ ์„ค๊ณ„๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ ์˜จ๋ผ์ธ ๋ถ„์„ ์ฒ˜๋ฆฌ์—๋งŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

    • Hive๋Š” ๋ฐ์ดํ„ฐ ๋ฎ์–ด์“ฐ๊ธฐ ๋˜๋Š” ํŒŒ์•…์„ ์ง€์›ํ•˜์ง€๋งŒ ์—…๋ฐ์ดํŠธ ๋ฐ ์‚ญ์ œ๋Š” ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    • Hive์—์„œ๋Š” ํ•˜์œ„ ์ฟผ๋ฆฌ๊ฐ€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ๋กœ๊น…

    • ํ•˜์ด๋ธŒ์˜ ์—๋Ÿฌ ๋กœ๊ทธ๋Š” ๋กœ์ปฌ ํŒŒ์ผ์‹œ์Šคํ…œ์˜ ${java.io.tmpdir}/${user.name}/hive.log์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Œ, ํ™˜๊ฒฝ ์„ค์ • ๋ฌธ์ œ๋‚˜ ๋‹ค๋ฅธ ์œ ํ˜•์˜ ์—๋Ÿฌ๋ฅผ ์ง„๋‹จํ•  ๋•Œ ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

    • ๋กœ๊น… ์„ค์ • ํŒŒ์ผ์€ conf/hive-log4j.properties๊ณ , ๋กœ๊ทธ ์ˆ˜์ค€๊ณผ ๋‹ค๋ฅธ ๋กœ๊น… ๊ด€๋ จ ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ์œผ๋ฉด ์ด ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ฝ๊ธฐ ์Šคํ‚ค๋งˆ์™€ ์“ฐ๊ธฐ ์Šคํ‚ค๋งˆ์˜ ๋น„๊ต

  • image

    • https://www.oreilly.com/content/hadoop-what-you-need-to-know/

  • ์“ฐ๊ธฐ ์Šคํ‚ค๋งˆ(schema on write) - ์ „ํ†ต์ ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํ…Œ์ด๋ธ”์˜ ์Šคํ‚ค๋งˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•˜๋Š” ์‹œ์ ์— ๊ฒ€์ฆ๋ฉ๋‹ˆ๋‹ค. ๋กœ๋“œ ์ค‘์ธ ๋ฐ์ดํ„ฐ๊ฐ€ ์Šคํ‚ค๋งˆ์— ๋ถ€ํ•ฉ๋˜์ง€ ์•Š์œผ๋ฉด ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ด๋ฒ„ํ…Œ์ด์Šค ์“ฐ๋Š” ์‹œ์ ์— ๋–ผ์ดํ„ฐ์˜ ์Šคํ‚ค๋งˆ๋ฅผ ๊ฒ€์ฆํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

  • ์ฝ๊ธฐ ์Šคํ‚ค๋งˆ(schema on read) - ํ•˜์ด๋ธŒ๋Š” ๋กœ๋“œ ์‹œ์ ์ด ์•„๋‹ˆ๋ผ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.

  • ๋‘ ๋ฐฉ์‹์€ ์„œ๋กœ ์ƒ์ถฉ ๊ด€๊ณ„(trade-off)๋กœ ์ฝ๊ธฐ ์Šคํ‚ค๋งˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด๋ถ€ ํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ฑฐ๋‚˜ ํŒŒ์‹ฑํ•˜๊ฑฐ๋‚˜ ๋””์Šคํฌ์— ์ง๋ ฌํ™”ํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ดˆ๊ธฐ์— ๋งค์šฐ ๋น ๋ฅธ ์†๋„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ๋“œ ์กฐ์ž‘์„ ์œ„ํ•ด์„œ๋Š” ๋‹จ์ˆœํžˆ ํŒŒ์ผ์„ ๋ณต์‚ฌํ•˜๊ฑฐ๋‚˜ ์ด๋™ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

  • ์“ฐ๊ธฐ ์Šคํ‚ค๋งˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ปฌ๋Ÿผ ๋‹จ์œ„์˜ ๋ฐ์ดํ„ฐ ์ƒ‰์ธ๊ณผ ์••์ถ•์„ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋” ๋น ๋ฅด๊ฒŒ ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Œ, ์ƒ๋Œ€์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•˜๋Š” ์‹œ๊ฐ„์€ ๋” ์˜ค๋ž˜ ๊ฑธ๋ฆผ, ๋”์šฑ์ด ์ฟผ๋ฆฌ๊ฐ€ ์ •ํ•ด์ง€์ง€ ์•Š์•„์„œ ๋กœ๋“œ ์‹œ์ ์— ์Šคํ‚ค๋งˆ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์—†๊ณ  ์ƒ‰์ธ๋„ ์ ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๋„ ๋นˆ๋ฒˆํ•ฉ๋‹ˆ๋‹ค.

๊ฐฑ์‹ , ํŠธ๋žœ์žญ์…˜, ์ƒ‰์ธ

  • ์‹ค์ œ ํ…Œ์ด๋ธ”์˜ ๊ฐฑ์‹ ์€ ์•„์˜ˆ ์ƒˆ๋กœ์šด ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค์–ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„๋œ๋‹ค๋Š” ์ ์ด๋ฉฐ ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ์…‹์„ ๋Œ€์ƒ์œผ๋กœ ์‹คํ–‰๋˜๋Š” ๋ฐ์ดํ„ฐ์›จ์–ดํ•˜์šฐ์ง• ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹

  • HDFS ๊ธฐ์กด ํŒŒ์ผ์˜ ๊ฐฑ์‹ ์„ ์ง€์›ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์‚ฝ์ž…, ๋ณ€๊ฒฝ, ์‚ญ์ œ๋กœ ์ธํ•œ ๊ฐฑ์‹  ๋‚ด์—ญ์€ ๋ณ„๋„์˜ ์ž‘์€ ๋ธํƒ€ ํŒŒ์ผ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ๋ธํƒ€ ํŒŒ์ผ์€ ๋ฉ”ํƒ€์Šคํ† ์–ด์—์„œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์‹คํ–‰๋˜๋Š” ๋งต๋ฆฌ๋“€์Šค ์žก์— ์˜ํ•ด ๊ธฐ์กด ํ…Œ์ด๋ธ”๊ณผ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค.

  • ํ…Œ์ด๋ธ”๊ณผ ํŒŒํ‹ฐ์…˜ ์ˆ˜์ค€์˜ ์ž ๊ธˆ์„ ์ง€์›ํ•˜๋ฉฐ ์ž ๊ธˆ์€ ํŠน์ • ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ…Œ์ด๋ธ”์„ ์ฝ๋Š” ๋„์ค‘์— ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ…Œ์ด๋ธ”์„ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž ๊ธˆ์€ ์ฃผํ‚คํผ์— ์˜ํ•ด ํˆฌ๋ช…ํ•˜๊ฒŒ ๊ด€๋ฆฌ๋˜๋ฏ€๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ฃผํ‚คํผ๋ฅผ ์กฐ์ž‘ํ•˜์—ฌ ์ž ๊ธˆ์„ ์ ์šฉํ•˜๊ฑฐ๋‚˜ ํ•ด์ œํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

  • ํ•˜์ด๋ธŒ๋Š” ํŠน์ •ํ•œ ๊ฒฝ์šฐ์— ์ฟผ๋ฆฌ์˜ ์†๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ๋Š” ์ƒ‰์ธ์„ ์ง€์›ํ•˜๋Š”๋ฐ ์ฝคํŒจํŠธ(compact) ์ƒ‰์ธ๊ณผ ๋น„ํŠธ๋งต(bitmap) ์ƒ‰์ธ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ƒ‰์ธ์€ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๋ฐฉ์‹์˜ ์ƒ‰์ธ๋„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ฝคํŒฉํŠธ ์ƒ‰์ธ์€ ๊ฐ ๊ฐ’์„ ํŒŒ์ผ ์˜คํ”„์…‹์ด ์•„๋‹Œ HDFS ๋ธ”๋ก ๋„˜๋ฒ„๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๋””์Šคํฌ ๊ณต๊ฐ„์„ ๋งŽ์ด ์ฐจ์ง€ ์•Š์œผ๋ฉด์„œ๋„ ์ธ์ ‘ํ•œ ํ–‰ ์‚ฌ์ด์— ๋ถ„ํฌ๋œ ํŠน์ • ์ปฌ๋Ÿผ์— ๋Œ€ํ•œ ๊ฐ’์„ ์ƒ‰์ธํ•˜๋Š” ๋ฐ ๋งค์šฐ ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.

  • ๋น„ํŠธ๋งต ์ƒ‰์ธ์€ ํŠน์ • ๊ฐ’์ด ์ถœํ˜„ํ•˜๋Š” ํ–‰์„ ํšจ์œจ์ ์œผ๋กœ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์••์ถ•๋œ ๋น„ํŠธ์…‹(bitset)์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

ํŒŒํ‹ฐ์…˜๊ณผ ๋ฒ„ํ‚ท

  • image

    • https://docs.cloudera.com/HDPDocuments/HDP2/HDP-2.4.0/bk_performance_tuning/content/hive_perf_best_pract_design_data_stg_smartly.html

  • ํ…Œ์ด๋ธ”์„ ํŒŒํ‹ฐ์…˜์œผ๋กœ ๊ตฌ์กฐํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒŒํ‹ฐ์…˜์ด๋ž€ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ ์งœ์™€ ๊ฐ™์€ ํŒŒํ‹ฐ์…˜ ์ปฌ๋Ÿผ์˜ ๊ฐ’์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํฐ ๋‹จ์œ„(coarse-grained)๋กœ ๋ถ„ํ• ํ•˜๋Š” ๋ฐฉ์‹์ด๋ฉฐ ํŒŒํ‹ฐ์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ์˜ ์ผ๋ถ€๋ฅผ ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ์งˆ์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ…Œ์ด๋ธ”๊ณผ ํŒŒํ‹ฐ์…˜์€ ํšจ์œจ์ ์ธ ์ฟผ๋ฆฌ๋ฅผ ์œ„ํ•ด ๋ฐ์ดํ„ฐ์— ์ถ”๊ฐ€๋œ ๊ตฌ์กฐ์ธ ๋ฒ„ํ‚ท์œผ๋กœ ๋”์šฑ ์„ธ๋ถ„ํ™” ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ID๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฒ„ํ‚ท์„ ์ƒ์„ฑํ•˜๋ฉด ์ „์ฒด ์‚ฌ์šฉ์ž ์ค‘์—์„œ ๋ฌด์ž‘์œ„ ๋ฐ์ดํ„ฐ ์ƒ˜ํ”Œ์„ ๋ฝ‘์•„ ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์„ฑํ•œ ์ฟผ๋ฆฌ๊ฐ€ ์ œ๋Œ€๋กœ ์‹คํ–‰๋˜๋Š”์ง€ ๋น ๋ฅด๊ฒŒ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํŒŒํ‹ฐ์…˜

    • ํ…Œ์ด๋ธ”์€ ๋‹ค์ค‘ ์ฐจ์›์œผ๋กœ ํŒŒํ‹ฐ์…˜๋ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋จผ์ € ๋‚ ์งœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋กœ๊ทธ๋ฅผ ํŒŒํ‹ฐ์…˜ํ•˜๊ณ  ๊ทธ๋‹ค์Œ์— ์ง€์—ญ๋ณ„๋กœ ํšจ์œจ์ ์ธ ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ ๋‚ ์งœ๋ณ„ ํŒŒํ‹ฐ์…˜์— ๊ตญ๊ฐ€๋ณ„ ์„œ๋ธŒํŒŒํ‹ฐ์…˜์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฒ„ํ‚ท

    • ํ…Œ์ด๋ธ”์„ ๋ฒ„ํ‚ท์œผ๋กœ ๊ตฌ์กฐํ™”ํ•˜๋Š” ์ด์œ  ๋‘ ๊ฐ€์ง€

      • ๋งค์šฐ ํšจ์œจ์ ์ธ ์ฟผ๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ, ๋ฒ„ํ‚ทํŒ…์€ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ๊ตฌ์กฐ๋ฅผ ๋ถ€์—ฌํ•˜๊ณ , ํ•˜์ด๋ธŒ๋Š” ์–ด๋–ค ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ ์ด ์ถ”๊ฐ€ ๊ตฌ์กฐ๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ๋™์ผํ•œ ์ปฌ๋Ÿผ(์กฐ์ธํ•  ์ปฌ๋Ÿผ)์— ๋Œ€ํ•œ ๋ฒ„ํ‚ท์„ ๊ฐ€์ง„ ๋‘ ํ…Œ์ด๋ธ”์„ ์กฐ์ธํ•  ๋•Œ ๋งต ์กฐ์ธ์„ ๊ตฌํ˜„ํ•˜๋ฉด ๋งค์šฐ ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.

      • ํšจ์œจ์ ์ธ ์ƒ˜ํ”Œ๋ง์— ์œ ๋ฆฌ, ๋งค์šฐ ํฐ ๋ฐ์ดํ„ฐ์…‹์„ ๋Œ€์ƒ์œผ๋กœ ๊ฐœ๋ฐœํ•˜๊ฑฐ๋‚˜ ๊ฐœ์„ ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ฐ์ดํ„ฐ์…‹์˜ ์ผ๋ถ€๋งŒ์„ ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ๋งค์šฐ ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

HCatalog

  • image
    • https://www.oreilly.com/library/view/hadoop-application-architectures/9781491910313/ch01.html

  • Hive ์™ธ๋ถ€์—์„œ Hive ๋ฉ”ํƒ€์Šคํ† ์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก HCatalog๋ผ๋Š” ๋ณ„๋„์˜ ํ”„๋กœ์ ํŠธ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ๊ณ  HCatalog๋Š” Hive์˜ ์ผ๋ถ€์ด๋ฉฐ ๋‹ค๋ฅธ ๋„๊ตฌ(์˜ˆ: Pig ๋ฐ MapReduce)๊ฐ€ Hive ๋ฉ”ํƒ€์Šคํ† ์–ด์™€ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

  • HCatalog๋Š” ํ•˜๋‘ก์ด ๋ชจ๋“  ๋„๊ตฌ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ•˜์ด๋ธŒ ๋ฉ”ํƒ€์Šคํ† ์–ด๋ฅผ ๋งŒ๋“ค๊ณ , ๋งต๋ฆฌ๋“€์Šค์™€ ํ”ผ๊ทธ์˜ ์ปค๋„ฅํ„ฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‘ก ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜์ด๋ธŒ ์›จ์–ดํ•˜์šฐ์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ด๋ธŒ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ํ•˜์ด๋ธŒ DDL๋กœ ๋ฉ”ํƒ€์Šคํ† ์–ด๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ช…๋ นํ–‰ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์•Œ๋ฆผ ์„œ๋น„์Šค๋„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋ฅผ ๊ณต์œ ํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ๋„๊ตฌ ๊ฐ„์— ์†์‰ฝ๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํ”ผ๊ทธ๋‚˜ ๋งต๋ฆฌ๋“€์Šค๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์˜ฌ๋ฆฌ๊ณ  ๋‚˜๋ฉด ์ •๊ทœํ™”ํ•œ ๋‹ค์Œ ํ•˜์ด๋ธŒ๋กœ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค. ๋ถ„์„ ์ฟผ๋ฆฌ๋ฅผ ์œ„ํ•ด ํ•˜์ด๋ธŒ๋ฅผ ์‚ฌ์šฉํ•˜๋˜ ์‚ฌ์šฉ์ž๋Š” ETL ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ๊ตฌ์ถ•ํ•  ๋•Œ ํ”ผ๊ทธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • image

    • https://cwiki.apache.org/confluence/display/hive/hcatalog+usinghcat

  • HCatalog๋Š” SerDe(serializer-deserializer)๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ํ˜•์‹์˜ ํŒŒ์ผ ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ HCatalog๋Š” RCFile, CSV, JSON, SequenceFile ๋ฐ ORC ํŒŒ์ผ ํ˜•์‹์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ง€์ • ํ˜•์‹์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด InputFormat, OutputFormat ๋ฐ SerDe๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Reference

  • https://www.amazon.com/Programming-Hive-Warehouse-Language-Hadoop/dp/1449319335

  • https://www.amazon.com/Hadoop-Definitive-Guide-Tom-White/dp/1449311520

Last updated