๋ฐ˜์‘ํ˜•

์Šค์นผ๋ผ ํด๋ž˜์Šค์— ๊ด€ํ•ด ์ •๋ฆฌํ•จ
https://docs.scala-lang.org/overviews/scala-book/classes.html

๊ธฐ๋ณธ ํด๋ž˜์Šค ์ƒ์„ฑ์ž

class Person(var firstName: String, var lastName: String)
val p = new Person("Bill", "Panner")
println(p.firstName + " " + p.lastName) //Bill Panner
p.firstName = "William" 
p.lastName = "Bernheim"

val๋Š” ํ•„๋“œ๋ฅผ ์ฝ๊ธฐ ์ „์šฉ์œผ๋กœ ๋งŒ๋“ฆ

val(value) : ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Œ
var(variable) : ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Œ

์Šค์นผ๋ผ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒฝ์šฐ var ํ•„๋“œ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•„๋“œ ๋งŒ๋“ค๊ธฐ
ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์ผ๋ฐ˜์ ์œผ๋กœ ํด๋ž˜์Šค๋Œ€์‹  ์ผ€์ด์Šค ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•จ

ํด๋ž˜์Šค ์ƒ์„ฑ์ž

์ƒ์„ฑ์ž ๋งค๊ฐœ๋ณ€์ˆ˜
ํด๋ž˜์Šค ๋ณธ์ฒด์—์„œ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์„œ๋“œ
ํด๋ž˜์Šค ๋ณธ๋ฌธ์—์„œ ์‹คํ–‰๋˜๋Š” ๋ช…๋ น๋ฌธ ๋ฐ ํ‘œํ˜„์‹

๋‹ค๋ฅธ ์Šค์นผ๋ผ ํด๋ž˜์Šค ์˜ˆ์ œ

class Pizza (var crustSize: Int, var crustType: String)

// a stock, like AAPL or GOOG
class Stock(var symbol: String, var price: BigDecimal)

// a network socket
class Socket(val timeout: Int, val linger: Int) {
    override def toString = s"timeout: $timeout, linger: $linger"
}

class Address (
    var street1: String,
    var street2: String,
    var city: String, 
    var state: String
)
 
728x90
๋ฐ˜์‘ํ˜•

'๋ฏธ์‚ฌ์šฉ > 3. ์Šค์นผ๋ผ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์Šค์นผ๋ผ ๋ถ 01  (0) 2023.01.11
๋ฐ˜์‘ํ˜•

์Šค์นผ๋ผ์˜ ๋ง›

์Šค์นผ๋ผ ํŠน์ง•

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

Hello, World

Hello.scala

object Hello expends App {
	println("Hello, World")
}

๋‘ ๊ฐ€์ง€ ์œ ํ˜•์˜ ๋ณ€์ˆ˜

val : ๋ถˆ๋ณ€ ๋ณ€์ˆ˜ - ์ž๋ฐ”์—์„œ final๊ณผ ๊ฐ™์Œ
var : ๊ฐ€๋ณ€ ๋ณ€์ˆ˜ - ํŠน๋ณ„ํ•œ ์ด์œ ๊ฐ€ ์žˆ์„ ๋•Œ๋งŒ ์‚ฌ์šฉ

๋ณ€์ˆ˜ ์œ ํ˜• ์„ ์–ธ

์œ ํ˜•์„ ์„ ์–ธํ•˜์ง€ ์•Š๊ณ  ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ฆ

val x = 1
val s = "string"
val p = new Persion("Regina")

๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ์œ ์ถ”ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ฝ”๋“œ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋Š”๋ฐ ๋„์›€๋จ
์œ ํ˜• ๋ช…์‹œํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ ์ผ๋ฐ˜์ ์œผ๋กœ ํ•„์š”ํ•˜์ง€์•Š์Œ

์ œ์–ด ๊ตฌ์กฐ

if (test1) {
    doA()
} else if (test2) {
    doB()
} else if (test3) {
    doC()
} else {
    doD()
}

์‚ผํ•ญ ์—ฐ์‚ฐ์ž

val x = if (a < b) a else b

match ํ‘œํ˜„์‹

์Šค์นผ๋ผ์—์„œ match๋Š” ์ž๋ฐ”์—์„œ swtich์™€ ์œ ์‚ฌํ•จ

val result = i match {
    case 1 => "one"
    case 2 => "two"
    case _ => "not 1 or 2"
}

์ •์ˆ˜๋กœ๋งŒ ์ œํ•œ๋˜์•Š๊ณ  boolean์„ ํฌํ•จํ•œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์‚ฌ์šฉํ•จ

val booleanAsString = bool match {
    case true => "true"
    case false => "false"
}

try/catch ํ‘œํ˜„์‹

์ž๋ฐ” try/catch์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ match ํ‘œํ˜„์‹๊ณผ ์ผ์น˜ํ•จ

try {
    writeToFile(text)
} catch {
    case fnfe: FileNotFoundException => println(fnfe)
    case ioe: IOException => println(ioe)
}

for loop์™€ ํ‘œํ˜„์‹

for (arg <- args) println(arg)

// "x to y" syntax
for (i <- 0 to 5) println(i)

// "x to y by" syntax
for (i <- 0 to 10 by 2) println(i)

for-loop์— ํ‚ค์›Œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ์‚ฐ์ถœํ•˜๋Š” yeild ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Œ

val x = for (i <- 1 to 5) yield i * 2

while do/while ํ‘œํ˜„์‹

// while loop
while(condition) {
    statement(a)
    statement(b)
}

// do-while
do {
   statement(a)
   statement(b)
} 
while(condition)

ํด๋ž˜์Šค

class Person(var firstName: String, var lastName: String) {
    def printFullName() = println(s"$firstName $lastName")
}
val p = new Person("Julia", "Kern")
println(p.firstName)
p.lastName = "Manes"
p.printFullName()

์Šค์นผ๋ผ ๋ฉ”์„œ๋“œ

๋ฐ˜ํ™˜ ์œ ํ˜• ์„ ์–ธํ•  ํ•„์š” ์—†์Œ

def sum(a: Int, b: Int) = a + b
def concatenate(s1: String, s2: String) = s1 + s2

๋ฉ”์„œ๋“œ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•

def sum(a: Int, b: Int) = a + b
def concatenate(s1: String, s2: String) = s1 + s2

trait

์ถ” ํ›„์— ์ž์„ธํžˆ ๋ด์„œ ์ง€๊ธˆ์€ ๊ทธ๋ƒฅ ๋„˜๊น€

Collection Class

ํŠœํ”Œ

ํ‘œํ˜„์‹์€ ์—ฌ๊ธฐ์„œ ๋Œ€์ถฉ ์ดํ•ดํ•˜๊ณ  ๋„˜๊ธธ๊ฑฐ์ž„

728x90
๋ฐ˜์‘ํ˜•

'๋ฏธ์‚ฌ์šฉ > 3. ์Šค์นผ๋ผ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์Šค์นผ๋ผ ๋ถ 02  (0) 2023.01.11
๋ฐ˜์‘ํ˜•

ํ•˜๋‘ก๊ธฐ์ดˆ

ํ•˜๋‘ก๊ณผ์˜ ๋งŒ๋‚จ

 

๋งต๋ฆฌ๋“€์Šค

๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋‹ค.

๋งต๊ณผ ๋ฆฌ๋“€์Šค

๊ฐ ๋‹จ๊ณ„๋Š” ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์œผ๋กœ ํ‚ค-๊ฐ’ ์Œ

์ž…๋ ฅ - ๋งต - ์…”ํ”Œ - ๋ฆฌ๋“€์Šค - ์ถœ๋ ฅ

๋งต๋ฆฌ๋“€์Šค ์žก - ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์˜ ๊ธฐ๋ณธ ๋‹จ์œ„

์žก - ๋งต ํƒœ์Šคํฌ, ๋ฆฌ๋“€์Šค ํƒœ์Šคํฌ

๊ฐ ํƒœ์Šคํฌ๋Š” YARN์„ ์ด์šฉํ•ด ์Šค์ผ€์ฅด๋ง๋จ

๋งต ํƒœ์Šคํฌ์˜ ๊ฒฐ๊ณผ๋Š” HDFS๊ฐ€ ์•„๋‹Œ ๋กœ์ปฌ์— ์ €์žฅ๋จ

์žก์ด ์™„๋ฃŒ๋œ ํ›„ ๋งต ํƒœ์Šคํฌ์˜ ๊ฒฐ๊ณผ๋Š” ๋ฒ„๋ฆผ

 

 

ํ•˜๋‘ก ๋ถ„์‚ฐ ํŒŒ์ผ์‹œ์Šคํ…œ

๋ถ„์‚ฐํŒŒ์ผ์‹œ์Šคํ…œ - ๋„คํŠธ์›Œํฌ๋กœ ์—ฐ๊ฒฐ๋œ ์—ฌ๋Ÿฌ ๋จธ์‹ ์˜ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํŒŒ์ผ์‹œ์Šคํ…œ

๋„คํŠธ์›Œํฌ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ณต์žก์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ์ตœ๋Œ€ ๋‚œ์ œ๋Š” ํŠน์ • ๋…ธ๋“œ์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ์ž๋ฃŒ๊ฐ€ ์œ ์‹ค๋˜์ง€์•Š์Œ

HDFS์˜ ๊ธฐ๋ณธ๋ธ”๋ก๋‹จ์œ„๋Š” 128MB๋กœ ๊ต‰์žฅํžˆ ํฐ ๋‹จ์œ„ -> ํƒ์ƒ‰ ๋น„์šฉ์„ ์ตœ์†Œํ™” ํ•˜๊ธฐ์œ„ํ•จ

๋ธ”๋ก์ด ๋งค์šฐ ํฌ๋ฉด ๋ธ”๋ก์˜ ์‹œ์ž‘์ ์„ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„ ๋‹จ์ถ• ๊ฐ€๋Šฅ

๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ๋ฐ ๋” ๋งŽ์€ ์‹œ๊ฐ„์„ ํ• ์• ํ•  ์ˆ˜ ์ž‡์Œ

HDFS๋Š” ๋‹จ์ผ ๋””์Šคํฌ๋ฅผ ์œ„ํ•œ ํŒŒ์ผ์‹œ์Šคํ…œ์ฒ˜๋Ÿผ ํŠน์ • ๋ธ”๋ก ํฌ๊ธฐ์˜ ์ฒญํฌ๋กœ ์ชผ๊ฐœ์ง€๊ณ  ๊ฐ ์ฒญํฌ๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ์ €์žฅ

 

YARN

 

ํ•˜๋‘ก I/O

๋ฐ์ดํ„ฐ ์••์ถ• ํฌ๋งท - snappy

์ง๋ ฌํ™” - ๋„คํŠธ์›Œํฌ ์ „์†ก์„ ์œ„ํ•ด ๊ตฌ์กฐํ™”๋œ ๊ฐ์ฒด๋ฅผ ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ์œผ๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ณผ์ •

์—ญ์ง๋ ฌํ™” - ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ์„ ์ผ๋ จ์˜ ๊ตฌ์กฐํ™”๋œ ๊ฐ์ฒด๋กœ ์—ญ์ „ํ™˜ํ•˜๋Š” ๊ณผ์ •

 

๋งต๋ฆฌ๋“€์Šค

๋งต๋ฆฌ๋“€์Šค ํ”„๋กœ๊ทธ๋ž˜๋ฐ

 

๋งต๋ฆฌ๋“€์Šค ์ž‘๋™๋ฐฉ๋ฒ•

 

๋งต๋ฆฌ๋“€์Šค ํƒ€์ž…๊ณผ ํฌ๋งท 

 

๋งต๋ฆฌ๋“€์Šค ๊ธฐ๋Šฅ

 

ํ•˜๋‘ก์šด์˜

ํ•˜๋‘ก ํด๋Ÿฌ์Šคํ„ฐ ์„ค์ •

 

ํ•˜๋‘ก ๊ด€๋ฆฌ

ํŒŒ์ด์‹œ์Šคํ…œใ…์˜ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์“ฐ๊ธฐ ๋™์ž‘(ํŒŒ์ผ ์ƒ์„ฑ์ด๋‚˜ ์ด๋™)์„ ํ•˜๋ฉด ์ผ๋‹จ ์—๋””ํŠธ ๋กœ๊ทธ์— ํ•ด๋‹น ๋‚ด์—ญ์ด ๊ธฐ๋ก๋„ค์ž„๋…ธ๋“œ๋Š” ํŒŒ์ผ์‹œ์Šคํ…œ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ธ๋ฉ”๋ชจ๋ฆฌ๋กœ ๊ด€๋ฆฌํ•˜๋Š”๋ฐ์—ํ‹ฐํŠธ ๋กœ๊ทธ๋ฅผ ๋จผ์ € ๋ณ€๊ฒฝํ•œ ํ›„ ๋ฉ”๋ชจ๋ฆฌ์ƒ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋„ ๋ณ€๊ฒฝํ•จ

 

ํด๋ผ์ด์–ธํŠธ์˜ ์ฝ๊ธฐ ์š”์ฒญ์—๋Š” ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋งŒ ์‚ฌ์šฉํ•œ๋‹ค

 

์—๋””ํŠธ ๋กœ๊ทธ๋Š” ๊ฐœ๋…์ ์œผ๋กœ๋Š” ๋‹จ์ผ ๊ฐœ์ฒด์ง€๋งŒ ๋””์Šคํฌ์—์„œ๋Š” ๋‹ค์ˆ˜์˜ ํŒŒ์ผ๋กœ ๊ด€๋ฆฌ๋จ๊ฐ ํŒŒ์ผ์„ ์„ธ๊ทธ๋จผํŠธ๋ผ๊ณ ํ•จ

 

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

 

๊ฐ๊ฐ์˜ fsimage ๋Š” ํŒŒ์ผ์‹œ์Šคํ…œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์˜ ์™„์ „ํ•˜๊ณ  ์˜์†์ ์ธ ์ฒดํฌํฌ์ธํŠธ์“ฐ๊ธฐ ๋™์ž‘์ด ์žˆ์„ ๋•Œ ๋งˆ๋‹ค fsimage๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€๋Š” ์•Š์Œ -> fsimage๊ฐ€ ๊ธฐ๊ฐ€๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ์ปค์ง€๋ฉด ์„ฑ๋Šฅ์ด ๋งค์šฐ๋Š๋ ค์ง€๊ธฐ ๋•Œ๋ฌธ

 

๋งŒ์•ฝ ๋„ค์ž„๋…ธ๋“œ ์žฅ์•  ๋ฐœ์ƒ ์‹œ-> fsimage ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œํ•˜๊ณ  ์—๋””ํŠธ ๋กœ๊ทธํŒŒ์ผ์—์„œ ํŠน์ • ์ง€์  ์ดํ›„์— ๋ฐœ์ƒํ•œ ๋ณ€๊ฒฝ ๋‚ด์—ญ๋“ค์„ ๋ฉ”๋ชจ๋ฆฌ์— ๋ฐ˜์˜ํ•˜์—ฌ ํŒŒ์ผ์‹œ์Šคํ…œ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ตœ์‹ ์ƒํƒœ๋กœ ๋ณต์›ํ•  ์ˆ˜ ์žˆ๊ณ  ์ด์™€ ๋™์ผํ•œ ๊ณผ์ •์ด ๋„ค์ž„๋…ธ๋“œ ์„œ๋น„์Šค๊ฐ€ ์‹œ์ž‘๋  ๋•Œ ์ˆ˜ํ–‰๋œ๋‹ค.

 

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

 

 

728x90
๋ฐ˜์‘ํ˜•

๋ฐ˜์‘ํ˜•

์Šค์™‘ ๋ฉ”๋ชจ๋ฆฌ ๋„๋Š” ์ด์œ 

- ์Šค์™‘ ๋ฉ”๋ชจ๋ฆฌ? : ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ฐ€๋“์ฐจ๊ณ  ๋” ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ ํ•„์š”ํ•  ๋•Œ, ํ•˜๋“œ๋””์Šคํฌ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์ฒ˜๋Ÿผ ์‚ฌ์šฉ (์†๋„ ๋Š๋ฆผ) (๋””์Šคํฌ๋ฅผ ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ)

์ด์ „ ๋ฆด๋ฆฌ์ฆˆ์—์„œ Kubernetes๋Š” Linux์—์„œ ์Šค์™‘ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์„ ์ง€์›ํ•˜์ง€ ์•Š์Œ. ์Šค์™‘์ด ๊ด€๋ จ๋  ๋•Œ ํฌ๋“œ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋ฅ ์„ ๋ณด์žฅํ•˜๊ณ  ๊ณ ๋ คํ•˜๊ธฐ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. Kubernetes์˜ ์ด์ „ ์„ค๊ณ„์˜ ์ผ๋ถ€๋กœ, ์Šค์™‘ ์ง€์›์€ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜์—ˆ์œผ๋ฉฐ, ๋…ธ๋“œ์—์„œ ์Šค์™‘์ด ๊ฐ์ง€๋˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ฟ ๋ธ”๋ ›์ด ์‹œ์ž‘๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

k8s 1.22 alpha version

๋…ธ๋“œ ์‹œ์Šคํ…œ ์Šค์™‘(swap) ์ง€์›

๋ชจ๋“  ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๋‚˜ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์‚ฌ์šฉ์ž๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•  ๋•Œ ์Šค์™‘ ๊ณต๊ฐ„(space)์„ ๋น„ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋™์ผํ•œ ์ƒํ™ฉ์— ๋†“์—ฌ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค 1.22 ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” ๋…ธ๋“œ์˜ ์Šค์™‘ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค(์•ŒํŒŒ). ์ด ๋ณ€๊ฒฝ์€ ๋ธ”๋ก ์Šคํ† ๋ฆฌ์ง€์˜ ์ผ๋ถ€๋ฅผ ์ถ”๊ฐ€์ ์ธ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋กœ ์ทจ๊ธ‰ํ•˜๋„๋ก, ๊ด€๋ฆฌ์ž์˜ ์˜ตํŠธ์ธ(opt in)์„ ๋ฐ›์•„์„œ ๋ฆฌ๋ˆ…์Šค ๋…ธ๋“œ์— ์Šค์™‘์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค

https://kubernetes.io/blog/2021/08/09/run-nodes-with-swap-alpha/

 

New in Kubernetes v1.22: alpha support for using swap memory

Author: Elana Hashman (Red Hat) The 1.22 release introduced alpha support for configuring swap memory usage for Kubernetes workloads on a per-node basis. In prior releases, Kubernetes did not support the use of swap memory on Linux, as it is difficult to p

kubernetes.io

 

 

728x90
๋ฐ˜์‘ํ˜•

+ Recent posts