BigData2014. 5. 22. 23:44

 빅데이터 개발자 양성과정 3일차..


 리눅스 로그인 할 때 실행되는 파일에는 /etc/profile, ~/.bashrc, ~/.bash_profile이 세가지이다. 로그인 할때 실행 되는 이 세 파일에 alias를 이용해서 자주사용 되는 명령어나 사용하기 어려운 명령어들을 선언해 놓고 사용하면 된다. 하지만 상황에 따라서 파일이 실행이 되지 않는 경우가 있다. 항상 실행되는 파일은 /etc/profile이기 때문에 이 파일에 선언해 놓으면 된다.


 어제 실습한 SSHPass를 다운받아 설치하고 hosts파일에 설정내용을 추가 하는 부분과 자바를 다운받아 설치하고 환경 설정 하는 부분까지 배웠다. 


 Python..다양한 환경에서 사용되어지고 지원되는 스크립트 언어이다. 자바나 다른언어에서 길고 지저분하게 작성되어지는 코드를 상당히 깔끔하게 작성된다는 장점이 있다. 거기에 풍부하고 강력한 모듈들이 존재하며 훌륭한 생산성을 가지고 있다. 윈도우를 제외한 다른 운영체제에서는 기본으로 제공이 되며 윈도우는 별도로 설치를 요구한다. 설치가 되어 있는지 확인하는 방법은 터미널을 띄워 python을 입력해보면 된다. python의 사용 방법은 phthon에서 제공하는 help명령어돠 pydoc을 이용하면 자세하게 나와있다. 그외에 파이썬 문서고와 파이썬 마을에 가면 자세한 내용을 검색할수 있다.


 마지막날인 내일은 하둡의 설치에 대해서 배울 예정이다. 그동안 공부를 너무 안했다는걸 절실히 느끼는 과정이었다. 자바 개발자면서 제너릭이 뭔지도 모르고..그외에 수업하면서 메모 해놓은 기술들을 공부해야겠다.

Posted by Z700zZz
BigData2014. 5. 22. 01:00

 빅데이터 개발자 양성과정 2일차..


 대칭형 알고리즘과 비대칭형 알고리즘의 개념에 대해서 간략하게 설명을 들었다. 대칭형 알고리즘이란 암호화 할대 쓰인 키와 복호화 할때 쓰는 키의 값이 같을때를 의미하고 비대칭형 암호화 알고리즘이란 송신자가 개인키로 암호화 해서 전송을 하면 수신자는 공개키로 암호화해서 데이터를 다시 보내는 것이 비대칭형 암호화 할고리즘이다. 

 

 리눅스 서버간 SSH로 접속을 할때 따로 입력하는 비밀번호 없이 접속하는 방법을 배웠다. 서버에서 개인키를 생성한다. 생성할때 암호화를 하고 싶다면 생성시 비밀번호를 입력하면 된다. 서버에서 개인키를 생성한뒤 그 개인키를 id_rsa.pub파일에서 복사해 내가 접속하고자 하는 서버에서 들어가 .ssh폴더 밑에 authorized_keys파일에 개인키의 내용을 채운다. 그뒤 이파일의 권한을 설정 해준뒤 원래의 서버에서 접속하는 서버로 접속을 하면 비밀번호 입력 없이 서버에 접속 되는것을 볼 수 있다.


 IaaS클라우드 서버는 싼것은 아니다. 하지만 서버 호스팅과 비교했을때 가격적으로 싸지만은 않지만 기능면에서 장점이 많다. 내가 초기 서비스를 운용을 할때는 만명정도의 사용자가 몰리다 어느 계기로 갑자기 10만명이 몰려서 서버의 증설이 필요할때 직접 서버를 산다면 이후에 사용자가 줄어 들었을 경우에는 서버 구매에 대한 부담을 안아야 한다. 하지만 클라우드 서버를 이용하다면 그때마다 추가적인 비용을 지불하면 되기때문에 좀더 유용하게 사용할수 있다는 장점이 있다.


 쉘을 이용해서 한번에 여러대의 서버에 hosts파일을 수정하는 방법을 배웠다. 서버의 IP가 적혀있는 파일을 만들고 그파일을 불러와 hosts파일에 넣을 내용을 만든다음 hosts파일에 내용을 넣는 방법이다. 서버에 접속을 하게 되면 .bash_profile이 실행 되는데 이 파일에 alias를 사용하여 자주 사용하거나 매번 입력하기 귀찮은 명령어들을 짧게 만들어 사용 할 수 있다. history명령어를 이용하면 지금까지 입력한 명령어들의 목록을 볼 수 있다.


 리눅스의 비교연산자와 if문과 for문을 배웠다. 간단하게 쉘을 작성하고 파라미터로 숫자와 문자를입력받아 연산하는 것도 실습했다. if문과 for문을 사용하여 입력받은 숫자의 구구단을 계산해서 출력해 보여주는 예제도 작성하였다.


 2일차까지의 수업을 들었고 수업이 끝나기 전까지는 그날의 수업에 대해서 전체적인 내용만들 적을것이다. 이후 세세한 예제나 내용들은 혼자 스터디 하면서 정리 하는걸로..

Posted by Z700zZz
BigData2014. 5. 21. 00:47

빅데이터 개발자 양성과정 1일차..


수업의 전체적인 내용을 적기에는 내머리에 한계가 있고..

수업중 중요하게 생각하다 생각하는 부분만을 적기로 했다.

강의가 모두 종료한 뒤 스터디 하면서 세부내용은 다시 정리 하는걸로..


 빅데이터를 구성하는데 리눅스는 필수 요소이다. 윈도우로 개발 환경을 세팅해도 상관은 없지만 세팅해야 할 서버가 꼭 적은 수일 경우는 없다. 쉘스크립트로 여러대의 서버에 설치를 하는 장점도 있고, 개발시 캐릭터셋 문제도 있고 여러가지로 개발은 리눅스에서 해야한다. 당장은 리눅스가 불편하고 손에 이지 않겠지만 앞으로 발전을 위해서는 리눅스에 익숙해져야만 한다.


 리눅스와 친해지려면 일단 기본적인 명령어의 사용법부터 제대로 알아야 한다. 명령어에 대한 설명은 --help를 이용하면 모두 알수 있다. 리눅스는 CUI인 반면 탭키를 이용하면 명령어나 경로등을 입력할때 편하게 할 수 있다. 절대경로와 상대경로에 대해서 이해해야하며 리눅스의 사용법등은 kldp.org에서 정보를 얻으면 된다. 오늘 안것이지만 구글의 검색 옵션중 site:www.naver.com 을 검색어에 넣어주게 되면 내가 지정한 사이트인 www.naver.com내에서 검색을 해서 검색 결과를 보여준다는것을 오늘 알았다. 그동안 인터넷 허투루 했다. 명령어와 친해지는것은 간단한 명령어라도 반복해서 사용해보는것이 가장 중요하다.


 리눅스에서 명령어와 친해지고 다음으로 친해져야 할것이 Vi Text Editor와 친해져야 한다. 예전에 로그 분석때분에 2기가짜리 로그파일을 열때 검색으로 어떤 편집기로 검색을 해야 빨리 할지를 물었는데 답은 Vi였다. 우리가 흔히 사용하는 GUI텍스트 편집기와는 달리 키보드로 제어를 해야 하지만 다재다능한 편집기이며 뛰언나 성능을 보여주는 편집기이다. 지금까지 사용해오던 편집기와는 다르기에 익숙해지는데는 시간이 걸린다. vi filename으로 편집기를 실행하면 해당 파일의 내용을 볼수 있으며 Escape키를 누르면 커맨드를 입력 할수 있는 Command Mode가 된다. 이후 편집을 위한 명령어인 i, a, o와 종료와 저장을 위한 명령어인 wq, q!, w로 편집또는 저장 종료를 할수 있다. vi를 이용하면 서버내에서 파일의 내용을 수정하고 바로 실행 할 수 있다.


 텍스트 에디터중 유용하게 사용 할 수 있는 에디터중 Sublime Text라는 에디터가 있다. 현재 무료로 배포가 되고 있고 좀더 나은 기능(?)을 사용하려면 유료로 라이센스를 구입후 사용 가능하다. 주요 기능중에는 SFTP를 이용하여 서버에 있는 파일을 불러와 편집후 저장만으로 서버에 적용을 할 수 있고 한번에 여러줄을 선택하여 편집 하는 기능, 모든 OS에서 지원, 자동 완성 기능과 Snippet기능등 무료 소프트웨어지만 좋은 성능의 Text Editor이다.


 선생님이 공유해준 드롭박스에 수업내용 스샷이 있어서 그걸 보면 좀더 자세한 내용을 쓸 수 있지만..내 실수로 인해 공유를 하지 못해 대략 필기한 내용을 토대로 내용을 적어봤다. 내일은 가상머신을 이용해 리눅스를 여러대의 서버에 동시에 설치하는 방법을 배울것이다.

Posted by Z700zZz
BigData2014. 4. 10. 14:34

"이것이 레디스다" 책을 구입해서 예재들을 따라서 해보고 있었다.

JedisHelper예재를 따라 치고 있는데 


Config config = new Config();

....

this.pool = new JedisPool(config, REDIS_HOST, REDIS_PORT, 5000);


예재중 두 소스 코드에서 아무리해도 클래스를 못찾는 오류가 발생하는것..

API에 가서 봐도 그런 클래스나 메소드를 못찾았었다.


혹시나 싶어서 책에서 제공하는(한빛 미디어 홈페이지 제공) 라이브러리로 해보니 아주 잘됨.


기본적인 Jedis라이브러리와 Commons-pool 라이브러리는 Redis 공식 홈페이지에서 하라는 대로 다운 받아 깔았더니 책의 예재가 돌아가지를 않네..

버전 문제인듯하다. 버전업이 되면서 같은 기능을 하는 메소드나 클래스가 있는지 찾아야함.

일단은 책대로 예재를 따라해보고 나중에 라이브러리 바꿔서 다시 예재를 고쳐야 겠음.

Posted by Z700zZz
BigData2014. 4. 1. 17:08

어제는 내 피씨에 REDIS를 설치 했으니 오늘은 Java와의 연동을..


Java와 연동을 하려면 어떻게 해야할까..

우선은 REDIS와 Java와 연동이 가능하도록 프로그래밍을 해야하는데..음..이런 능력이 나에게는 있지 않다.

그래서 검색을 해보니 친절하게도 JEDIS라고 라이브러리를 만들어 제공을 하고 있었다.


https://github.com/xetorthio/jedis/downloads


검색을 해보면 JEDIS의 다운로드 경로를 위의 URL로 안내해주는 경우가 많은데..구라 페이지..만우절이라 그런가??

이것저것 검색을 하다보면 JEDIS소스 파일을 다운받아 Maven으로 라이브러리를 만들어 사용해라 라는 글을 볼수 있었다.

시도 하려 하다가 설마 이렇게 어렵게 해놨으려고? 라는 의문이 들었고 좀더 검색해 보니 Jar파일로 라이브러리를 제공하고 있었다.


http://search.maven.org/#artifactdetails%7Credis.clients%7Cjedis%7C2.4.2%7Cjar


위의 URL을 클릭해서 들어가면 jar파일을 제공하는것을 볼수 있다.

GitHub의 REDIS페이지에 Wiki의 Getting Start를 보면 아래와 같은 내용이 있다.


download the latest jedis jar at search.maven.org and the Apache Commons Pool 2 2.0 dependency.


Jedis 라이브 러리 외에도 Apache Common Pool 2 2.0의 라이브 러리가 추가적으로 필요하다.

두 라이브러리를 추가 했다면 데이터를 넣고 빼는 코드를 작성해보자.


import redis.clients.jedis.Jedis; 

import redis.clients.jedis.JedisPool; 

import redis.clients.jedis.JedisPoolConfig; 

import redis.clients.jedis.exceptions.JedisConnectionException; 


public class HelloRedis { 

public static void main(String args[]){ 

JedisPool jedisPool = new JedisPool(new JedisPoolConfig(), "localhost"); 

Jedis jedis = jedisPool.getResource(); 

try

jedis.set("test1", "testValue1"); 

jedis.set("test2", "testValue2"); 

System.out.println("jedis Value 1 : " + jedis.get("test1")); 

System.out.println("jedis Value 2 : " + jedis.get("test2")); 

System.out.println(jedis.dbSize()); 

}catch(JedisConnectionException e){ 

if(null != jedis){ 

jedisPool.returnBrokenResource(jedis); 

                jedis = null

}finally

if(null != jedis){ 

jedisPool.returnResource(jedis); 

jedisPool.destroy(); 

}



위의 코드를 작성하고 실행하기전 REDIS를 실행 하는것 잊지 말아야 한다.

코드를 실행하게 되면..아래와 같은 결과가 나온다.


jedis Value 1 : testValue1

jedis Value 2 : testValue2

2





데이터가 제대로 들어간것을 볼수 있다.


https://github.com/xetorthio/jedis


위에서 나온 라이브러리 다운과 코드는 위의  URL에서 보고 작성하였다.

책사왔으니 공부하면서 추가적으로 좀더 포스팅..

Posted by Z700zZz
BigData2014. 3. 31. 17:11

REDIS의 이론에 앞서 일단 설치부터 시작..


현재 개발 환경을 Mac OS X 10.8.5..


Mac에서 필요한 유틸리티들을 깔아주는 프로그램인 Homebrew라는것이 있다.

명령어 한줄만으로 프로그램 다운과 설치가 된다.


http://jeonjin.tistory.com/84


예전에 포스팅 했지만 Homebrew의 설치 방법이 있다.


> brew install redis


위와 같은 명령어를 넣으면 다운로드와 설치가 진행된다.





이로써 설치 완료.


> redis-server


위의 명령어를 치면 레디스 서버 시작.





명령어를 실행하면위와 같이 서버 실행이 된다.

Mac OS X에 REDIS설치는 이렇게나 간단하다.

설정이나 세부적인 부분들은 이후에...

Posted by Z700zZz