4. Oracle VM VirtualBox
• Cross-platform virtualization application
(크로스-플랫폼 가상화 어플리케이션)
• 사용자가 현재 구축해놓은 컴퓨터 환경 위에 다른 OS를 설치할 수 있는 환경을 제공해주는
프로그램
• 가상머신을 통해 여러 OS를 한 시점에 가동할 수 있도록 해줌
• e.g., VirtualBox, VMWare
• VirtualBox
• 오픈소스 소프트웨어
• 가벼우면서도, 필요한 기능은 빠짐없이 제공:
작은 임베디드 시스템부터 데스크톱, 데이터 센터 구축과 클라우드 환경 구성에도 사용가능
• http://www.virtualbox.org/manual/ch01.html#idm26
5. Terminology
• Host OS: VirtualBox가 설치된 OS로, VirtualBox가 사용할 컴퓨터의 물리적 자원을 연결해 줌
• Guest OS: Virtual Machine에서 동작하는 OS로, VirtualBox는 모든 x86 OS를 지원하고, 각
OS의 성능을 지원하기 위한 최적화 기술을 제공
• Virtual Machine (VM, 가상머신): Guest OS를 실행시키기 위한 환경으로, Guest OS는 VM
위에서 실행됨
• Guest OS의 동작을 결정할 파라미터(e.g., 메모리 용량, 하드디스크를 가상화하기 위한 컨테이너 파
일 등)로도 정의할 수 있음
• 참고. Guest Additions: VM에 설치되어 Guest OS의 성능을 향상시키거나 추가 기능을 제공
하기 위한 S/W 패키지
• http://www.virtualbox.org/manual/ch01.html#virtintro
6. Hardware, Software Virtualization
• Virtualization: Guest에서 발생하는 명령어 처리가 Host의 가동 환경에 영향을 주지 않도록(i.e., Guest
내에서 발생하는 처리가 가상 환경 내에서만 이루어지도록) 하는 기술
• Software Virtualization
• VirtualBox과 같은 가상화 지원 S/W 자체에서 지원하는 가상화 기술
• e.g., Guest에서의 하드디스크 접근을 Host의 이미지 파일로의 접근으로 변경
• Hardware Virtualization
• VirtualBox에서 처리해야 하는 "위험한 처리가 될 수 있는" 동작을 프로세서가 지원하는 가상화 처리에서 대신 처
리해주는 기술
• Intel에서는 VT-x로, AMD에서는 AMD-V라는 이름의 기술로 불림
• VirtualBox의 가상화 지원
• 일반적인 대부분의 상황은 VirtualBox가 단독으로도 가상화를 지원할 수 있으나, 그렇지 않은 부분은 H/W 가상화
의 도움을 받아야 함
• 64bit Guest OS 지원과 멀티프로세싱 처리를 위해서는 H/W Virtualization의 지원이 필요
• http://www.virtualbox.org/manual/ch10.html#hwvirt
8. CentOS
• Community Enterprise Operating
System
• Red Hat Enterprise Linux (RHEL)
계열의 리눅스
• CentOS를 비롯, Fedora가 있음
• 기능적으로 RHEL과 100% 호환을
목표
• 기업이 지원하는 RHEL의 환경과
같은 환경을 사용할 수 있음
• 무료이며 자유롭게 재배포
• 커뮤니티에 의해 운영되고 있음
• https://wiki.centos.org/kr/FrontPage?action=show&redirect=kr
• https://danielmiessler.com/study/fedora_redhat_centos/#gs.xa4fDa4
10. Ethernet Interface 설정
• /etc/sysconfig/network-scripts/ifcfg-eth0에 변수 작성
• /etc/udev/rules.d/70-persistent-net.rules의 기존 룰 삭제 또는 주석 처리
• network 서비스 재시작
• 하드웨어 전원 끄기 및 재시작
11. /etc/sysconfig/network-scripts/ifcfg-ethx
• /etc/sysconfig/network-scripts/ifcfg-ethx: x
번 Ethernet 디바이스의 설정정보를 저장하는 파
일
• DEVICE: Ethernet 디바이스의 이름
• HWADDR: MAC 주소
• TYPE: 인터페이스의 종류, {Bridge, Tab}
• ONBOOT: 부팅과 동시에 사용여부
• BOOTPROTO: 프로토콜의 종류, {boot, dhcp}
• IPADDR, NETMASK, GATEWAY: IP 주소, 네트
워크 마스크, 게이트웨이 주소
• ifup/ifdown command: 네트워크 인터페이스
가 ON/OFF하는 명령어
• /etc/sysconfig/network-scripts/ifup-eth:
ifcfg-ethx 파일의 내용을 읽어 시스템에 반영시
키는 코드
• https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/s1-networkscripts-
interfaces.html
• https://docs.oracle.com/cd/E37670_01/E41138/html/ol_about_netconf.html
12. /etc/udev/rules.d/70-persistent-net.rules
• 재부팅을 하면 해당 룰을 새로 읽어들임
• MAC 주소가 새로운 디바이스를 확인하면, 새로
운 네트워크 디바이스명으로 추가됨
• /lib/udev/write_net_rules: 해당 파일을 만드는
코드
• /etc/sysconfig/network-scripts 경로 아래의
"ifcfg-*"파일을 모두 읽어들여
• 70-persistent-net.rules 파일에 기록
• http://yujoonote.tistory.com/20
13. /etc/udev/rules.d/70-persistent-net.rules
• 재부팅을 하면 해당 룰을 새로 읽어들임
• MAC 주소가 새로운 디바이스를 확인하면, 새로
운 네트워크 디바이스명으로 추가됨
• /lib/udev/write_net_rules: 해당 파일을 만드는
코드
• /etc/sysconfig/network-scripts 경로 아래의
"ifcfg-*"파일을 모두 읽어들여
• 70-persistent-net.rules 파일에 기록
• http://yujoonote.tistory.com/20
14. ifcfg-eth0 파일 변경 70-persistent-net.rules 주석 처리
재부팅 및 서비스 재시작 후
70-persistent-net.rules
eth0 인터페이스 확인
15. SSH 프로토콜 설치 및 Putty 접속
• openssh 관련 패키지 설치
• sshd 시작
• chkconfig sshd on
• reboot
• service network restart
• Putty 접속
16. SSH Protocol
• Secure Shell Protocol
• 보안을 보장한 원격 접속 및 접속 중 파일 전송을 위한 프로토콜
• 강력한 인증수단과 통신 간의 보안성을 보장
• 다음의 기술에 보안성을 향상한 대체제로 사용
• Telnet: 원격 접속을 위한 프로토콜로, 내부망에서 사용하기 위한 용도로 만들여서 보안성
이 떨어짐
• FTP: 익명(Anonymous) 계정의 접속과 데이터 전송 간 암호화가 고려되지 않음
• https://www.ssh.com/ssh/protocol/
• Difference Between FTP and SFTP | Difference
Between http://www.differencebetween.net/technology/internet/difference-between-ftp-and-sftp/#ixzz4jc3GlaaX
17. SSH의 보안방법
• 패스워드를 사용한 인증과 공개 키(Public Key)를 사용한 인증방식을 제공
• 패스워드를 사용하는 인증도 자동으로 생성된 공개 키를 사용하게 됨
• Public-key Cryptography(공개 키 인증방식)
• 암호화 방식과 복호화 방식을 분리
• 임호화 방식인 공개 키(Public Key)를 클라이언트에게 주고,
개인 키(Private Key)는 서버가 가짐
• 공개 키를 통해 암호화된 데이터를
클라이언트로부터 전송받으면
서버는 개인 키로 복호화를 수행하여
원 데이터를 복원하는 방식
• https://tools.ietf.org/html/rfc4252
• http://daitso.kds.co.kr/27632/
• http://nakamotoinstitute.org/mempool/crypto-anarchy-and-libertarian-entrepreneurship-2/
18. 명렁어 chkconfig
• chkconfig 명령어는 서비스를 활성화 그리고 비활성화를 하는데 사용하는 명령어로, Linux의
Runlevel에 따라 해당 서비스가 부팅 시 시작할지에 대한 여부를 설정함
• Linux Runlevel: Linux 부팅시 진입하게 되는 환경을 설정하는 변수
(Linux 계열마다 조금씩 다름)
• 0: 정지
• 1: 싱글 유저
• 2: 미사용 (사용자 정의 가능)
• 3: 다중 사용자, 콘솔 로그인
• 4: 미사용 (사용자가 정의 가능)
• 5: 런레벨3 + X디스플레이 매니저
• 6: 재시작
• e.g., chkconfig sshd on: 해당 Runlevel에서 부팅시 sshd 서비스를 실행
• https://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-services-chkconfig.html
20. 호스트 정보 수정 및 기타 매개변수 변경
/etc/hosts, server01, 02, 03 호스트 이름 설정 호스트 이름을 IP 주소로 변경할 수 있도록 설정
/etc/sysconfig/network에 호스트 이름 설정 네트워크 설정정보에 본 머신의 호스트 이름 설정
service network restart
/etc/selinux/config, SELINUX=disabled 보안 강화 커널인 SELinux를 사용 안함
service iptables stop
service ip6tables stop
IPv4, IPv6 방화벽 사용 안함
sysctl –w vm.swappiness=100
/etc/sysctl.conf, vm.swappiness=100
가상 메모리 적극 사용으로 설정 변경 및
재부팅 시에도 값을 고정
/etc/rc.local, /bin/echo never >
/sys/kernel/mm/transparent_hugepage/enabled
Linux 부팅 시,
"대용량 페이지 할당을 하지 않음"으로 설정
/etc/security/limits.conf, root sort nofile 65536,
…
한 시점에 열린 파일 개수와 프로세스 수를 제한
reboot
21. 호스트 정보 수정 및 기타 매개변수 변경
• 파일 /etc/hosts
• DNS 서버 이전에, 호스트명을 IP로 바꿔주기 위해 참조하는 파일
• 호스트 이름: 호스트를 구분해주기 위한 문자 기반의 이름
• e.g., server01.hadoop.com
• 호스트 전역 이름: server01.hadoop.com
• 호스트 지역 이름: server01
• 호스트 도메인 이름: hadoop.com
• https://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-network-config-hosts.html
• https://ko.wikipedia.org/wiki/호스트명
• https://www.centos.org/docs/5/html/5.2/Deployment_Guide/s2-sysconfig-network.html
22. /etc/hosts 파일 설정 /etc/sysconfig/network 파일 설정
네트워크 서비스 재시작 기타 변수 설정
24. Cloudera Manager (CM) 설치 및 접속
• Cloudera Manager 설치파일 다운로드 및 설치
• Windows hosts 파일 설정
25. Cloudera
• 머신 러닝과 데이터 분석을 위한 플랫폼 구축을 지원하는 회사
• 창립자 중 한 명이 Hadoop의 공동창립자인 더그 커닝
• Cloudera Manager를 통해 Hadoop 기반의 구축(CDH)과 관리를 원활히 할
수 있도록 해줌
• https://www.cloudera.com/documentation/enterprise/latest/topics/introduction.html
26. Cloudera Manager (CM)
• CDH 클러스터를 관리하기 위한 End-to-end 어플
리케이션
• End-to-end 어플리케이션: A term that suggests
that the supplier of an application program or
system will provide all the hardware and/or
software components and resources to meet
the customer's requirement and no other
supplier need be involved.
• CDH 클러스터 구축을 용이하게 해줌
• CDH 클러스터의 상태의 세밀한 수준의 관리 지원
• 환경 설정의 배포를 용이
• 리포팅 기능과 진단 툴을 제공
• https://www.cloudera.com/documentation/enterprise/latest/topics/cm_intro_primer.html#xd_583c10bfdbd326ba-
3ca24a24-13d80143249--7f7c
27. CM 다운로드 chmod를 통한 CM 접근권한 설정
CM 설치 Windows hosts 파일에 호스트명 추가
28. CDH 클러스터 구성
• CM에 admin으로 로그인
• 클러스터 구성 호스트 설정
• Cloudera-scm-agent 설치
• Cloudera Parcels 설치
• Parcel: Parcels are self-contained and installed in a versioned directory, which
means that multiple versions of a given parcel can be installed side-by-side. You
can then designate one of these installed versions as the active one. With
packages, only one package can be installed at a time so there is no distinction
between what is installed and what is active.
• CDH 서비스의 호스트 별 역할 설정
• https://www.cloudera.com/documentation/enterprise/5-7-x/topics/cm_ig_parcels.html
HOSTNAME=<value>, where <value> should be the Fully Qualified Domain Name (FQDN), such as hostname.expample.com, but can be whatever hostname is necessary.