Apache Bigtop ๋ฐ Hadoop ๋ฐฐํฌํŒ ์„ ํƒ

Apache Bigtop ๋ฐ Hadoop ๋ฐฐํฌํŒ ์„ ํƒ

์ž‘๋…„์ด Apache Hadoop์— ํฐ ๋ณ€ํ™”๊ฐ€ ์žˆ์—ˆ๋˜ ํ•ด์˜€๋‹ค๋Š” ๊ฒƒ์€ ์•„๋งˆ๋„ ๋น„๋ฐ€์ด ์•„๋‹ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ž‘๋…„์— Cloudera์™€ Hortonworks๊ฐ€ ํ•ฉ๋ณ‘๋˜์—ˆ๊ณ (๋ณธ์งˆ์ ์œผ๋กœ ํ›„์ž ์ธ์ˆ˜) Mapr๋Š” ์‹ฌ๊ฐํ•œ ์žฌ์ • ๋ฌธ์ œ๋กœ ์ธํ•ด Hewlett Packard์— ๋งค๊ฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ช‡ ๋…„ ์ „์—๋Š” ์˜จํ”„๋ ˆ๋ฏธ์Šค ์„ค์น˜์˜ ๊ฒฝ์šฐ Cloudera์™€ Hortonworks ์ค‘์—์„œ ์„ ํƒํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•˜์ง€๋งŒ, ์•„์‰ฝ๊ฒŒ๋„ ์˜ค๋Š˜๋‚ ์—๋Š” ์ด๋Ÿฌํ•œ ์„ ํƒ์˜ ์—ฌ์ง€๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ ๋†€๋ผ์šด ์ ์€ Cloudera๊ฐ€ ์˜ฌํ•ด 2019์›”์— ๋ฐฐํฌ์šฉ ๋ฐ”์ด๋„ˆ๋ฆฌ ์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ๊ณต๊ฐœ ์ €์žฅ์†Œ์— ๊ณต๊ฐœํ•˜๋Š” ๊ฒƒ์„ ์ค‘๋‹จํ•˜๊ณ  ์ด์ œ ์œ ๋ฃŒ ๊ตฌ๋…์„ ํ†ตํ•ด์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ฐœํ‘œํ–ˆ๋‹ค๋Š” ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก  XNUMX๋…„ ๋ง ์ด์ „์— ์ถœ์‹œ๋œ ์ตœ์‹  ๋ฒ„์ „์˜ CDH์™€ HDP๋„ ๋‹ค์šด๋กœ๋“œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ด๋“ค์— ๋Œ€ํ•œ ์ง€์›์€ XNUMX~XNUMX๋…„ ์ •๋„ ์˜ˆ์ƒ๋œ๋‹ค. ํ•˜์ง€๋งŒ ๋‹ค์Œ์— ๋ฌด์—‡์„ ํ•ด์•ผ ํ• ๊นŒ์š”? ์ด์ „์— ๊ตฌ๋…๋ฃŒ๋ฅผ ์ง€๋ถˆํ•˜์‹  ๋ถ„๋“ค์—๊ฒŒ๋Š” ๋ณ€๊ฒฝ๋œ ์‚ฌํ•ญ์ด ์—†์Šต๋‹ˆ๋‹ค. ์œ ๋ฃŒ ๋ฒ„์ „์˜ ๋ฐฐํฌํŒ์œผ๋กœ ์ „ํ™˜ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์ง€๋งŒ ๋™์‹œ์— ์ตœ์‹  ๋ฒ„์ „์˜ ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ์š”์†Œ์™€ ํŒจ์น˜ ๋ฐ ๊ธฐํƒ€ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ฐ›๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ์ด ๊ธฐ์‚ฌ๋ฅผ ์ค€๋น„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์šฐ๋ฆฌ๋Š” ์ด ์ƒํ™ฉ์—์„œ ๋ฒ—์–ด๋‚  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅํ•œ ์˜ต์…˜์„ ๊ณ ๋ คํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ๊ธฐ์‚ฌ๋Š” ๋ฆฌ๋ทฐ์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋ฐฐํฌํŒ ๋น„๊ต ๋ฐ โ€‹โ€‹์ž์„ธํ•œ ๋ถ„์„์ด ํฌํ•จ๋˜์ง€ ์•Š์œผ๋ฉฐ ๋ฐฐํฌํŒ์„ ์„ค์น˜ํ•˜๊ณ  ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์—†์Šต๋‹ˆ๋‹ค. ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚  ๊ฒƒ? ์˜ค๋Š˜๋‚  ๋งค์šฐ ๋“œ๋ฌผ์ง€๋งŒ ๊ฐ€์šฉ์„ฑ์œผ๋กœ ์ธํ•ด ๋‹น์—ฐํžˆ ์ฃผ๋ชฉํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” Arenadata Hadoop๊ณผ ๊ฐ™์€ ๋ฐฐํฌํŒ์— ๋Œ€ํ•ด ๊ฐ„๋žตํ•˜๊ฒŒ ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ฐ”๋‹๋ผ ํ•˜๋‘ก(Vanilla Hadoop)์— ๋Œ€ํ•ด ์ฃผ๋กœ Apache Bigtop์„ ์‚ฌ์šฉํ•˜์—ฌ "์š”๋ฆฌ"ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ค€๋น„๊ฐ€ ๋œ? ๊ทธ๋Ÿผ ๊ณ ์–‘์ด์— ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค.

์•„๋ ˆ๋‚˜๋ฐ์ดํ„ฐ ํ•˜๋‘ก

Apache Bigtop ๋ฐ Hadoop ๋ฐฐํฌํŒ ์„ ํƒ

์ด๊ฒƒ์€ ์™„์ „ํžˆ ์ƒˆ๋กญ๊ณ  ์•„์ง ์ž˜ ์•Œ๋ ค์ง€์ง€ ์•Š์€ ๊ตญ๋‚ด ๊ฐœ๋ฐœ ๋ฐฐํฌ ํ‚คํŠธ์ž…๋‹ˆ๋‹ค. ๋ถˆํ–‰ํ•˜๊ฒŒ๋„ ํ˜„์žฌ Habrรฉ์—๋Š” ์ด ๊ธฐ์‚ฌ.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ์˜จ๋ผ์ธ์œผ๋กœ ํ”„๋กœ์ ํŠธ. ์ตœ์‹  ๋ฒ„์ „์˜ ๋ฐฐํฌํŒ์€ ๋ฒ„์ „ 3.1.2์˜ ๊ฒฝ์šฐ Hadoop 3, ๋ฒ„์ „ 2.8.5์˜ ๊ฒฝ์šฐ 2๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

๋กœ๋“œ๋งต์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—.

Apache Bigtop ๋ฐ Hadoop ๋ฐฐํฌํŒ ์„ ํƒ
Arenadata ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ์ž ์ธํ„ฐํŽ˜์ด์Šค

Arenadata์˜ ํ•ต์‹ฌ ์ œํ’ˆ์€ ์•„๋ ˆ๋‚˜๋ฐ์ดํ„ฐ ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ์ž(ADCM), ๋‹ค์–‘ํ•œ ํšŒ์‚ฌ ์†Œํ”„ํŠธ์›จ์–ด ์†”๋ฃจ์…˜์„ ์„ค์น˜, ๊ตฌ์„ฑ ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ADCM์€ ๋ฌด๋ฃŒ๋กœ ๋ฐฐํฌ๋˜๋ฉฐ, Ansible ํ”Œ๋ ˆ์ด๋ถ ์„ธํŠธ์ธ ๋ฒˆ๋“ค์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ธฐ๋Šฅ์ด ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค. ๋ฒˆ๋“ค์€ ๊ธฐ์—…์šฉ๊ณผ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. ํ›„์ž๋Š” Arenadata ์›น์‚ฌ์ดํŠธ์—์„œ ๋ฌด๋ฃŒ๋กœ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์ฒด ๋ฒˆ๋“ค์„ ๊ฐœ๋ฐœํ•˜์—ฌ ADCM์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

Hadoop 3์˜ ๋ฐฐํฌ ๋ฐ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ADCM๊ณผ ํ•จ๊ป˜ ๋ฒˆ๋“ค์˜ ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฒ„์ „์ด ์ œ๊ณต๋˜์ง€๋งŒ Hadoop 2์˜ ๊ฒฝ์šฐ์—๋Š” ๋ฒˆ๋“ค์˜ ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฒ„์ „๋งŒ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์•„ํŒŒ์น˜ ์•”๋ฐ”๋ฆฌ ๋Œ€์•ˆ์œผ๋กœ. ํŒจํ‚ค์ง€๊ฐ€ ์žˆ๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋Š” ๊ณต๊ฐœ์ ์œผ๋กœ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•ด ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ „๋ฐ˜์ ์œผ๋กœ ๋ถ„ํฌ๋Š” ๋งค์šฐ ํฅ๋ฏธ๋กœ์›Œ ๋ณด์ž…๋‹ˆ๋‹ค. Cloudera Manager, Ambari ๋“ฑ์˜ ์†”๋ฃจ์…˜์— ์ต์ˆ™ํ•˜์‹  ๋ถ„๋“ค, ADCM ์ž์ฒด๋ฅผ ์ข‹์•„ํ•˜์‹ค ๋ถ„๋“ค๋„ ๊ณ„์‹ค ๊ฑฐ๋ผ ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€์—๊ฒŒ๋Š” ๋ฐฐํฌ๊ฐ€ ํฐ ์žฅ์ ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด ๋ ˆ์ง€์Šคํ„ฐ์— ํฌํ•จ๋จ ์ˆ˜์ž…๋Œ€์ฒด์šฉ.

๋‹จ์ ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๋ฉด ๋‹ค๋ฅธ ๋ชจ๋“  Hadoop ๋ฐฐํฌํŒ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰:

  • ์†Œ์œ„ "๊ณต๊ธ‰์—…์ฒด ์ž ๊ธˆ"์ž…๋‹ˆ๋‹ค. Cloudera์™€ Hortonworks์˜ ์‚ฌ๋ก€๋ฅผ ํ†ตํ•ด ์šฐ๋ฆฌ๋Š” ํ•ญ์ƒ ํšŒ์‚ฌ ์ •์ฑ… ๋ณ€๊ฒฝ์˜ ์œ„ํ—˜์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ด๋ฏธ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค.
  • Apache ์—…์ŠคํŠธ๋ฆผ๋ณด๋‹ค ์ƒ๋‹นํ•œ ์ง€์—ฐ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ”๋‹๋ผ ํ•˜๋‘ก

Apache Bigtop ๋ฐ Hadoop ๋ฐฐํฌํŒ ์„ ํƒ

์•„์‹œ๋‹ค์‹œํ”ผ Hadoop์€ ๋‹จ์ผ ์ œํ’ˆ์ด ์•„๋‹ˆ๋ผ ์‹ค์ œ๋กœ ๋ถ„์‚ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ HDFS๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ํ•œ ์ „์ฒด ์„œ๋น„์Šค ์€ํ•˜๊ณ„์ž…๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ํŒŒ์ผ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์ถฉ๋ถ„ํžˆ ๊ฐ–๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ์€ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค. Hive๊ฐ€ ํ•„์š”ํ•œ ์‚ฌ๋žŒ๋„ ์žˆ๊ณ  Presto๊ฐ€ ํ•„์š”ํ•œ ์‚ฌ๋žŒ๋„ ์žˆ๊ณ  HBase์™€ Phoenix๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”๋ฐ Spark์˜ ์‚ฌ์šฉ์ด ์ ์  ๋” ๋Š˜์–ด๋‚˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๋ฐ ๋ฐ์ดํ„ฐ ๋กœ๋”ฉ์„ ์œ„ํ•ด Oozie, Sqoop ๋ฐ Flume์ด ๋•Œ๋•Œ๋กœ ๋ฐœ๊ฒฌ๋ฉ๋‹ˆ๋‹ค. ๋ณด์•ˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด Ranger์™€ ํ•จ๊ป˜ Kerberos๊ฐ€ ์ฆ‰์‹œ ๋– ์˜ค๋ฆ…๋‹ˆ๋‹ค.

Hadoop ๊ตฌ์„ฑ์š”์†Œ์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฒ„์ „์€ ๊ฐ ์ƒํƒœ๊ณ„ ํ”„๋กœ์ ํŠธ์˜ ์›น์‚ฌ์ดํŠธ์—์„œ ํƒ€๋ฅด๋ณผ ํ˜•ํƒœ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์„ค์น˜๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํ•œ ๊ฐ€์ง€ ์กฐ๊ฑด์ด ์žˆ์Šต๋‹ˆ๋‹ค. "์›์‹œ" ๋ฐ”์ด๋„ˆ๋ฆฌ์—์„œ ํŒจํ‚ค์ง€๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ์กฐ๋ฆฝํ•˜๋Š” ๊ฒƒ ์™ธ์—๋„ ๋‹ค์šด๋กœ๋“œํ•œ ๊ตฌ์„ฑ ์š”์†Œ ๋ฒ„์ „์ด ๊ฐ ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜๋Š”์ง€ ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ. ์„ ํ˜ธ๋˜๋Š” ์˜ต์…˜์€ Apache Bigtop์„ ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Bigtop์„ ์‚ฌ์šฉํ•˜๋ฉด Apache Maven ์ €์žฅ์†Œ์—์„œ ๋นŒ๋“œํ•˜๊ณ , ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ , ํŒจํ‚ค์ง€๋ฅผ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ์—๊ฒŒ ๋งค์šฐ ์ค‘์š”ํ•œ ๊ฒƒ์€ Bigtop์ด ์„œ๋กœ ํ˜ธํ™˜๋˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ ๋ฒ„์ „์„ ์กฐ๋ฆฝํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•ด ์•„๋ž˜์—์„œ ๋” ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์•„ํŒŒ์น˜ ๋น…ํƒ‘

Apache Bigtop ๋ฐ Hadoop ๋ฐฐํฌํŒ ์„ ํƒ

Apache Bigtop์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๋ฅผ ๊ตฌ์ถ•, ํŒจํ‚ค์ง• ๋ฐ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
Hadoop, Greenplum๊ณผ ๊ฐ™์€ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ. ๋น…ํƒ‘์€ ๋งŽ์•„
๋ฆด๋ฆฌ์Šค. ์ด ๊ธ€์„ ์“ฐ๋Š” ์‹œ์ ์—์„œ ์ตœ์‹  ์•ˆ์ • ๋ฆด๋ฆฌ์Šค๋Š” ๋ฒ„์ „ 1.4์˜€์œผ๋ฉฐ,
๊ทธ๋ฆฌ๊ณ  ๋งˆ์Šคํ„ฐ์—๋Š” 1.5๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ๋ฒ„์ „์˜ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
๊ตฌ์„ฑ ์š”์†Œ. ์˜ˆ๋ฅผ ๋“ค์–ด 1.4 Hadoop ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ์˜ ๊ฒฝ์šฐ ๋ฒ„์ „ 2.8.5๊ฐ€ ์žˆ๊ณ  ๋งˆ์Šคํ„ฐ์—๋Š”
2.10.0. ์ง€์›๋˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ์˜ ๊ตฌ์„ฑ๋„ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. ๋ญ”๊ฐ€ ๋‚ก๊ณ 
์žฌ์ƒ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒƒ์€ ์‚ฌ๋ผ์ง€๊ณ  ๊ทธ ์ž๋ฆฌ์— ๋ญ”๊ฐ€ ์ƒˆ๋กญ๊ณ  ์ˆ˜์š”๊ฐ€ ๋งŽ์€ ๊ฒƒ์ด ๋“ฑ์žฅํ•ฉ๋‹ˆ๋‹ค.
๋ฐ˜๋“œ์‹œ Apache ์ œํ’ˆ๊ตฐ ์ž์ฒด์˜ ๊ฒƒ์ด ์•„๋‹ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ์™ธ์—๋„ ๋น…ํƒ‘์—๋Š” ๋‹ค์–‘ํ•œ ํฌํฌ.

์šฐ๋ฆฌ๊ฐ€ Bigtop์— ๋Œ€ํ•ด ์•Œ์•„๊ฐ€๊ธฐ ์‹œ์ž‘ํ–ˆ์„ ๋•Œ, ์šฐ๋ฆฌ๋Š” ์šฐ์„  ๋‹ค๋ฅธ Apache ํ”„๋กœ์ ํŠธ์— ๋น„ํ•ด ๊ทธ ๊ทœ๋ชจ๊ฐ€ ํฌ์ง€ ์•Š๊ณ  ๋ณด๊ธ‰๋ฅ ๊ณผ ์ธ๊ธฐ๋„๊ฐ€ ๋†’์œผ๋ฉฐ ๋งค์šฐ ์ž‘์€ ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๋†€๋ž์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์ œํ’ˆ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์ตœ์†Œํ™”๋˜๊ณ  ํฌ๋Ÿผ ๋ฐ ๋ฉ”์ผ๋ง ๋ชฉ๋ก์—์„œ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์„ ๊ฒ€์ƒ‰ํ•ด๋„ ์ „ํ˜€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ๋„๊ตฌ ์ž์ฒด์˜ ๊ธฐ๋Šฅ์œผ๋กœ ์ธํ•ด ๋ฐฐํฌํŒ์˜ ์™„์ „ํ•œ ์กฐ๋ฆฝ์„ ์™„๋ฃŒํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ ค์šด ์ž‘์—…์œผ๋กœ ํŒ๋ช…๋˜์—ˆ์ง€๋งŒ ์ด์— ๋Œ€ํ•ด์„œ๋Š” ์กฐ๊ธˆ ๋‚˜์ค‘์— ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ‹ฐ์ €๋กœ์„œ, ํ•œ๋•Œ Gentoo ๋ฐ LFS์™€ ๊ฐ™์€ Linux ์„ธ๊ณ„์˜ ํ”„๋กœ์ ํŠธ์— ๊ด€์‹ฌ์ด ์žˆ์—ˆ๋˜ ์‚ฌ๋žŒ๋“ค์€ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ํ–ฅ์ˆ˜๋ฅผ ๋ถˆ๋Ÿฌ์ผ์œผํ‚ค๋Š” ์ฆ๊ฑฐ์›€์„ ๋Š๋‚„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์šฐ๋ฆฌ๊ฐ€ ์ฐพ๊ณ  ์žˆ๋˜(๋˜๋Š” ์‹ฌ์ง€์–ด ๊ธ€์„ ์“ฐ๋˜) "์„œ์‚ฌ์‹œ์ ์ธ" ์‹œ๊ฐ„์„ ๊ธฐ์–ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ํŒจ์น˜๋กœ Mozilla๋ฅผ ebuildํ•˜๊ณ  ์ •๊ธฐ์ ์œผ๋กœ ๋‹ค์‹œ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.

Bigtop์˜ ๊ฐ€์žฅ ํฐ ์žฅ์ ์€ ๊ธฐ๋ฐ˜์ด ๋˜๋Š” ๋„๊ตฌ์˜ ๊ฐœ๋ฐฉ์„ฑ๊ณผ ๋‹ค์–‘์„ฑ์ž…๋‹ˆ๋‹ค. Gradle๊ณผ Apache Maven์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. Gradle์€ Google์ด Android๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๋„๊ตฌ๋กœ ์ž˜ ์•Œ๋ ค์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ ์—ฐํ•˜๋ฉฐ, ์†Œ์œ„ "์ „ํˆฌ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์ณค์Šต๋‹ˆ๋‹ค." Maven์€ Apache ์ž์ฒด์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ํ‘œ์ค€ ๋„๊ตฌ์ด๋ฉฐ, ๋Œ€๋ถ€๋ถ„์˜ ์ œํ’ˆ์ด Maven์„ ํ†ตํ•ด ๋ฆด๋ฆฌ์Šค๋˜๋ฏ€๋กœ ์—ฌ๊ธฐ์„œ๋„ Maven ์—†์ด๋Š” ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. POM(ํ”„๋กœ์ ํŠธ ๊ฐœ์ฒด ๋ชจ๋ธ)์— ์ฃผ๋ชฉํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” Maven์ด ํ”„๋กœ์ ํŠธ์™€ ํ•จ๊ป˜ ์ž‘์—…ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์„ ์„ค๋ช…ํ•˜๋Š” "๊ธฐ๋ณธ" xml ํŒŒ์ผ์ด๋ฉฐ ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ชจ๋“  ์ž‘์—…์ด ๊ตฌ์ถ•๋ฉ๋‹ˆ๋‹ค. ์ •ํ™•ํžˆ ์‹œ๊ฐ„
Maven์˜ ์ผ๋ถ€์ด๋ฉฐ ์ฒ˜์Œ Bigtop ์‚ฌ์šฉ์ž๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ง๋ฉดํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ์žฅ์• ๋ฌผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฐ์Šต

๊ทธ๋Ÿผ ์–ด๋””์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์•ผ ํ• ๊นŒ์š”? ๋‹ค์šด๋กœ๋“œ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜์—ฌ ์ตœ์‹  ์•ˆ์ • ๋ฒ„์ „์„ ์•„์นด์ด๋ธŒ๋กœ ๋‹ค์šด๋กœ๋“œํ•˜์„ธ์š”. Bigtop์—์„œ ์ˆ˜์ง‘ํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ ์•„ํ‹ฐํŒฉํŠธ๋„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ผ๋ฐ˜์ ์ธ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž ์ค‘์—๋Š” YUM๊ณผ APT๊ฐ€ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

๋˜๋Š” ๋‹ค์Œ์—์„œ ์ง์ ‘ ์ตœ์‹  ์•ˆ์ • ๋ฆด๋ฆฌ์Šค๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊นƒํ—ˆ๋ธŒ:

$ git clone --branch branch-1.4 https://github.com/apache/bigtop.git

'๋น…ํƒ‘'์—์„œ ๋ณต์ œโ€ฆ

remote: Enumerating objects: 46, done.
remote: Counting objects: 100% (46/46), done.
remote: Compressing objects: 100% (41/41), done.
remote: Total 40217 (delta 14), reused 10 (delta 1), pack-reused 40171
ะŸะพะปัƒั‡ะตะฝะธะต ะพะฑัŠะตะบั‚ะพะฒ: 100% (40217/40217), 43.54 MiB | 1.05 MiB/s, ะณะพั‚ะพะฒะพ.
ะžะฟั€ะตะดะตะปะตะฝะธะต ะธะทะผะตะฝะตะฝะธะน: 100% (20503/20503), ะณะพั‚ะพะฒะพ.
Updating files: 100% (1998/1998), ะณะพั‚ะพะฒะพ.

๊ฒฐ๊ณผ ./bigtop ๋””๋ ‰ํ† ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

./bigtop-bigpetstore โ€” ๋ฐ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ํ•ฉ์„ฑ ์˜ˆ์ œ
./bigtop-ci โ€” CI ํˆดํ‚ท, ์  ํ‚จ์Šค
./bigtop-data-generators โ€” ๋ฐ์ดํ„ฐ ์ƒ์„ฑ, ํ•ฉ์„ฑ, ์—ฐ๊ธฐ ํ…Œ์ŠคํŠธ ๋“ฑ
./bigtop-deploy - ๋ฐฐํฌ ๋„๊ตฌ
./bigtop-packages โ€” ๊ตฌ์„ฑ, ์Šคํฌ๋ฆฝํŠธ, ์–ด์…ˆ๋ธ”๋ฆฌ์šฉ ํŒจ์น˜, ๋„๊ตฌ์˜ ์ฃผ์š” ๋ถ€๋ถ„
./bigtop-test-framework โ€” ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ
./bigtop-tests โ€” ํ…Œ์ŠคํŠธ ์ž์ฒด, ๋ถ€ํ•˜ ๋ฐ ์—ฐ๊ธฐ
./bigtop_toolchain โ€” ์กฐ๋ฆฝ ํ™˜๊ฒฝ, ๋„๊ตฌ ์ž‘๋™ ํ™˜๊ฒฝ ์ค€๋น„
./build โ€” ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์ถ•
./dl โ€” ๋‹ค์šด๋กœ๋“œํ•œ ์†Œ์Šค ๋””๋ ‰ํ† ๋ฆฌ
./docker โ€” ๋„์ปค ์ด๋ฏธ์ง€ ๊ตฌ์ถ•, ํ…Œ์ŠคํŠธ
./gradle - ๊ทธ๋ž˜๋“ค ๊ตฌ์„ฑ
./output โ€“ ๋นŒ๋“œ ์•„ํ‹ฐํŒฉํŠธ๊ฐ€ ์ด๋™ํ•˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ
./provisioner โ€” ํ”„๋กœ๋น„์ €๋‹

์ด ๋‹จ๊ณ„์—์„œ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ์ ์€ ๊ธฐ๋ณธ ๊ตฌ์„ฑ์ž…๋‹ˆ๋‹ค. ./bigtop/bigtop.bom, ๋ฒ„์ „๊ณผ ํ•จ๊ป˜ ์ง€์›๋˜๋Š” ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์ œํ’ˆ์˜ ๋‹ค๋ฅธ ๋ฒ„์ „(๊ฐ‘์ž๊ธฐ ๋นŒ๋“œ๋ฅผ ์‹œ๋„ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ) ๋˜๋Š” ๋นŒ๋“œ ๋ฒ„์ „(์˜ˆ๋ฅผ ๋“ค์–ด ์ค‘์š”ํ•œ ํŒจ์น˜๋ฅผ ์ถ”๊ฐ€ํ•œ ๊ฒฝ์šฐ)์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ์—๋„ ํฐ ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ./bigtop/bigtop-packages, ์ด๋Š” ๊ตฌ์„ฑ ์š”์†Œ์™€ ํŒจํ‚ค์ง€๋ฅผ ์กฐ๋ฆฝํ•˜๋Š” ๊ณผ์ •๊ณผ ์ง์ ‘์ ์ธ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ์•„์นด์ด๋ธŒ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์••์ถ•์„ ํ’€๊ฑฐ๋‚˜ github์—์„œ ํด๋ก ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋นŒ๋“œ๋ฅผ ์‹œ์ž‘ํ•ด๋„ ๋ ๊นŒ์š”?

์•„๋‹ˆ์š”, ๋จผ์ € ํ™˜๊ฒฝ์„ ์ค€๋น„ํ•ฉ์‹œ๋‹ค.

ํ™˜๊ฒฝ ์ค€๋น„

๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ์—๋Š” ์ž‘์€ ํœด์‹์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ฑฐ์˜ ๋ชจ๋“  ๋ณต์žกํ•œ ์ œํ’ˆ์„ ๋นŒ๋“œํ•˜๋ ค๋ฉด ํŠน์ • ํ™˜๊ฒฝ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ ์ด๋Š” JDK, ๋™์ผํ•œ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ํ—ค๋” ํŒŒ์ผ ๋“ฑ, ๋„๊ตฌ(์˜ˆ: ant, ivy2 ๋“ฑ)์ž…๋‹ˆ๋‹ค. Bigtop์— ํ•„์š”ํ•œ ํ™˜๊ฒฝ์„ ์–ป๋Š” ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜๋Š” ๋นŒ๋“œ ํ˜ธ์ŠคํŠธ์— ํ•„์š”ํ•œ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฐ๋Œ€์ˆœ์œผ๋กœ ๋ณด๋ฉด ํ‹€๋ฆด ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๋ฒ„์ „ 1.0์—๋Š” ์—ฌ๊ธฐ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์‚ฌ์ „ ๊ตฌ์„ฑ๋˜๊ณ  ์•ก์„ธ์Šค ๊ฐ€๋Šฅํ•œ Docker ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๋Š” ์˜ต์…˜๋„ ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ ์ค€๋น„์— ๊ด€ํ•ด์„œ๋Š” ์กฐ์ˆ˜์ธ Puppet์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๊ณ  ๋ฃจํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋„๊ตฌ, ./bigtop:

./gradlew toolchain
./gradlew toolchain-devtools
./gradlew toolchain-puppetmodules

๋˜๋Š” ๊ผญ๋‘๊ฐ์‹œ๋ฅผ ํ†ตํ•ด ์ง์ ‘:

puppet apply --modulepath=<path_to_bigtop> -e "include bigtop_toolchain::installer"
puppet apply --modulepath=<path_to_bigtop> -e "include bigtop_toolchain::deployment-tools"
puppet apply --modulepath=<path_to_bigtop> -e "include bigtop_toolchain::development-tools"

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

์กฐ๋ฆฝ

์šฐ๋ฆฌ๋Š” ๋ฌด์—‡์„ ์ˆ˜์ง‘ํ•˜๋ ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‚˜์š”? ์ด ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต์€ ๋ช…๋ น์˜ ์ถœ๋ ฅ์„ ํ†ตํ•ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

./gradlew tasks

ํŒจํ‚ค์ง€ ์ž‘์—… ์„น์…˜์—๋Š” Bigtop์˜ ์ตœ์ข… ๊ฒฐ๊ณผ๋ฌผ์ธ ์—ฌ๋Ÿฌ ์ œํ’ˆ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ ‘๋ฏธ์‚ฌ -rpm ๋˜๋Š” -pkg-ind๋กœ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋นŒ๋”ฉ์˜ ๊ฒฝ์šฐ).
๋„์ปค์—์„œ). ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ๊ฒƒ์€ Hadoop์ž…๋‹ˆ๋‹ค.

๋นŒ๋“œ ์„œ๋ฒ„ ํ™˜๊ฒฝ์—์„œ ๋นŒ๋“œํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

./gradlew hadoop-rpm

Bigtop ์ž์ฒด๋Š” ํŠน์ • ๊ตฌ์„ฑ ์š”์†Œ์— ํ•„์š”ํ•œ ํ•„์ˆ˜ ์†Œ์Šค๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์กฐ๋ฆฝ์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋„๊ตฌ์˜ ์ž‘๋™์€ Maven ์ €์žฅ์†Œ ๋ฐ ๊ธฐํƒ€ ์†Œ์Šค์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ์ฆ‰, ์ธํ„ฐ๋„ท ์•ก์„ธ์Šค๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ž‘๋™ ์ค‘์— ํ‘œ์ค€ ์ถœ๋ ฅ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋•Œ๋กœ๋Š” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์™€ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋ฌด์—‡์ด ์ž˜๋ชป๋˜์—ˆ๋Š”์ง€ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋•Œ๋กœ๋Š” ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์–ป์–ด์•ผ ํ•  ๋•Œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ธ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. --info ๋˜๋Š” --debug, ๋˜ํ•œ ์œ ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค โ€“stacktrace. ๋ฉ”์ผ๋ง ๋ฆฌ์ŠคํŠธ์— ๋Œ€ํ•œ ํ›„์† ์•ก์„ธ์Šค๋ฅผ ์œ„ํ•ด ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํŽธ๋ฆฌํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. --scan.

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

์ข…์ข… ์˜ค๋ฅ˜๋Š” ์กฐ๋ฆฝ์— ํ•„์š”ํ•œ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์–ป์„ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์†Œ์Šค์˜ ํŠน์ • ๋ถ€๋ถ„์„ ์ˆ˜์ •ํ•˜๋Š” ํŒจ์น˜๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: ์†Œ์Šค์˜ ๋ฃจํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ๋Š” pom.xml์˜ ์ฃผ์†Œ). ์ด๋Š” ์ ์ ˆํ•œ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋ฐฐ์น˜ํ•จ์œผ๋กœ์จ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ./bigtop/bigtop-packages/src/common/oozie/ ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•์‹์˜ ํŒจ์น˜ patch2-fix.diff.

--- a/pom.xml
+++ b/pom.xml
@@ -136,7 +136,7 @@
<repositories>
<repository>
<id>central</id>
- <url>http://repo1.maven.org/maven2</url>
+ <url>https://repo1.maven.org/maven2</url>
<snapshots>
<enabled>false</enabled>
</snapshots>

์•„๋งˆ๋„ ์ด ๊ธฐ์‚ฌ๋ฅผ ์ฝ๋Š” ์‹œ์ ์—์„œ๋Š” ์œ„์˜ ๋ฌธ์ œ๋ฅผ ์ง์ ‘ ํ•ด๊ฒฐํ•  ํ•„์š”๊ฐ€ ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์–ด์…ˆ๋ธ”๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ํŒจ์น˜์™€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•  ๋•Œ ์ •๋ฆฌ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ "์žฌ์„ค์ •"ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

./gradlew hadoop-clean
> Task :hadoop_vardefines
> Task :hadoop-clean
BUILD SUCCESSFUL in 5s
2 actionable tasks: 2 executed

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

./gradlew -POS=centos-7 -Pprefix=1.2.1 hadoop-pkg-ind
> Task :hadoop-pkg-ind
Building 1.2.1 hadoop-pkg on centos-7 in Docker...
+++ dirname ./bigtop-ci/build.sh
++ cd ./bigtop-ci/..
++ pwd
+ BIGTOP_HOME=/tmp/bigtop
+ '[' 6 -eq 0 ']'
+ [[ 6 -gt 0 ]]
+ key=--prefix
+ case $key in
+ PREFIX=1.2.1
+ shift
+ shift
+ [[ 4 -gt 0 ]]
+ key=--os
+ case $key in
+ OS=centos-7
+ shift
+ shift
+ [[ 2 -gt 0 ]]
+ key=--target
+ case $key in
+ TARGET=hadoop-pkg
+ shift
+ shift
+ [[ 0 -gt 0 ]]
+ '[' -z x ']'
+ '[' -z x ']'
+ '[' '' == true ']'
+ IMAGE_NAME=bigtop/slaves:1.2.1-centos-7
++ uname -m
+ ARCH=x86_64
+ '[' x86_64 '!=' x86_64 ']'
++ docker run -d bigtop/slaves:1.2.1-centos-7 /sbin/init
+
CONTAINER_ID=0ce5ac5ca955b822a3e6c5eb3f477f0a152cd27d5487680f77e33fbe66b5bed8
+ trap 'docker rm -f
0ce5ac5ca955b822a3e6c5eb3f477f0a152cd27d5487680f77e33fbe66b5bed8' EXIT
....
ะผะฝะพะณะพ ะฒั‹ะฒะพะดะฐ
....
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-hdfs-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-yarn-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-mapreduce-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-hdfs-namenode-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-hdfs-secondarynamenode-2.8.5-
1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-hdfs-zkfc-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-hdfs-journalnode-2.8.5-
1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-hdfs-datanode-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-httpfs-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-yarn-resourcemanager-2.8.5-
1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-yarn-nodemanager-2.8.5-
1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-yarn-proxyserver-2.8.5-
1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-yarn-timelineserver-2.8.5-
1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-mapreduce-historyserver-2.8.5-
1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-client-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-conf-pseudo-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-doc-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-libhdfs-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-libhdfs-devel-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-hdfs-fuse-2.8.5-1.el7.x86_64.rpm
Wrote: /bigtop/build/hadoop/rpm/RPMS/x86_64/hadoop-debuginfo-2.8.5-1.el7.x86_64.rpm
+ umask 022
+ cd /bigtop/build/hadoop/rpm//BUILD
+ cd hadoop-2.8.5-src
+ /usr/bin/rm -rf /bigtop/build/hadoop/rpm/BUILDROOT/hadoop-2.8.5-1.el7.x86_64
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.uQ2FCn
+ exit 0
+ umask 022
Executing(--clean): /bin/sh -e /var/tmp/rpm-tmp.CwDb22
+ cd /bigtop/build/hadoop/rpm//BUILD
+ rm -rf hadoop-2.8.5-src
+ exit 0
[ant:touch] Creating /bigtop/build/hadoop/.rpm
:hadoop-rpm (Thread[Task worker for ':',5,main]) completed. Took 38 mins 1.151 secs.
:hadoop-pkg (Thread[Task worker for ':',5,main]) started.
> Task :hadoop-pkg
Task ':hadoop-pkg' is not up-to-date because:
Task has not declared any outputs despite executing actions.
:hadoop-pkg (Thread[Task worker for ':',5,main]) completed. Took 0.0 secs.
BUILD SUCCESSFUL in 40m 37s
6 actionable tasks: 6 executed
+ RESULT=0
+ mkdir -p output
+ docker cp
ac46014fd9501bdc86b6c67d08789fbdc6ee46a2645550ff6b6712f7d02ffebb:/bigtop/build .
+ docker cp
ac46014fd9501bdc86b6c67d08789fbdc6ee46a2645550ff6b6712f7d02ffebb:/bigtop/output .
+ docker rm -f ac46014fd9501bdc86b6c67d08789fbdc6ee46a2645550ff6b6712f7d02ffebb
ac46014fd9501bdc86b6c67d08789fbdc6ee46a2645550ff6b6712f7d02ffebb
+ '[' 0 -ne 0 ']'
+ docker rm -f ac46014fd9501bdc86b6c67d08789fbdc6ee46a2645550ff6b6712f7d02ffebb
Error: No such container:
ac46014fd9501bdc86b6c67d08789fbdc6ee46a2645550ff6b6712f7d02ffebb
BUILD SUCCESSFUL in 41m 24s
1 actionable task: 1 executed

๋นŒ๋“œ๋Š” CentOS์—์„œ ์ˆ˜ํ–‰๋˜์—ˆ์ง€๋งŒ Ubuntu์—์„œ๋„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

./gradlew -POS=ubuntu-16.04 -Pprefix=1.2.1 hadoop-pkg-ind

๋‹ค์–‘ํ•œ Linux ๋ฐฐํฌ์šฉ ํŒจํ‚ค์ง€๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ ์™ธ์—๋„ ์ด ๋„๊ตฌ๋Š” ์ปดํŒŒ์ผ๋œ ํŒจํ‚ค์ง€๋กœ ์ €์žฅ์†Œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

./gradlew yum

Docker์˜ ์—ฐ๊ธฐ ํ…Œ์ŠคํŠธ ๋ฐ ๋ฐฐํฌ์— ๋Œ€ํ•ด์„œ๋„ ๊ธฐ์–ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

XNUMX๊ฐœ ๋…ธ๋“œ๋กœ ๊ตฌ์„ฑ๋œ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

./gradlew -Pnum_instances=3 docker-provisioner

XNUMX๊ฐœ ๋…ธ๋“œ๋กœ ๊ตฌ์„ฑ๋œ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์—ฐ๊ธฐ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

./gradlew -Pnum_instances=3 -Prun_smoke_tests docker-provisioner

ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

./gradlew docker-provisioner-destroy

Docker ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ ์—ฐ๊ฒฐ์„ ์œ„ํ•œ ๋ช…๋ น์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

./gradlew docker-provisioner-ssh

์ƒํƒœ ํ‘œ์‹œ:

./gradlew docker-provisioner-status

์„ค๋ช…์„œ์—์„œ ๋ฐฐํฌ ์ž‘์—…์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์„ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

Bigtop์˜ ๊ธฐ์กด ๊ตฌ์„ฑ์š”์†Œ ์™ธ์— ๋‹ค๋ฅธ ๊ฒƒ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ž์ฒด ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ชจ๋“  ๊ฒƒ์ด ์™„๋ฒฝํ•˜๊ฒŒ ์ž๋™ํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ CI/CD ๊ฐœ๋…์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

๋ถ„๋ช…ํžˆ ์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ ์ปดํŒŒ์ผ๋œ ๋ฐฐํฌ ํŒจํ‚ค์ง€๋ฅผ ์ฆ‰์‹œ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์œผ๋กœ ๋ณด๋‚ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๋ฐฐํฌํŒ์„ ๊ตฌ์ถ•ํ•˜๊ณ  ์ง€์›ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์—ฌ๊ธฐ์— ๋ˆ๊ณผ ์‹œ๊ฐ„์„ ํˆฌ์žํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์˜ฌ๋ฐ”๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹๊ณผ ์ „๋ฌธ ํŒ€์ด ๊ฒฐํ•ฉ๋˜๋ฉด ์ƒ์—…์  ์†”๋ฃจ์…˜ ์—†์ด๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋น…ํƒ‘ ํ”„๋กœ์ ํŠธ ์ž์ฒด๋Š” ๊ฐœ๋ฐœ์ด ํ•„์š”ํ•œ ์ƒํ™ฉ์ด๊ณ  ํ˜„์žฌ ํ™œ๋ฐœํžˆ ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์ง€๋Š” ์•Š๋‹ค๋Š” ์ ์„ ์—ผ๋‘์— ๋‘๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. ํ•˜๋‘ก3์ด ๋“ฑ์žฅํ•  ์ „๋ง๋„ ๋ถˆ๋ถ„๋ช…ํ•œ๋ฐ, ๋งŒ์•ฝ ํ•˜๋‘ก3์„ ๊ผญ ๊ตฌ์ถ•ํ•ด์•ผ ํ•œ๋‹ค๋ฉด ๋‹ค์Œ์„ ๋ณด๋ฉด ๋œ๋‹ค. ํฌํฌ Arenadata์—์„œ ํ‘œ์ค€ ์™ธ์—๋„
๋‹ค์–‘ํ•œ ์ถ”๊ฐ€ ๊ตฌ์„ฑ ์š”์†Œ(Ranger, Knox, NiFi)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Rostelecom์˜ ๊ฒฝ์šฐ Bigtop์€ ํ˜„์žฌ ๊ณ ๋ ค ์ค‘์ธ ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์„ ํƒํ•˜๋“  ์•ˆํ•˜๋“  ์‹œ๊ฐ„์ด ๋งํ•ด ์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ถฉ์ˆ˜

์–ด์…ˆ๋ธ”๋ฆฌ์— ์ƒˆ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํฌํ•จํ•˜๋ ค๋ฉด bigtop.bom ๋ฐ ./bigtop-packages์— ํ•ด๋‹น ์„ค๋ช…์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด ๊ตฌ์„ฑ์š”์†Œ์™€ ์œ ์‚ฌํ•˜๊ฒŒ ์ด๋ฅผ ์‹œ๋„ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์„ ์•Œ์•„ ๋‚ด๋ ค๊ณ  ๋…ธ๋ ฅํ•˜์‹ญ์‹œ์˜ค. ์–ธ๋œป๋ณด๊ธฐ์—๋Š” ์–ด๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜๋‚˜์š”? ๋Œ“๊ธ€์„ ํ†ตํ•ด ๊ท€ํ•˜์˜ ์˜๊ฒฌ์„ ํ™•์ธํ•˜๊ฒŒ ๋˜์–ด ๊ธฐ์˜๊ฒŒ ์ƒ๊ฐํ•˜๋ฉฐ ๊ด€์‹ฌ์„ ๊ฐ€์ ธ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ด ๊ธฐ์‚ฌ๋Š” Rostelecom ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌํŒ€์—์„œ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€