클라우드

열공하는웅2·2025년 10월 31일

클라우드

목록 보기
2/13
post-thumbnail

owncloud 실습마무리

Add Group + rocky(users), win7(users,managed)

사용자 추가 admin:owncloud, users: rocky, win7


disk quota 500MB

10, 10mb

settings


All files -> owncloud 폴더 생성

다음 문제를 해결하기 위해서,

/var/www/owncloud/config/config.php

array (
0 => 'localhost','192.168.100.180', // localhost에 추가로 다음과 같이 IP 설정
),

'overwrite.cli.url' => 'http://localhost','http://192.168.100.180/owncloud',

링크로도 들어갈 수 있음.

이런식으로 클라우드 서비스

히스토리 정리

앞에 php 서버도 실행
systemctl start apache2 => 웹 서버 구동
198 systemctl start mysql => mysql 구동
199 ufw allow 80/tcp => http 방화벽 허용
201 netstat -nltp |grep LISTEN => 확인
202 ufw allow 3306/tcp => mysql 방화벽 허용
203 netstat -nltp |grep LISTEN
204 mysql -u root -p => sql 접속
설정 후
208 systemctl restart mysql
209 nano -c /var/www/owncloud/config/config.php
=> own 클라우드 설정파일.
210 sudo systemctl restart apache2



📘 Hadoop 서버 개요

  • Hadoop은 클라우드 환경에서 사용되는 분산 파일 시스템(HDFS: Hadoop Distributed File System) 을 기반으로 한다.

  • HDFS는 데이터를 여러 노드에 분산 저장하여, 사용자가 가까운 위치의 노드에서 데이터를 빠르게 사용할 수 있도록 지원한다.
    → 이러한 개념은 CDN(Contents Delivery Network) 과 유사하다.

  • Hadoop과 관련된 여러 서비스들을 묶어 Hadoop EcoSystem이라고 부르며,
    주요 구성요소로는 ZooKeeper, Avro, Chukwa, Flume, Pig, Hive, HBase, Sqoop, Impala, Woozie 등이 있다.

  • Hadoop은 클라우드와 같은 분산 파일 시스템에서 다음과 같은 다양한 작업을 수행한다:

    • Hive: 데이터베이스 처리
    • Mahout: 머신러닝(ML) 처리
    • Sqoop: 데이터베이스와 DFS 간의 연결 및 데이터 이동

요약하면:

Hadoop 서버 = 클라우드 환경에서 데이터를 분산 저장하고 병렬 처리하기 위한 오픈소스 플랫폼
(HDFS + 여러 도구로 구성된 EcoSystem 구조)


📘 Hadoop 분산 파일 시스템(DFS)

  • DFS(Distributed File System) 이란 하나의 데이터를 일정한 크기로 나누어 여러 노드에 분산 저장하는 시스템이다.
  • 데이터는 최대 3곳에 복제되어 저장되며, 사용자가 가까운 노드에서 데이터를 사용할 수 있어 처리 속도와 접근성이 높다.
  • 이러한 구조는 사용자의 위치에 따라 가까운 서버에서 데이터를 제공하는 CDN(Contents Delivery Network) 과 유사하다.

⚙️ Hadoop의 구조

  • Hadoop은 데이터를 저장하는 Data Node(클라이언트) 와 이를 관리·통제하는 Name Node(서버) 로 구성된다.
  • Name Node는 파일의 메타데이터(파일 이름, 크기, 위치 등)를 저장하고,
    Data Node는 실제 데이터를 저장한다.
  • Data Node는 저장 공간과 메모리 용량이 충분해야 하며, 파일은 Java 기반 <키:값> 형태의 JSON 포맷으로 저장된다.

🔄 MapReduce 처리 과정

  1. Map 단계:
    각 Data Node에 저장된 데이터를 분리(map)하여 병렬로 처리한다.
  2. Reduce 단계:
    Map 단계의 결과를 합쳐(reduce) 새로운 형태의 데이터로 변환한다.

👉 이러한 병렬 처리 덕분에 Hadoop은 매우 빠른 데이터 처리 속도를 가진다.
Map 과정이 끝난 뒤 Reduce 과정이 실행된다.


🧩 RDBMS와 NoSQL 비교

구분RDBMS (MySQL, Oracle, MSSQL 등)NoSQL (MongoDB, Cassandra 등)
데이터 구조스키마(Schema)를 지정해야 함 (이름, 타입, 크기 정의 필요)스키마 지정 없이 <키:값> 형태로 저장
데이터 저장 형태정형 데이터 중심비정형 데이터(문서, 동영상, 이미지 등)도 저장 가능
유형 예시관계형 테이블 기반JSON 기반 문서 저장
사용 예시고객 정보, 거래 내역 등 구조화된 데이터SNS 게시글, 로그, 이미지, 동영상 등 비정형 데이터

💡 핵심 요약

  • Hadoop은 데이터를 분산 저장하고, 병렬 처리(MapReduce) 를 통해 대규모 데이터를 빠르게 분석한다.
  • RDBMS는 구조화된 데이터에 적합하며, NoSQL은 유연하고 다양한 형태의 데이터를 저장하는 데 유리하다.

📘 Hadoop 핵심 정리

  • 데이터 구조:

    • Hadoop은 데이터를 <키:값> 형태로 구성한다.

⚙️ 클라우드 내 역할 구분

역할설명
NameNode (서버 역할)데이터의 키(메타데이터) 만 저장한다. (작은 용량으로 가능)
DataNode (클라이언트 역할)실제 데이터를 분산 저장한다. (큰 용량 필요)

🌐 Hadoop의 동작 방식

  • NameNode는 사용자의 근처에서 데이터를 효율적으로 배치시키는 CDN 역할을 수행한다.
    사용자가 특정 데이터를 요청하면 NameNode가 각 DataNode에 분산된 데이터를 찾아 Mapping 과정을 수행한다.
  • 이후 MapReduce 과정에서 각 노드에 분산된 데이터를 Map 단계에서 나누고,
    Reduce 단계에서 데이터를 메모리로 불러와 병합(결합) 하여 빠르게 처리한다.

🔄 데이터 처리 및 복구

  • 데이터를 일정한 크기(chunk size)로 쪼개어 여러 노드에 분산 저장한다.
  • 만약 일부 노드에 장애가 발생해도 다른 노드에 복제본이 존재하므로 데이터 손실 없이 복구 가능하다.

🧩 클라우드 내 비유

  • NameNode는 클라우드 환경에서 Docker Swarm이나 Kubernetes의 마스터 노드와 같은 역할을 수행하며,
    전체 Hadoop 네트워크의 통제와 스케줄링을 담당한다.
  • DataNode는 실제 데이터를 저장하는 Docker Container 또는 Kubernetes Pod처럼 작동한다고 볼 수 있다.

💡 핵심 요약

Hadoop은 <키:값> 구조 기반의 분산 파일 시스템으로,
NameNode가 데이터의 위치와 메타데이터를 관리하고,
DataNode가 실제 데이터를 분산 저장한다.
MapReduce를 통해 데이터를 병렬 처리하며, 장애 발생 시에도 안정적으로 복구 가능한 클라우드형 분산 처리 시스템이다.


Hadoop 실습

ubuntu에서 hduser 사용자를 생성해본다.

adduser hduser → pw : hduser

echo "hduser ALL=(ALL) ALL" >> /etc/sudoers
sudoers 파일에 가입 => 모든 권한 허용 (sudo가능 )

sudo apt update를 통해 update를 진행해준다.

sudo apt -y install default-jdk

#JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=PATH:PATH:JAVA_HOME/bin

deb https://ppa.launchpadcontent.net/ondrej/php/ubuntu focal main
#deb-src https://ppa.launchpadcontent.net/ondrej/php/ubuntu focal main

참고: myisam => mysql을 움직이는 엔진

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4f4ea0aae5267a6c

sudo apt -y install apache2
sudo apt -y install mysql-server

sudo service mysql start && sudo service apache2 start

sudo chmod 755 -R /home/

sudo apt -y install net-tools // netstat 과 같은 명령어 사용에 필요

sudo apt -y install ssh

sudo ufw disable

//원래는 개별적으로 필요한 서비스에 한해 열어주는 것이 좋음

ssh-keygen -t rsa -P "” // 키 생성

hduser/.ssh 디렉터리에 존재하는 파일들을 확인해본다.

cat .ssh/id_rsa.pub >> .ssh/authorized_keys

명령어를 통해 authorized_keys를 생성

chmod +x .ssh/authorized_keys

이후 ssh hduser@ubuntu18-1 명령어를 통해 ssh 연결을 시도해보면

키가 존재하기 때문에 크레덴셜 인증 없이 키를 통해 로그인이 되는

모습을 확인할 수 있다.

wget https://archive.apache.org/dist/hadoop/core/hadoop-1.2.0/hadoop-1.2.0.tar.gz

// hadoop 다운로드 실습 안정성을 위해 1버전을 다운로드


📘 Hadoop 동작 모드 정리

  • Single Mode Hadoop (단일 모드)

    • 하나의 머신(컴퓨터) 안에서 NameNode(서버)DataNode(클라이언트) 역할을 동시에 수행하는 형태이다.
    • 주로 개인 학습용 또는 테스트 환경에서 사용된다.
  • Multi Mode Hadoop (다중 모드)

    • 여러 대의 컴퓨터에 분산되어,

      • 하나 이상의 NameNode 서버
      • 여러 개의 DataNode 클라이언트
        를 구성하는 방식이다.
    • 실제 운영 환경(Production) 에서는 대부분 Multi Mode를 사용한다.


⚙️ 구성 방식

  • 먼저 Single Mode로 Hadoop 환경을 구축한 후,
    이를 여러 노드로 복제하고 설정을 분리하여 Multi Mode 클러스터를 구성한다.

💡 요약

Hadoop은

  • 단일 머신에서 동작하는 Single Mode
  • 여러 노드가 협력하는 Multi Mode
    두 가지 형태로 구성할 수 있으며,
    실무에서는 Multi Mode 클러스터 환경이 일반적으로 사용된다.

sudo tar xvfz hadoop-1.20.tar.gz -C /usr/local

7 sudo apt -y install apache2
8 sudo rm -f /var/lib/dpkg/lock-frontend
9 sudo dpkg --configure -a
10 sudo apt -y install apache2
11* sudo apt -y install libapache2-mod-php7.2 openssl php-imagick php7.2–common php7.2-curl php7.2-gd php7.2-imap php7.2-intl php7.2-json php7.2-ldap php7.2- mbstring php7.2-mysql php7.2-pgsql php-smbclient php-ssh2 php7.2-sqlite3 php7.2 -xml php7.2-zip --fix-missing
12 sudo apt -y install libapache2-mod-php7.2 openssl php-imagick php7.2-common php7.2-curl php7.2-gd php7.2-imap php7.2-intl php7.2-json php7.2-ldap php7.2-mbstring php7.2-mysql php7.2-pgsql php-smbclient php-ssh2 php7.2-sqlite3 php7.2-xml php7.2-zip --fix-missing
13 sudo apt -y install mysql-server
14 sudo service mysql start && sudo service apache2 start
15 sudo chmod 755 -R /home/
16 php -v
17 apache2 -v
18 mysql -V
19 sudo apy -y install net-tools
20 sudo apt -y install net-tools
21 netstat -nltp |grep LISTEN
22 sudo apt -y install ssh
23 sudo ufw disable
24 ssh-keygen -t rsa -P ""
25 ls -al /home/hduser/.ssh
26 cd /home/hduser/
27 ls
28 ls -a
29 cat .ssh/id_rsa.pub >> .ssh/authorized_keys
30 ls -a .ssh/
31 cat -a .ssh/
32 cat .ssh/authorized_keys
33 chmod +x .ssh/authorized_keys
34 ssh hduser@ubuntu18-1
35 wget http://archive.apache.org/dist/hadoop/core/hadoop-1.2.0/hadoop-1.2.0.tar.gz
36 sudo tar xvfz hadoop-1.20.tar.gz -C /usr/local
37 sudo tar xvfz hadoop-1.20.tar.gz -C /usr/local/
38 sudo tar xvfz hadoop-1.2.0.tar.gz -C /usr/local/
39 ls /usr/local/
40 sudo mv /usr/local/hadoop-1.2.0 /usr/local/hadoop
41 ls /usr/local/
42 sudo chmod 777 -R /usr/local/hadoop/
43 sudo chown hduser:hduser -R /usr/local/hadoop/
44 ls -dl /usr/local/hadoop/
45 sudo nano ~/.bashrc
46 source ~/.bashrc
47 echo $HADOOP_HOME
48 echo $PATH
49 LS $HADOOP_HOME/bin
50 ls $HADOOP_HOME/bin
51 ls $HADOOP_HOME/sbin
52 hadoop version
53 cd $HADOOP_HOME/conf && ls


core-site.xml

fs.default.name hdfs://localhost:9000 hadoop.tmp.dir /usr/local/hadoop/tmp

mapred-site.xml

hdfs-site.xml


📘 HDFS와 Hadoop 데이터 처리 개념 정리

  • HDFS(Hadoop Distributed File System) 은 데이터를 로컬 Ubuntu 호스트에서 Hadoop 클러스터(DataNode) 로 업로드하거나,
    반대로 Hadoop 클러스터에 저장된 데이터를 로컬 호스트로 내려받는 역할을 한다.

  • HDFS는 데이터를 분산 저장하고, Mapping(매핑)Reducing(리듀싱) 과정을 통해 데이터를 처리한다.

    • 예를 들어, WordCount 같은 MapReduce 작업은 대용량 데이터를 여러 노드에서 병렬로 분석해 빠르게 결과를 산출한다.
  • Hadoop 작업은 GitHub, ownCloud 등 외부 저장소에서 내려받아 클러스터 내 노드들이 병렬로 작업을 수행한 뒤,
    결과를 다시 통합하여 새로운 데이터 세트를 생성하는 구조다.


⚙️ Hadoop 내부 구조와 데이터 처리 방식

  • NameNode (마스터 노드)

    • 데이터의 메타데이터(key:value) 정보를 관리한다.
    • 예: JSON, Python의 dictionary, MongoDB, XML 구조처럼 키와 값의 형태로 저장.
    • 사용자가 요청한 데이터를 분할(Mapping)하고, 분산 저장된 데이터를 모아 결과를 합치는 역할을 함.
    • 데이터의 위치, 상태를 관리하고 문제가 발생하면 복구를 담당한다.
  • DataNode (슬레이브 노드)

    • 실제 데이터를 저장하고 처리한다.
    • NameNode의 지시에 따라 데이터를 나누거나(Map), 재결합(Reduce)하여 새로운 데이터로 만든다.
    • 각 노드에서 데이터를 메모리에 로드해 병렬 처리하기 때문에 대규모 데이터 작업을 빠르게 수행할 수 있다.

🧩 Hadoop JobTracker & TaskTracker

구성요소역할
JobTracker (마스터)전체 클러스터의 MapReduce 작업을 관리하고, 각 노드에 작업을 분배
TaskTracker (슬레이브)각 DataNode에서 실제 Map, Reduce 작업을 실행하고 상태를 JobTracker에 보고
  • JobTracker는 NameNode처럼 중앙에서 작업을 제어하며,
    TaskTracker는 DataNode처럼 실제 연산을 수행한다.
  • JobTracker가 TaskTracker로부터 작업 진행 상황을 주기적으로 모니터링하며,
    실패 시 해당 작업을 다른 노드로 재할당한다.

💡 핵심 요약

Hadoop은 HDFS를 이용해 데이터를 분산 저장하고,
MapReduce 구조(JobTracker ↔ TaskTracker) 로 병렬 처리함으로써
대용량 데이터를 빠르게 분석할 수 있는 분산 컴퓨팅 시스템이다.

jar => java 실행 파일.

chunk 사이즈가 일정한 이유


📘 Multi Mode Hadoop 정리

  • Multi mode Hadoop
    Single mode Hadoop 환경을 여러 개 복제하여
    각 노드를 독립된 머신(또는 가상 머신)으로 구성하고
    이들을 네트워크로 연결해 분산 처리 환경을 구축한 형태이다.

⚙️ 구성 개념

  1. 먼저 Single mode Hadoop(즉, 하나의 머신에 NameNode와 DataNode가 함께 있는 환경)을 만든다.

  2. 이 환경을 복제하여 여러 노드로 분산시킨다.

    • 예: master(=NameNode) 1대 + slave(=DataNode) 여러 대
  3. 클러스터 내부에서 NameNode가 JobTracker처럼 작업을 분배하고,
    DataNode(TaskTracker)는 실제 연산을 수행한다.


💡 개념적 비교

이 개념은 Docker Swarm이나 Kubernetes(K8s) 와 유사하다.
이들 또한

“기본 머신(컨테이너 혹은 노드)을 하나 생성한 뒤,
이를 복제해 여러 개의 머신(노드)으로 확장하는 구조”
를 사용한다.


정리 문장

Multi Mode Hadoop은 Single Mode 환경을 여러 노드로 복제해
분산 처리 환경을 구축하는 구조이며,
Docker Swarm이나 Kubernetes의 노드 확장 원리와 동일한 기본 개념을 가진다.


멀티실습

클론 2개

hostname
networkinterfaces 설정
hosts 설정

windows server에 가서
그리고 superPutty를 켜서 진행

마스터만 들어올 수 있음.

slave2-> master

master-> slave1

이제 마스터와 슬레이브에서 지정으로

localhost->ubuntu18-1

localhost->ubuntu18-1

1->3

master이기 때문에 datanode는 안보임.

Slave이기 때문에 보이는 환경이 다름.

Slave2도 마찬가지

master를 제외한 slave2개 == Live Nodes

log를 가지고 있음.

작업 로그


📘 Multi Mode Hadoop & HDFS 활용 개념 정리

  • Multi Mode Hadoop을 구축하면 비로소 HDFS(Hadoop Distributed File System)정상적으로 분산 환경에서 사용할 수 있다.

    • 단일 모드(Single Mode)는 하나의 머신에 모든 서비스가 몰려 있기 때문에 HDFS의 분산 저장 성능을 제대로 체감하기 어렵다.
    • 하지만 Multi Mode에서는 여러 DataNode에 데이터를 나누어 저장하고,
      각 노드가 병렬로 작업을 수행하므로 진정한 분산 파일 시스템 구조가 완성된다.

⚙️ Master(Node)에서의 설정

  • Master 노드에는 주로 아래와 같은 서비스나 분석 도구를 설정한다:

    • DBMS: MySQL, MS SQL, Oracle 등 RDBMS
    • NoSQL: Cassandra, HBase, MongoDB 등
    • 이들을 연동하여 Hadoop 데이터에 SQL 쿼리를 수행하거나,
      분산 저장된 데이터를 효율적으로 검색·처리할 수 있다.

📊 데이터 분석 환경 통합

  • Python / R 환경을 추가로 구성하면,

    • HDFS에 저장된 데이터를 직접 분석하거나
    • MapReduce와 연계해 Big Data 분석 작업을 수행할 수 있다.
  • 예를 들어,

    • DataNode에 분산된 데이터 저장
    • NameNode(master)에서 SQL 쿼리 또는 Python 분석 스크립트를 실행
    • 각 DataNode가 병렬로 데이터를 처리 → 결과를 다시 master로 집계

⚡ 요약

Multi Mode Hadoop 환경에서는
HDFS 분산 저장 + SQL/NoSQL + Python/R 분석을 결합해
DataNode들이 병렬로 데이터를 처리하고,
Master가 이를 통합함으로써 고속 대용량 데이터 분석이 가능하다.

profile
훌륭한 it 엔지니어 꿈나무

0개의 댓글