λΉ λ°μ΄ν° μ μ₯μ
cap μ΄λ‘
β μΌκ΄μ±(Consistency) : λͺ¨λ λ Έλλ λμΌ μμ μ λμΌ λ°μ΄ν° μΆλ ₯μ΄ λ³΄μ₯
β κ°μ©μ±(Availability) : λ Έκ·Έκ° μ΄μ© λΆκ°λ₯ν΄λ λ€λ₯Έ λ Έλ μ μ μλ 보μ₯
β μ§μμ±(Parttition Tolerance) : λ°μ΄ν° μμ€μ΄ λ°μν΄λ μμ€ν μ μ μλ 보μ₯ (RDBMSλ μ§μμ±μ νκ³κ° μλ€.)
β λ Έλλ? : λΉ λ°μ΄ν° μ²λ¦¬ λ° λΆμμ μν μ»΄ν¨ν μμμ μ 곡νλ μ»΄ν¨ν μ₯λΉμ λλ€.
RDBMSμ λμ
β νλ‘(Hadoop) : νλ‘ λΆμ°νμΌ μμ€ν (HDFS) , λμ©λ λ°μ΄ν° μ²λ¦¬μ μ©μ΄νλ€
β NoSQL : λΉκ΄κ³ν λ°μ΄ν° μ μ₯μ , λ°μ΄ν°μ μμ€μ λμ² κ°λ₯νλ€
β λ λμ€(Redis) : NoSQLμ μΌμ’ μ΄λ©° key-value ꡬ쑰 μ μ₯μ, μΈλ©λͺ¨λ¦¬ μ μ₯μ ꡬ쑰
β μ°μ§(Oozie) : μλ° μλΈλ¦Ώ 컨ν μ΄λ κΈ°λ° μμ μμ§, DAG νν κΈ°λ° μμ (job)μ μ΄
νλ‘ λΆμ° νμΌ μμ€ν (HDFS)
ꡬμ±μμ
β λ€μλ Έλ μλ² : νμΌμ μμΉ(iNode), λ©νμ 보 κ΄λ¦¬, ν΄λΌμ΄μΈνΈ μμ²
β 보쑰 λ€μλ Έλ μλ² : λ€μλ Έλ μλ²μ λ°±μ μν , νμΌ μμ€ν 볡ꡬ
β λ°μ΄ν° λ Έλ μλ² : κ³ μ λ ν¬κΈ°μ λΈλ‘ λ¨μλ‘ λ°μ΄ν°λ₯Ό λλμ΄ μ μ₯
NoSQL(Not-Only-SQL)
λ°μ΄ν° λͺ¨λΈλ³ λΆλ₯
β ν€λ°Έλ₯(Keyvalue) : νΉμ κ°μ κ³ μ ν€μ λμνμ¬ μ€ν€λ§ μμ΄ λ°μ΄ν°λ₯Ό μ μ₯νλ μ ν
β μμ°¨μ ν€λ°Έλ₯(Ordered KeyValue) : ν€λ°Έλ₯ μμ μμ°¨μ μΌλ‘ μ μ₯, μ°μμ±μ λΆμ¬ν¨μΌλ‘μ¨ μμ μ€μΊ ν¨μ¨μ λμ¬μ€
β λΉ ν μ΄λΈ(BigTable) : ν μ΄λΈ νμ(Tabular), 2~3λ¨κ³κΉμ§ μ¬κ·μ ꡬ쑰 (ν μ΄λΈμ λ΄λΆμ λ°μ΄ν°κ° μκΈ° μμ μ μ΄λ ν λΆλΆμ κ°λ¦¬ν€λ κ²)νμ± κ°λ₯
β λνλ¨ΌνΈ(Document): κ°μ²΄ λ°μ΄ν°λ² μ΄μ€(ODBMS)μ νμν, λ°μ΄ν° ꡬ쑰 κΉμ΄μ μ ν μμ
β κ·Έλν(Graph): κ°λ³μ μΈ λ°μ΄ν° λ Έλ κ° μ°κ²° ꡬ쑰, μ μ½μλ κ΄κ³ νμ± κ°λ₯
μμ€ν ꡬμ±
β€ λ§μ€ν°-μ¬λ μ΄λΈ(Master-Slave)
- λ§μ€ν° λ Έλκ° μ¬λ μ΄λΈ/λ°μ΄ν°μ λ©ν μ 보 κ΄λ¦¬
- μλ²μΆκ°/μμ μμ μ μ©μ΄
- λ§μ€ν°μ λΆν μ¦κ°
β€ λΌμ΄λ ν μ΄λΈ(Round Table)
- ν΄μν μ΄λΈ(HashTable)κΈ°λ° κ΅¬μ‘°
- λ§μ€ν° λ Έλ μμ -> νΈλν½ λΆμ° μ©μ΄
- λ©€λ² λ Έλ μΆκ°/μμ μ λ°μ΄ν° μ΄λ -> νΈλν½ μ¦κ°
νλ‘ λͺ λ Ήμ΄
ls : νμΌ(ν΄λ) μ‘°ν -> νμΌ(ν΄λλ₯Ό) μ‘°ννλ λͺ λ Ήμ΄
hadoop fs -ls /
# hadoop fs -λ hadoopμΌλ‘ κ²μνκ² λ€
# ls / λ '/'λΌλ κ³³μ μλ νμΌμ μ‘°ννκ² λ€
put : νμΌ μ¬λ¦¬κΈ° -> λ‘컬 νμΌμ HDFSμ μ μ₯νλ λͺ λ Ήμ΄
hadoop fs -put hello.txt h_hello.txt
# hello.txt : λ΄ μ»΄ν¨ν°μ μλ νμΌλͺ
# h_hello.txt : νλ‘μ μ μ₯ν νμΌλͺ
get : νμΌ κ°μ Έμ€κΈ° -> HDFSμ νμΌμ λ‘μ»¬λ‘ κ°μ Έμ€λ λͺ λ Ήμ΄
hadoop fs -get h_bye.txt bye.txt
# h_bye.txt : νλ‘μ μ μ₯ν νμΌλͺ
# bye.txt : λ΄ μ»΄ν¨ν°μ μλ νμΌλͺ
cp : νμΌ λ³΅μ¬νκΈ° -> HDFSμ νμΌμ HDFSμμμ 볡μ¬
hadoop fs -cp test1.txt test2.txt
rm : νμΌ μμ νκΈ° -> HDFSμ νμΌμ μμ νκΈ°
hadoop fs -rm test2.txt
chmod : κΆν λ³κ²½ -> HDFSμμ νμΌμ κΆνμ λ³κ²½
hadoop fs -chmod 700 test.txt
chown : μμ κΆ λ³κ²½ -> HDFSμμ νμΌμ μμ κΆμ λ³κ²½
hadoop fs -chown recorder test.txt
# recorder : μμ μ
MongoDB(λͺ½κ³ DB)
νΉμ§
β€ λ¬Έμ μ§ν₯ λ°μ΄ν°λ² μ΄μ€
- λ¬Έμ(document)μ λ°°μ΄(array)μ κ°λ λμ
- 볡μ‘ν κ³μΈ΅ κ΄κ³λ₯Ό νλμ λ μ½λλ‘ νν κ°λ₯
- NoSQL λ°μ΄ν°λ² μ΄μ€
β€ λλΈ λ§ν¬λ 리μ€ν¬ ꡬ쑰 : λ°μ΄ν°μ μλ°©ν₯-μλ°©ν₯ νμ κ°λ₯
μ£Όμ κ°λ
λ°μ΄ν°λ² μ΄μ€(Database) : 컬λ μ μ λ Όλ¦¬μ /물리μ μΈ μ§ν©
컬λ μ (Collection) : ꡬ쑰μ /κ°λ μ μΌλ‘ μ μ¬ν λνλ¨ΌνΈμ μ§ν©
μ΅μ€ν νΈ(Extent) : λ°μ΄ν° μ μ₯μ μν λ Όλ¦¬ λ¨μ
λνλ¨ΌνΈ(Document) : μ λ ¬λ ν€(Key)-κ°(Value)μ μ§ν©
λͺ½κ³ DBλͺ λ Ήμ΄
use : λ°μ΄ν°λ² μ΄μ€λ₯Ό μμ±(μ¬μ©)νλ λͺ λ Ή
use mydatabase
# mydatabaseλΌλ λ°μ΄ν°λ² μ΄μ€λ₯Ό μμ±νλ€.
# μ΄λ―Έ μλ€λ©΄ μ¬μ©νλ€.
dropDatabase() : νμ¬ μ¬μ©νλ λ°μ΄ν°λ² μ΄μ€λ₯Ό μμ
db.dropDatabase()
# μ¬μ©μ€μΈ λ°μ΄ν°λ² μ΄μ€λ₯Ό μμ νλ€.
createCollection() : 컬λ μ μ μμ±(μ¬μ©)νλ λͺ λ Ή
db.createCollection("test")
{"ok" : 1 } --> μμ± ν λμ€λ λ©μΈμ§
# test :μμ±νκ³ μ νλ 컬λ μ
drop() : 컬λ μ μ μμ νλ λͺ λ Ή
db.test.drop()
# test 컬λ μ
μ μμ νλ€
insert() : λνλ¨ΌνΈλ₯Ό μΆκ°νλ λͺ λ Ή
db.test.insert(
{"title":"hello", "author":"recorder"}
{"title":"bye", "author":"bboong"}
# μ±κ³΅μ μΌλ‘ μ½μ
μ
BulkWriteResult({
"writeErrors" : [ ],
"writeConcernErrors" : [ ],
"nInserted" : 2,
"nUpserted" : 0,
...
remove() : λνλ¨ΌνΈλ₯Ό μ κ±°νλ λͺ λ Ή
db.test.remove({"title": "hello"})
# μ€ν μ±κ³΅μ μΆλ ₯
{"_id" ObjectId("..."),
"title" : "hello", "author" : "recorder"}
'π» IT > λΉ λ°μ΄ν°' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λΉ λ°μ΄ν° λΆμ λꡬ R (3) (1) | 2024.04.20 |
---|---|
λΉ λ°μ΄ν° λΆμ λꡬ R (2) (1) | 2024.04.20 |
λΉ λ°μ΄ν° λΆμ λꡬ R (1) (0) | 2024.04.19 |
λΉ λ°μ΄ν°μ μμ§ (0) | 2024.04.17 |
λΉ λ°μ΄ν°μ κ°λ (0) | 2024.04.17 |