'Cloud Service'에 해당되는 글 10건

  1. 2016.05.10 Hadoop과 Kerberos 3
  2. 2016.05.09 CentOS6.6환경 Kerberos 설치 및 HDFS 연동 1
  3. 2016.05.09 Kerberos란?
  4. 2016.05.02 HDFS 권한 분석
  5. 2015.09.10 OpenStack 파헤치기
  6. 2015.08.28 데이터 과학이란?
  7. 2015.07.03 CentOS Minimal 리눅스 서버
  8. 2015.07.03 Oracle VirtualBox 이미지 생성
  9. 2015.04.23 Cloud 사용 기술들 정리
  10. 2015.04.13 Cloud 서비스



전체적인 하둡 커버로스 동작의 주요 단계는 다음과 같다.

- 모든 하둡 서비스는 KDC에 자신을 인증하고, 데이터노드를 네임노드에 등록한다. 이와 유사하게 태스크트래커도 잡트래커에 자신을 등록하고 노드매니저는 리소스 매니저에 등록한다?

- 클라이언트는 KDC에 인증한다. 클라이언트는 네임노드와 잡 트래커/리소스 매니저에 대한 서비스 티켓을 요청한다.

- HDFS내의 파일 접근을 위해 클라이언트는 네임노드 서버에 접속하고 파일을 요청한다. 네임 노드서버에 접속하고 파일을 요청한다. 네임노드는 클라이언트를 인증한 후, 블록 접근 토큰으로 클라이언트에게 인증정보를 제공한다. 데이터노드는 사용자에게블록 접근 토큰을 요청해서 클라이언트의 권한을 확인하고 요청한 블록에 대한 접근을 제공한다.

- 하둡 클러스터에 맵리듀스 잡을 제출하기전에, 잡 트래커는 클라이언트에게 위임 토큰을 요청한다. 이 위임 토큰은 클러스터에 맵리듀스잡을 제출할 때 이용된다. 잡트래커는 긴 시간 수행되는 잡을 위해 위임 토큰을 갱신한다.



'Cloud Service > Kerberos' 카테고리의 다른 글

CentOS6.6환경 Kerberos 설치 및 HDFS 연동  (1) 2016.05.09
Kerberos란?  (0) 2016.05.09
Posted by MIDDLE
,

리눅스는 쥐뿔도 모르지만.. Kerberos 설치를 시도해보겠습니다.


http://web.mit.edu/Kerberos/krb5-latest/doc/admin/install_kdc.html

CentOS 6에 MIT에서 docu로 제공되는 installation guide를 따라 설치를 진행해보겠습니다.


시작부터 Master KDC와 Slave KDCs를 가져야 된다고 하는데 저는 

Master KDC용 VM 하나와 Slave KDC용 VM 하나를 이용하여 제작하겠습니다.


주의 사항 

1. Kerberos system은 시간정보에 의존적이기 때문에 정확한 시간 정보가 필요하다. 

즉 Master와 Slave의 시간은 동기화가 되어져야 한다.


2. 설치및 액세스 보안을 KDC를 통하여 실행하는 것이 좋습니다. KDC는 파일서버, FTP서버, 웹서버 클라이언트, Kerberos 데이터베이스에 액세스할 수 있는 지역에 보안을 설정 할 수 있습니다.


3. Kerberos는 네임노드및 모든 데이터 노드에도 설치가 되어야 한다.

Master KDC 설치 및 설정

Kerberos 설치는 OS에 맞춰 제공되어지는 패키지를 통해 설치하여야 한다.


Kerberos 설치는 다음과 같은 과정으로 진행한다.

 - 보안된 하둡 클러스터 설치를 위한 선행조건

 - 커버로스 설치

 - 커버로스 인증을 위한 하둡 설정

 - 다중 영역 환경에서 사용자 설정



(1) 선행조건

다음은 보안된 하둡 클러스터를 설치하기 위한 선행 조건이다.

 - 클러스터를 설치하는 사용자에게 Root나 sudo접근권한 필요하다. (계정이 root라...)

 - 하둡 클러스터가 설정되어있고, 비 안전모드로 수행되고 있다. (기본 설정이 none secure)

 - 적절한 파일 권한이 로컬과 하둡 시스템 디렉토리에 할당 되어 있다. (이것도 Hadoop 실행계정이 root라..)

 - 만약을 위해 소스 코드로 부터 Kerberos를 빌드한다. 커버로스 소스코드를 컴파일 하려면 GCC 컴파일러가 필요하다. RHEL/CentOS에서는 yum groupinstall 'Development Tools' 명령어를 실행해서 필요한 모든 패키지를 설치한다.

 - 클러스터에 있는 모든 머신에서 DNS검색과 호스트 맵핑이 작동하고 있다. 커버로스는 IP로는 동작하지 않는다. 모든 노드에서 역 DNS검색이 되어 전체 주소 호스트명을 리턴해야 한다.

 - 커버로스가 사용하는 포트는 KDC를 위한 88번 포트와 관리서버를 위한 749번 포트다. 모든 노드가 KDC에 연결해서 인증하므로 88번 포트는 하둡 데몬을을 구성하는 클러스터의 모든 노드에게 열려야 한다.

      ☆ Port 설정 잘못해서.. 3일동안 시간만 버렸다. 주의 필요 

 - 하둡 클러스터 인증에 쓰일 커버로스 영역명이 있어야 한다.


(2) Kerberos Build 

a. Kerberos 설치를 위한 Source 를 받아보자.

다운로드 : http://web.mit.edu/kerberos/dist/index.html

빌드 가이드 : http://web.mit.edu/Kerberos/krb5-latest/doc/build/index.html

다운로드 페이지에서 Kerberos를 받은뒤 빌드가이드에서 지시하는데로 따라 설치하면 된다.

본인은 /root 에서

wget http://web.mit.edu/kerberos/dist/krb5/1.14/krb5-1.14.2.tar.gz

tar xvzf krb5-1.14.2.tar.gz

/root/krb5-1.14.2

b. 소스 디렉토리 설명

appl : Kerberos app Client와 server programs 있는곳

ccapi : 자격증명 cache services

clients : Kerberos V5 user Programs (User Commands 모아놓은곳 )

 - http://web.mit.edu/Kerberos/krb5-latest/doc/user/user_commands/index.html#user-commands

config : scripts 설정

config-files : Kerberos 설정 sample files

include : kerberos system build에 필요한 파일 넣는곳

kadmin : Kerberos master database에 접근하기 위한 인터페이스

kdc : Kerberos 인증 서비스와 키 배포 센터

lib : Kerberos Lib 모음

plugins : Kerberos Plugins directory

po : Localization Infrastructure

prototype: Template과 MIT copyright Message 수록

slave : slave KDC database에 propagating 하기 위한 유틸(kprop, kpropd)수록 (Forward propagation, back propagation 이런걸 의미하는 건가..)

tests : Test Suite

util :  building 하거나, 설정하기위한 다양한 유틸 코드 수록

windows : Windows에서 Kerberos를 Build하기위한 소스 수록


c. Build 해보자. ( 설치과정 a만 하고 올것 a설치 않하고 올경우 정상적인 빌드가 되지않는다.)

Using Autoconf (If you are not a developer, You can skip this section) 음... 지나가도 될까요.

Kerberos V5 source directory에서는 설정 script를 자동적으로 설정해주는 과정이 존재한다. 

이 설정 script는 autoconf 을 이용하여 생성 가능하다. 이미 설치 되어있으면.


사용자라면 autoconf를 할 필요가 없다. 이미 설정 script는 먼저 빌드가 되어있을것이다.

이 명령어는 반드시 source 디렉토리 최상위에서 실행 되어져야 한다.

ex) cd /root/krb5-1.14.2/src

     ./util/reconf --force

그리고 source package를 build해야 한다. 

ex) make all

     make install DESTDIR=somewhere-else

하면 빌드가 완성 된다~?

않되는데... (make *** no rule to make target all'. stop. ) 이러한 에러 발생 검색해보니


Build within a single tree

Kerberos build를 하나의 플랫폼에서 구성하고자 하면 이 명령으로 진행하면 된다. 

그러나 Kerberos를 통해 많은 숫자의 플랫폼을 구성하려 한다면 이 명령어는 적합하지 않다.

separate build trees for each platform 을 이용하여 진행해라.

ex)  cd /root/krb5-1.14.2/src

./configure

     make

끝이다..

ps) make check를 통해 make된걸 검사해보았다. 그랬더니  이전에 내가 지정한 hostname kdc.cw.com 이게 not known error가 발생 되어졌다.

vi /etc/hosts

127.0.0.1 에 kdc.cw.com 을 추가하니 문제는 해결되었다.


재 빌드 하고싶을경우

make clean 

make distclean 

이용하여 clean 한후 빌드 하자.


(3) Kerberos 설치

빌드되어진 package를 이용하여 설치를 진행해보자.

kdc.cw.com - master KDC

kclient.cw.com - slave KDC

CW.COM - realm name

.k5 hsa.cw.com - stash file

admin/admin - admin principal

a. build 과정 이전에 Key Distributed center를 설치 해야 한다.

RHEL/ CentOS

 : yum install krb5-server krb5-libs krb5-workstation

Ubuntu

 : sudo apt-get install krb5-kdc krb5-admin-server

명령을 이용하여 설치를 진행하면 된다.


b. Build 과정 진행


c. KDC 설치가 완료 되어지면 다음 단계는 적절한 KDC 환경설정을 진행해야한다. 

Build에서도 보시다시피 Master Slaves 관계를 맺을수 있지만, 

지금은 Master 단독 Node 관계로 진행하겠다.

vi /etc/krb5.conf

[libdefaults]

    default_realm = CW.COM

    dns_lookup_realm = false

    dns_lookup_kdc = false

    ticket_lifetime = 24h

    forwardable = true

    udp_preference_limit = 1000000

    default_tkt_enctypes = des-cbc-md5 des-cbc-crc des3-cbc-sha1

    default_tgs_enctypes = des-cbc-md5 des-cbc-crc des3-cbc-sha1

    permitted_enctypes = des-cbc-md5 des-cbc-crc des3-cbc-sha1


[kdc]

 profile = /var/kerberos/krb5kdc/kdc.conf


[realms]

    CW.COM = {

        kdc = kdc.cw.com:88

        admin_server = kdc.cw.com:749

        default_domain = cw.com

    }


[domain_realm]

   .cw.com = CW.COM

    cw.com = CW.COM


[logging]

    kdc = FILE:/var/log/krb5kdc.log

    admin_server = FILE:/var/log/kadmin.log

    default = FILE:/var/log/krb5lib.log


위와같이 처리 진행하여야 한다.

vi /var/kerberos/krb5kdc/kdc.conf
default_realm = CW.COM

[kdcdefaults]
    v4_mode = nopreauth
    kdc_ports = 88

[realms]
    CW.COM = {
        kdc_ports = 88
        kadmind_port = 749
        admin_keytab =  /var/kerberos/krb5kdc/kadm5.keytab
        database_name = /var/kerberos/krb5kdc/principal
        acl_file = /var/kerberos/krb5kdc/kadm5.acl
        key_stash_file = /var/kerberos/krb5kdc/stash
        max_life = 10h 0m 0s
        max_renewable_life = 7d 0h 0m 0s
        master_key_type = des3-hmac-sha1
        supported_enctypes = arcfour-hmac:normal des3-hmac-sha1:normal des-cbc-crc:normal des:normal des:v4 des:norealm des:onlyrealm des:afs3
        default_principal_flags = +preauth
    }


와 같이 설정한뒤
KDC는 KDC데이터베이스내에 각 사용자의 자격증명을 저장한다. 데이터베이스는 파일일 수도 LDAP 저장소 일수도 있다. 파일 기반 KDC 데이터베이스를 설정하려면 영역명을 이용해서 다음과 같은 명령을 실행한다.
root@kdc ~#kdb5_util create -r CW.COM -s
실행한다. (CPU에따라 다르지만 엄청 걸린다. 인내심을 가지고 기다리자. 제경우는 30분)


이제 kdc Server를 실행 시켜보자.
/etc/init.d/krb5kdc start

netstat -au | grep k
udp        0      0 *:kerberos                  *:*
udp        0      0 fe80::5054:ff:fe7e::kerberos *:*
위와같은 상태를 확인 가능하다.

d. 최초 커버로스 관리자 설치 
마스터 KDC 서버에서 kadmin.local 명령어로 KDC 데이터베이스 내 Principal의 패스워드를 설정한다. 관리자 pricipal을 설치하고 관리자 principal 패스워드를 제공하려면 다음 명령어를 실행한다.

kadmin.local -p admin/admin

kinit 명령어는 사용자를 인증하기 위해 사용한다. KDC가 사용자를 인증 할 수 있도록 kinit를 써서 관리자 인증을 확인할 수 있다.
kinit admin@CW.COM

e. 사용자 또는 서비스 Principal 추가
관리 사용자 설치가 끝나고 커버로스 데몬이 구동되면, kadmin 유틸리티를 사용해 커버로스 데이터베이스에 Principal을 추가할 수 있다.
add_principal -randkey user/mydomain.com@CW.COM


f. Hadoop과 Kerberos
이제부터 본격적으로 Hadoop과 Kerberos를 연동하기 위한 설정을 진행해보자.

하둡 커버로스 인증 설정 단계

(1) HDFS, 맵리듀스, YARN Principal 생성


(2) HDFS, 맵리듀스, Yarn Keytab 생성


(3) 모든 슬레이브로 키탭 복사


(4) 키탭 파일을 위한 적절한 권한 설정


(5) 하둡 환경설정 업데이트


(6) 보안된 데이터노드와 테스크 트래커 설정


g.모든 하둡 노드에 Kerberos Client 설치

yum install krb5-libs krb5-workstation

위의 명령어를 각 하둡 노드 (마스터노드, 슬레이브 노드)에 커버로스 클라이언트를 설치하여야 한다.


h. 하둡 서비스 Principal 설치
하둡 데몬 실행에 이용되는 세 사용자 hdfs, mapred, yarn가 있다. 네임노드와 데이터 노드 그리고 세컨더리 네임노드와 같은 모든 하둡 분산 파일시스템 관련 데몬은 hdfs사용자에 의해 수행된다. 이와 달리 MRV2에서는 mapred사용자가 JobHistory Server 와 Mapreduce Application 실행하고, yarn 사용자가 resource manager와 nodemanager를 실행한다.

Hadoop 데몬의 커버로스 인증이 가능하려면 KDC안에 hdfs, mapred, yarn 프린시플을 생성 해야한다.
이 서비스들은 모두 http를 이용하므로 http 서비스 principal도 생성 해야 한다.
Principal 생성을 위해 kadmin 을 이용한다.
근데......
kadmin 치니
Authenticating as principal root/admin@MYREALM.COM with password.
kadmin: Client not found in Kerberos database while initializing kadmin interface
이러한 에러가 발생한다. 
이 에러의 발생 이유는 
kadmin.local 에서 root/admin@MYREALM.COM가 등록 되어있지 않기 때문에 발생 되는 문제였습니다.
[root@kdc ~]# kadmin.local
Authenticating as principal root/admin@CW.COM with password.
kadmin.local:  add_principal root/admin@CW.COM
WARNING: no policy specified for root/admin@CW.COM; defaulting to no policy
Enter password for principal "root/admin@CW.COM":
Re-enter password for principal "root/admin@CW.COM":
Principal "root/admin@CW.COM" created.

등록하게 되면 이후 부터 kadmin에 접근이 가능해진다.

i. 하둡 KeyTab 파일 생성
kadmin
kadmin: xst -k hdfs-unmerged.keytab hadoop/cw.com@CW.COM 
을 이용하여 hadoop 생성

ktutil
ktutil:  rkt hdfs-unmerged.keytab
ktutil:  wkt hdfs.keytab
ktutil:  clear
을 통하여 keytab 적용
klist -e -k -t hdfs.keytab
만들어진 Keytab 확인 가능하다.

j. SSH 를 Kerberos를 통하여 제어를 해보자.
문서를 참조 하였다.
문서의 순서대로 따라 오게 된다면 
keytab까지는 등록이 완료된 상태가 되어진다.
하지만!!!!!!! Keytab으로 등록하게 된다면 random key로 생성이 되어지기 때문에 
kinit host/kdc.cw.com@CW.COM
password 입력 : 
하게 될 경우 incorrect라는 말만 계속해서 볼 수 있다.
이 경우 해결 방안은 2가지가 있다.
(1) Keytab을 이용하여 인증을 받느냐.

Without Keytab하여 Random key가 아닌 사용자 지정 비밀번호를 이용하여 
(2) kinit host/kdc.cw.com@CW.COM
password 입력 : ******
인증하는가.
선택하여 진행하면된다.


----------------------------------- SSH 까지는 연결 완료 ----------------------------------------------

k. Hadoop과 Kerberos와의 연동을 진행 해보자.

'Cloud Service > Kerberos' 카테고리의 다른 글

Hadoop과 Kerberos  (3) 2016.05.10
Kerberos란?  (0) 2016.05.09
Posted by MIDDLE
,

1. Kerberos 란??

kerberos는 네트워크 인증 protocol이다.

네트워크 보안에서 Username과 password를 계속해서 보낸다는 것은 매번 password를 가로챌 수 있는 기회를 제공하는 것과 동일하다. 그리하여 Kerberos에서는 이러한 Username과 password의 전송을 최소화로 만들도록 지원한다.


2. Kerberos와 Firewalls의 차이 

기존의 보안체계인 Firewalls과 같은 경우는 위험성이 외부에서만 접근할 것이라는 추측을 토대로 제작되어졌다. 하지만 공격의 빈도는 내부에서 더많이 이뤄진다는것을 알 수 있었다.


3. Kerberos의 아키텍쳐


그림 출처 : http://www.slideshare.net/BibekNam/kerberos-authentication-protocol

(1) Kerberos 구성요소 

3가지 Components로 구성되어 있다.

 - Client

 - Authentication Server or Key Distribution Serber (KDC)

 - Server

3가지 주요 활동이 있다.

 - Authentication Service (AS) Exchange

 - Ticket Grating Service (TGS) Exchange

 - Client Server (CS) Exchange


(2) AS Exchange

 a. Client와 Authentication Server(KDC) 간의 교환

 b. Client는 KDC에게 KRB_AS_REQ msg를 통해 인증 생성을 요청한다.

 c. KDC는 Client에게 KRB_AS_REQ에 대한 응답으로 ticket에 Session Key를 넣어 응답해준다.

 d. Session Key는 사용자 비밀번호를 이용하여 암호화 된다.

 e. ticket(Ticket Granting Ticket)은 서버의 비밀키를 이용하여 암호화 한다.


(3) TGS Exchange (TGS는 서버로 연결하기 위한 Service Ticket을 얻는 과정)

 a. Client는 TGT를 인정서버로 보내 Server에 접속하기 위한 Service Ticket을 요청한다.

 b. KDC에서는 Server에 접속하기 위한 Service Ticket을 첨부하여 답변해준다.


(4) CS Exchange (Service Ticket을 통하여 Server로 접속하는 과정)

 a. Client는 Service Ticket을 Server로 전송하여 인증을 요청한다.

 b. Server는 Client ticket의 비밀번호와 session key를 복호화하여 Client를 검증한다

 c. 인증 절차가 성공일 경우  Client와 Server가 연결 되어진다.


4. Kerberos 기반 원격 응용프로그램

 - ftp

 - rcp

 - rlogin

 - rsh

 - ssh 

 - telnet


5. Kerberos 주체

kerberos 서비스의 클라이언트는 주체로 식별된다. 주체는 KDC가 티켓을 지정할 수 있는 고유 ID이다. 주체는 사용자 또는 서비스일 수 있다.

주체 이름은 기본요소, 인스턴스, 영역이라는 세가지 구성요소로 구분된다. 예를 들어 Kerberos주체는 foo/admin@ENG.EXAMPLE.COM이다. 위 예에서 각 요소의 역할은 다음과 같다.

 - foo는 기본요소. 기본요소는 사용자 이름 또는 서비스(예 : nfs)일 수 있다. 기본요소는 host라는 단어일 수 도 있다. 단어의 주체는 다양한 네트워크 서비스 ftp, rcp, rlogin등을 제공하도록 설정된 서비스 주체임을 의미한다.

- admin은 인스턴스. 인스턴스는 사용자 주체의 경우 선택적이지만, 서비스 주체의 경우에는 필수이다. 예를 들어 사용자 foo가 가끔 시스템 관리자 역할을 수행하는 경우 foo/admin을 사용하여 자신과 자신의 일반적인 사용자 ID를 구별할 수 있다. 즉 Kerberos는 foo와 foo/admin을 다른 두 주체로 취급한다.


6. Kerberos 영역

영역은 도메인과 유사한 논리적 그룹. 동일한 마스터 KDC아래에 있는 시스템 그룹을 정의한다. 일부 영역은 계층형으로, 한 영역이 다른 영역의 수퍼 세트이다. 또 다른 영역은 비계층형으로, 두영역간의 매핑을 정의해야 한다. Kerberos서비스의 특징은 영역간 인증을 허용한다는 점이다. 이 Kerberos 기능을 영역간 인증이라고 한다.


7.Kerberos 서버

각 영역에는 주체 데이터베이스의 마스터 복사본을 유지관리 하는 서버가 있어야 한다. 이서버를 마스터 KDC서버라고 한다. 또한 각 영역에는 주체 데이터베이스의 복제 복사본을 포함하는 슬레이브 KDC서버도 한개이상 있어야 한다.

마스터 KDC서버와 슬레이브 KDC서버모두 인증을 설정하는데 사용되는 티켓을 만든다.

이서버는 Kerberos화된 서비스에 대한 액세스를 제공한다.


8.Kerberos 제어를 위한 API

http://web.mit.edu/kerberos/krb5-current/doc/users/user_commands/kinit.html

참조해보자... 




'Cloud Service > Kerberos' 카테고리의 다른 글

Hadoop과 Kerberos  (3) 2016.05.10
CentOS6.6환경 Kerberos 설치 및 HDFS 연동  (1) 2016.05.09
Posted by MIDDLE
,

시작으로는 HDFS Permission부터 이해해보자.


HDFS Permission Overview

 하둡 파일 시스템은 Files Directories를 관리하기 위해서 POSIX model를 수단으로 하였다. File, Directories는 사용자 와 그룹과 연관 지어진다.

 기존 POSIX model 과 차이점은 HDFS에서는 실행파일에 대한 개념이 존재 하지 않는다.

파일의 경우

r permission은 파일을 읽어들이는데 필요

w permission은 파일을 쓰거나, 파일에 추가내용 적을시 필요

디렉토리 경우

r permission은 디렉토리의 리스트를 확인시 필요

w permission은 파일 또는 디렉토리를 생성 또는 삭제에 필요하다.

x permission은 자식 디렉토리에 접근하기 위해 필요하다.

 

디렉토리에 대해서는 소유자 또는 슈퍼유저 파일 소유자를 제외하고 디렉토리 접근 방지 설정을 할 수 있다.

종합적으로 파일이나 디렉토리의 권한을 관리하기위한 Model이다. 파일또는 디렉토리가 생성되면, 그 소유자는 클라이언트 프로세스 사용자 ID 이며, 그룹은 소유자의 그룹이다.

 

ACL (액세스 제어 목록)

HDFS는 기존의 POSIX 권한 모델 뿐만 아니라, ACL을 지원한다. ACL은 사용자와 그룹의 계층 권한을 구현하는데 유용하다.

ACL은 파일의 소유자와 파일의 그룹 뿐만 아니라 명명된 사용자 또는 명명된 그룹에 권한 설정하는 방법을 제공한다.

기본적으로 ACL을 제공하지는 않지만 네임노드 구성에서

dfs.namenode.acls.enabled= true 로 설정하면 이후부터 ACL인식이 가능합니다.

 

ACL 을 이용한 권한 관리



 

ACL Control 방법

JAVA methods:

·       public void modifyAclEntries(Path path, List<AclEntry> aclSpec) throws IOException;

·       public void removeAclEntries(Path path, List<AclEntry> aclSpec) throws IOException;

·       public void public void removeDefaultAcl(Path path) throws IOException;

·       public void removeAcl(Path path) throws IOException;

·       public void setAcl(Path path, List<AclEntry> aclSpec) throws IOException;

·       public AclStatus getAclStatus(Path path) throws IOException;

 

ACLs Shell Commands

·       hdfs dfs -getfacl [-R] <path>
Displays the Access Control Lists (ACLs) of files and directories. If a directory has a default ACL, then getfacl also displays the default ACL.

·       hdfs dfs -setfacl [-R] [-b |-k -m |-x <acl_spec> <path>] |[--set <acl_spec> <path>]
Sets Access Control Lists (ACLs) of files and directories.

hdfs dfs -setfacl -x user:alice /user/hdfs/file

 

·       hdfs dfs -ls <args>
The output of ls will append a ‘+’ character to the permissions string of any file or directory that has an ACL.

 

 

ACL 권한 체크 절차




참조 사이트 : 

Permission JAVA API https://hadoop.apache.org/docs/r2.6.1/api/org/apache/hadoop/conf/Configuration.html
리눅스 Secure Guide https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsPermissionsGuide.html


Posted by MIDDLE
,


오픈스택 구석구석 파헤치기.pdf



출처는 어디인지 까먹음...

Posted by MIDDLE
,

- 탐색적 데이터 분석

- 탐색적 데이터 분석과 보고를 위한 시각화

- 대시보드와 척도의 관리

- 비즈니스에 대한 영감의 발견

- 데이터 주도 의사결정

- 데이터공학/ 빅데이터(맵리듀스, 하둡, 하이브, 피그)

- 데이트 수집

- 데이터 파이프라인 구축( 로그 -> 맵리듀스 -> 데이터세트-> 다른 데이터와의 결합-> 맵 리듀스-> 스크래프 데이터-> 결합)

-(존재하는 상품 용법을 설명하는대신) 상품의 개발

-해킹

-특허 출원

-수사 업무

-미래 행동이나 성과예측

- 보고서, 발표자료 , 저널에 결과 기고

- 프로그래밍(R, 파이썬, C, 자바 등)

- 조건 확률

- 최적화

- 알고리즘, 통계적 모형, 기계학습

-스토리를 말하고 해석하기

-좋은 질문하기

-조사

-연구

-데이터로부터 추론하기

-데이터 상품 개발

- 대규모 데이터 프로세싱, 변형, 분석방법 도출

- 온전성 검사

- 영역 전문가와 협력 ( 혹 영역 전문가 되기)

- 실험의 설계및 분석

-데이터에서 상과능ㄹ 발견하고 인과성 확립하기


를 포함하여 모범 규준ㅇ들을 사용하여 데이터와 함께 풀 수 있는 모든 문제의 공간을 포함하는 영역 포괄

데이터 과학이 어디서 어떤영역에서 등장하는가는 쟁점이 아니다 . 오히려 그것을 알고리즘, 코드 ,그리고 데이터에 해법공간을 가지고 있는 문제공간으로 정의하는 것이 필요하다.



'Cloud Service' 카테고리의 다른 글

Cloud 사용 기술들 정리  (0) 2015.04.23
Cloud 서비스  (0) 2015.04.13
Posted by MIDDLE
,

vi 편집기 명령어

명령 모드로 돌아가려면 Esc 키를 누릅니다.

  • h , moves cursor left

  • , moves cursor down

  • k , moves cursor up

  • , moves cursor right

  • , delete character

  • ##x , delete ## characters

  • dw , delete word

  • dd , delete line

  • p , put last deletion after cursor

  • , undo last change

  • , turn on insert mode (hit the esc key twice to stop)

  • :w ,write to the file already named

  • :q , quit editing

  • :wq , write file and quit

  • :q! , quit without saving file

  • ctrl f , move forward one page

  • ctrl b , move backward one page

  • :/text , will search for next occurance of 'text' (hitting n will find next occurence)

  • :?text ,search backward for first occurrence of text

  • G , go to end of file

  • 1G , go to first line of file

  • set nu , to set line number

  • :w filename , write to the file named filename

  • yy , yank line into buffer

  • ##yy , yank ## lines into general buffer

  • CONTROL-G print information about file: name, current line number

  • :%s/pattern/text/ substitute first occurrence of pattern on each line with text

  • :%s/pattern/text/g substitute every occurrence of pattern with text

  • p , put contents of general buffer after current line

  • , put contents of general buffer before current line

  • :g/pattern/d delete every line containing pattern

시스템 업데이트 방법
네트워크가 설정되고 인터넷에 연결되고 나면, 가장 먼저 할 일은 업데이트 작업이다. 최초 배포판 이후에 알려진 버그 업데이트들을 시스템에 적용하는 것이다. 이 작업을 하기전에 몇가지 참고할 사항을 설명한다.

CentOS의 업데이트 서버 한국 미러서버에 mirror.khlug.org, data.nicehosting.co.kr가 있는데 속도 제한이 설정되어  1kb/sec의 속도가 나올정도로 느리다. 이로인해 업데이트 작업은 위서버들은 예외되도록 설정하자.
[root]# cat /etc/yum/pluginconf.d/fatestmirror.conf


나머지는 https://www.3rabbitz.com/f01c33e7d8367da2#857542b4ddd63403 여기서



'Cloud Service > CentOS' 카테고리의 다른 글

Oracle VirtualBox 이미지 생성  (0) 2015.07.03
Posted by MIDDLE
,

Oracle VM virtualVox를 설치합니다.


1. 설치 이후  새로만들기 버튼을 이용하여 이미지를 생성합니다. 

이름을 설정하고 이미지 OS의 종류와 해당 OS의 버전을 설정합니다.


2. OS와 버전 선택이 맞춘이후에는 Memory 크기를 선택합니다.


3. 하드 드라이브를 구성에 대해 선택하게 되는데

하드드라이브 자원을 가상화 하여 가상 하드드라이브를 만들거나 기존 가상하드 드라이브 파일사용하거나 가상하드를 추가하지 않기중 선택을 합니다.


4. 가상 하드드라이브 종류를 선택하여 나중에 이파일이 다른곳에 적용시키기를 원할때 이용가능합니다.


5. 물리적 하드드라이브에 저장할 것인지 선택하여 최대크기를 지정한 정적 할당을 할것인지 동적할당 하여 가상 디스크를 사용할때 고정된 최대크기가 커지지만 사용량이 줄어들어도 자동적으로 작아지지는 않습니다.


6. 파일 위치및 크기 선택 가상 드라이브 파일 위치와 가상 하드드라이브의 크기를 지정합니다.


생성된 가상 OS를 설정에 들어가

저장소에 접속하면 IDE 텝에 설치할 OS의 ISO파일을 삽입한 후 

해당 VM을 실행시키면 OS설치가 시작됩니다.



'Cloud Service > CentOS' 카테고리의 다른 글

CentOS Minimal 리눅스 서버  (0) 2015.07.03
Posted by MIDDLE
,

Libvert 가상화 플랫폼을관리하는 API다. Xen KVM VMware ESX등 다양한 기술에 사용가능하며 C로 된 라이브러리이지만 다른 언어에 바인딩 가능하다. 여러 하이퍼바이저들을 사용할때에 이것들을 통합적으로 관리하기 위해서 필요로 한다.


OpenStack

'Cloud Service' 카테고리의 다른 글

데이터 과학이란?  (0) 2015.08.28
Cloud 서비스  (0) 2015.04.13
Posted by MIDDLE
,

Cloud 서비스

Cloud Service 2015. 4. 13. 16:20

1. 클라우드의 정의

인터넷을 통해 Resource를 빌려쓰고, 사용한 만큼 지불하는 Service


 

가상화가술을 이용하여



Cloud Computing 

 

기존방식 

Cloud(사용자 중심) 

 가상화 기술을 이용하여

IT자원의 가용률을 높이고

(Maximize Utilization)

구매방식 

IT투자, HW임대

1month or more 

인터넷을 통한 신청

A few Minutes 

 사용자가 필요로 하는것을 직접(Self Service)

제공방식 

Manual (구축) 

1Month or more

Automation(주문) 

A few Minutes

 인터넷을 통해 IT 자원을 실시간으로 빌려 쓰며 (Easy to Use)

제공단위 

물리적 장비단위 

Virtual Machine

Core/시간단위 최소기준 

사용한 만큼 지불하는 Service 방식 (Pay as you Go) 

지불방식 

임대/HW에 따른 과금 

사용량 기반 




2. 클라우드의 특징

- Agility improves with users' ability to re-probision technological infrastructure resources.

- Application Programming Interface (API) accessibility to software that enables machines to interact with cloud software in the same way the user interface facilitates interaction between humans and computers. Cloud computing systems typically use REST-based APIs.

- Cost is claimed to be redueced and in a public cloud delivery model capital expenditure is converted to operational expenditure. This is purported to lower barriers to entry. as infrastructure is typically provided by a third-party and does not need to be purchased for one-time or infrequent intensive computing tasks. Pricing on a utility computing basis is fine-grained with usage-based options and fewr IT skills are required for implementation (in-house).

- Deivce and Location independence enable users to access systems using a web browser regardless of their location or what device they are using (e.g. PC, mobile phone). As infrastructure is off-site(typically provided by a third-party) and accessed via the Internet, users can connect from anywhere.

- Multi-tenancy enables sharing of resources and costs across a large pool of users thus allowing for:

~ Centralization of infrastructure in locations with lower costs (such as real estate, eletricity, etc)

~ Peak-load capacity increases (users need not engineer for highest possible load-levels)

~ Utilization and efficiency improvements for systems that are often only 10%-20% utilized.

- Reliability is improved if multiple redundant sites are used. which makes well-designed cloud computing suitable for business continuity and disaster recovery.

- Sacalability via dynamic ("on-demand") provisioning of resources on a fine-grained. self-service basis near real-time, without users having to engineer for peak loads.

(resource가 많은양을 갑작스럽게 요구로 되어질때 항상 같은 퍼포먼스가 나올수 있도록 확장 지원)

- Performance is monitored, and consistent and loosely coupled architectures are constructed using web services as the system interface.

- Security could improve due to centralization of data, increased security-focused resources, etc.. but concerns can presist about loss of control over certain sensitive data, and the lack of security for sotred kernels. Security is often as good as better than under traditional systems, in part becuase providers are able to devote resources to solving security issues that many customers cnanot afford. However, the complexity of security is greatly increased when data is distributed over a wider area or greater number of devices and in multi-tenant systems that are being shared by unrelated users. in addition, user access to security audit logs may be difficult or impossible. Private cloud installations are in part motivated by users desire to retain control overthe infrastructure and avoid losing control of information security.

- Maintenance of cloud computing application is easier, because they do not need to be installed on each user's computer. They are easier to support and to improve, as the changes reach the clients instantly.


이러한 형태의 애플리케이션을 개발하도록 노력


3. 클라우드 컴퓨팅의 유형

 - 소유 방식에 따라 private 과 public cloud로 구분

 - IT자원의 성격에 따라 IaaS, PaaS, SaaS로 분류


서비스 유형 

 

 Public Cloud

인터넷 상으로 여러 사용자들에 의해 공유되는 IT 환경
Cloud Sevice Provider가 제공 및 관리

 Private Cloud

한 기업이나 기관에 의해 인트라넷상에서 배타적으로 사용되는 IT환경
기업 및 기관에 의해 통제 및 관리 

 




서비스 모델 

 

 SaaS

 기업 또는 일반 소비자가 다양한 어플리케이션을 인터넷 및 웹브라우저를 통해 서비스 제공

ex) prezi, onlineoffice

 PaaS

 기업이 Web App등의 어플리케이션을 개발하기 위한 환경을 서비스 형태로 제공

 IaaS

 물리적 서버(CPU, Memory, O/S), 스토리지 네트워크를 가상화하여 다수의 고객에게 Flexible하게 인프라 서비스 형태로 제공

 




클라우드 애플리케이션

클라우드 애플리케이션과 기존 애플리 케이션의 차이


 Service Model

Self Service Model

애플리케이션 개발과 운영이 밀접한 관계를 가짐 

SW & deploy Model 

Distributed 

애플리케이션이 독립 서비스로 모둔 분산 되어있음(분산 컴퓨팅) 

Scaling Model 

Horizontal Scaling 

애플리케이션이 서비스의 부하를 인지하여 부하를 분산 

HA Model 

Software HA 

애플리케이션이 장애를 인지하여 자동으로 Failover 시킴 

SLA Platform 

Designed to fail(always on) 

 

Hardware Platform

Cheap commodity hardware 

 









하드웨어 따로              하드웨어 공유         OS 공유              WaS하나에           애플리케이션하나로

vm 따로                    IaaS 방식             VMware                 여러가지 공유       많은 조직들이 사용

                                                                                                     어렵다.                  데이터 제공량이 많다.                                                   공유할수록 필요 데이터 적어진다.

                                                                            그러나 문제는 독립적으로 적용하기위해서는                                                                             그만큼 많은 데이터베이스와 개개인에 맞춤

                                                                            Class를 적용시켜줘야한다.

                                                                      Java에서는 tenant Level Class분리가 힘듬..

매우 중요!!!




보이는건 IaaS레벨정도이지만 안보이는 기술필요가 엄청나게 많다. 멀티태넌시를 어떻게 구현할 수 있을까

쉽지 않은 문제. 각지역마다 4-50개 있다치면 배포하는데에만 엄청난 시간이 필요 전세계를 테스트 해야만한다.


Dynamic Resource Usage

네트워크,스토리지의 사용량보다 가상 서버의 사용량이 제일 많음(가상머신 생성, 제거, 스펙 변경 등)

가상화 시켜 배포하면 리소스를 생성하고 없애는게 굉장히 빈번하다. 


클라우드에서 소수의 운영자가 수많은 서버를 관리하는 비결은 자동화 도구

페이스북은 IT인프라에 대한 매뉴얼 관리를 최대한 제거했다. 서버와 저장매체는 오픈 컴퓨트프로젝트(OCP)에 기반한 디자인 덕분에 도구없이도 교체 가능하다. 사이보그(Cybog)라 불리는 시스템은 오작동하는 서버들을 자동으로 수리하여, 셰프같은 프로비저닝 도구가 수천대의 서버관리를 도와준다.

페이스북은 최신 자동화 툴은 클러스터 플래너란것이다. 페이스북은 끊임없이 비즈니스 요구사항변화에 맞추기 위해 수천대의 서버를 규칙적으로 배포한다. 클러스터플래너는 전세계 데이터 센터에 걸쳐 서버 클러스터의 최적의 위치를 찾아준다.

그는 우리가 효율적으로 서버 수리를 할 수 있는건 데이터를 수집하고 분석하는 자동화된 시스템을 보유했기 때문 이라며 사이보그는 재시작같은 단순한 작업을 요하는 서버 수리를 시도한다.


Virtual Server의 생성 절차

가상 서버를 생성하는 전체 과정은 단순한 과정이 아닌 매우 복잡하고 많은 작업을 동반함

Virtual Network -> Virtual Storage -> Virtual Server 

-> OS installation -> 

Software Installation -> Software Configuration -> Verification

소프트웨어 생성시 config는 발생한다.

개발자가 3가지를 해야하지만 까다롭다.




'Cloud Service' 카테고리의 다른 글

데이터 과학이란?  (0) 2015.08.28
Cloud 사용 기술들 정리  (0) 2015.04.23
Posted by MIDDLE
,