우분투 (11.10) 에서 Emacs 를 콘솔모드로 (Console Mode) 로 사용중입니다. 뭐 다 괜찮다고는 말할 수 없지만 그럭저럭 사용하고 있습니다. 그런데 단어 뒤로 옮기는 명령인 Meta-B 를 누를때마다 (보통은 Alt-B 를 누름) 터미널의 메뉴가 뜨는 것입니다. 당연히 사용하기 짜증이 나겠지요? 그 문제를 해결하는 방법입니다.

터미널 '메뉴' -> 'Edit' -> 'KeyBoard Shortcuts..' 로 이동해서

Enable menu access keys (such as Alt+F to open the File menu) 라는 것 앞의 체크박스를 해제 해 줍니다.


Meta-B 기능을 바로 사용하실 수 있습니다.


.bashrc 는 터미널이 생성될 때마다 읽히는 것이고
.bash_profile 은 개인적인 설정으로 로그인 할 때마다 읽히는 것입니다.

그런데 .bash_profile 을 수정했는데 (예를들면 JAVA_HOME 이라던가 PATH 라던가) 안 읽히는 것입니다. 뭐 이유는 여러가지가 있겠지만 암튼 이런 경우가 발생했을 때의 해결방법입니다.

$HOME/.bashrc 를 에디터로 엽니다.

$ emacs ~/.bashrc


아래쪽쯤에

if [ -f ~/.bash_profile ]; then
    . ~/.bash_profile
fi


이렇게 추가 해줍니다. 그러면 끝!!


원문은 아래의 URL 에서 확인이 가능합니다.

  http://hbase.apache.org/book.html#quickstart

위의 페이지를 살펴보면 간단하게 시작할 수가 있습니다. 영어가 싫은 분들을 위해서 조금 사족을 덧 붙이자면

1. Hbase 를 다운 받는다.

   http://ftp.daum.net/apache/hbase/stable/

   여기에서 hbase-0.92.0.tar.gz 를 다운 받습니다. 안정화 (stable) 버젼이고, 0.92.0 버젼 입니다.

2. 적당한 곳에 압축을 풀어 준다.
  
$ tar xvf hbase-0.92.0.tar.gz
$ cd hbase-0.92.0/

3. conf/hbase-site.xml 파일을 열어서 다음과 같이 수정합니다.

<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>file:///home/crazia/work/hbase-0.92.0/hbase-${user.name}/hbase</value>
  </property>
</configuration>


 제 설정에서 HBASE 가 설치된 곳이

 $HBASE_HOME = /home/crazia/work/hbase-0.92.0

 이니 자신의 상황에 맞게 변경해 주시면 될 것입니다. (붉게 칠해진 부분을 자신의 환경에서 Hbase 가 설치된 곳으로 변경)

4. HBase 구동 시킨다

  
$ ./bin/start-hbase.sh

   만약, 여기서 구동이 안된다면 sun 사의 java 로 바꿔주실 필요가 있습니다.
   지난 아티클 참조 , 지지난 아티클 참조

5. HBase 쉘 (Shell) 로 제대로 동작하는지 확인

  
$ ./bin/hbase shell


   로 shell 을 구동시킵니다.

hbase(main):003:0> create 'test', 'cf'
0 row(s) in 1.2200 seconds
hbase(main):003:0> list 'test'
..
1 row(s) in 0.0550 seconds
hbase(main):004:0> put 'test', 'row1', 'cf:a', 'value1'
0 row(s) in 0.0560 seconds
hbase(main):005:0> put 'test', 'row2', 'cf:b', 'value2'
0 row(s) in 0.0370 seconds
hbase(main):006:0> put 'test', 'row3', 'cf:c', 'value3'
0 row(s) in 0.0450 seconds


간단하게 test 라는 테이블에 cf 라는 컬럼을 생성하고 간단하게 값을 입력하는 예제입니다. 여기까지만 해봐서 문제가 없으면 정상적으로 동작하는 것입니다. 기타 자세한 사항은 QuickStart 부분에서 테스트 해 볼 수가 있습니다.

hbase(main):012:0> disable 'test'
0 row(s) in 1.0930 seconds
hbase(main):013:0> drop 'test'
0 row(s) in 0.0770 seconds

만들어 봤던 테이블을 지워줍니다.

hbase(main):014:0> exit


그리고 쉘을 종료합니다.

6.  HBase 중단시키기
$ ./bin/stop-hbase.sh


만약 정상적으로 동작이 안되는 상황이 발생하면 ..

$HBASE_HOME/logs/hbase*master*.log 파일을 열었을 때

2012-02-20 13:12:49,478 WARN org.apache.hadoop.hbase.master.AssignmentManager: Unable to find a viable location to assign region -ROOT-,,0.70236052

이런 경고가 발생한다면 제대로 Hbase 가 구동되는 것이 아닙니다.

해결방법은

우분투 (Ubuntu) 에서  /etc/hosts 파일 열었을 때

127.0.0.1       localhost
127.0.1.1      crazia-VirtualBox                                              
127.0.0.1      ubuntu.ubuntu-domain ubuntu  


되어 있는 파일을

127.0.0.1       localhost
#127.0.1.1      crazia-VirtualBox                                              
127.0.0.1       crazia-VirtualBox
#127.0.0.1      ubuntu.ubuntu-domain ubuntu  


라고 바꿉니다. 핵심은 127.0.1.1 로 되어 있는 부분에 대한 처리만 신경 써 주시면 됩니다.


우분투(Ubuntu) 에 자동으로 포함되어 있는 openjdk 와 sun 의 jdk 가 미묘하게 차이가 있는 것을 알고 있습니까? 실은 저도 못 느껴본 차이긴 하지만 있다고 합니다.

무엇인가를 개발할 때 특히나 오픈소스(Open Source)를 가져다 쓸 때는 환경 문제가 특히나 중요한데, 지금 할려는 작업이 sun-jdk 를 설치해야만 하는 일입니다. 저번 포스트에서는 무지 간단하게 썼지만 막상 sun-jdk 를 설치하는 일은 한줄로 되지는 않습니다. 다섯줄 입니다.

$ sudo apt-get install python-software-properties
$ sudo add-apt-repository ppa:ferramroberto/java
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk sun-java6-plugin


패키지를 가져오는 소스 주소를 추가해 주고 레파지토리 (repository)를 업데이트 해줍니다. 그리고 가볍게 설치를 해 줍니다. 설치가 끝났다면 이미 설치되어 있는 자바를 관리해 줄 필요가 있습니다.

$ sudo update-alternatives --config java


  Selection    Path                                      Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      auto mode
  1            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-6-sun/jre/bin/java       63        manual mode

Press enter to keep the current choice[*], or type selection number: 2

기본으로 쓸 자바를 어떤것을 선택할 것인지 지정해 주는 작업입니다. java-6-sun 을 골라주시면 되겠지요.

$ java -version


으로 검사해 보면 됩니다.



$ apt-get install java


로 한방에 끝이 납니다. 그러나 게스트OS 에서 인터넷을 쓸 수 없는 지금은 모든것을 수동으로 깔아줘야 합니다.

다음으로 이동해서 라이센스에 동의 하시고

http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u31-download-1501634.html

jdk-6u31-linux-i586.bin 를 다운 받습니다.

$ sudo mkdir /usr/java
$ sudo cp jdk-6u31-linux-i586.bin /usr/java
$ sudo su -

루트 계정으로 변경합니다.

# cd /usr/java
# ./jdk-6u31-linux-i586.bin
# exit

다시 본래 계정으로 돌아와서

$ emacs $HOME/.bash_profile

아래와 같은 내용을 맨 아래에 추가해 줍니다. (제 경우에는 파일을 새로 만들었습니다)

export JAVA_HOME=/usr/java/jdk1.6.0_31
export PATH=$PATH:$JAVA_HOME/bin

저장하고 파일을 닫고

$ source $HOME/.bash_profile
$ java -version

결과 값이

java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) Client VM (build 20.6-b01, mixed mode, sharing)

나오면 됩니다.

이상으로 쉬운일을 어렵게 풀어나가고 있는 광이랑입니다.



뭔가 느낌이 확 들어오네요.. 

 
요즘 열심히 하는 게임인 LOL (League Of Legends) 입니다. 각 나라마다 일러스트가 조금씩 차이가 나는데요. 살다 살다 중국쪽 제품이 훨씬 낫다고 느낀건 처음 입니다. 우리나라꺼도 괜찮다고 생각했는데.. 소문에만 듣던 중국판 일러스트를 찾아보고 깜짝 놀랐습니다. 몇개 올려봅니다. 

 
딱 봐도 차이가 심하게 느껴지지요? 캐릭터 카드도 이미지가 살짝 다르네요.


 
현상

갑자기 Aero 효과가 동작을 안하는 것입니다. (예를 들면 반투명 효과 같은 것이 사라짐)
그래서  문제 해결을 아무리 눌러도 문제가 없다고 하는 데. 효과는 적용이 안되는 문제. 웹에 나와 있는 방법대로 해도 전혀 안되더군요. 


해결 방법

1. 그래픽 드라이버를 완전히 삭제해줍니다.  

2. 문제해결을 이용해서 그래픽 드라이버가 문제라는 것을 확인합니다.

3. 그래픽 드라이버 다시 설치해 줍니다.

4. 재부팅! 하시면 문제가 해결되어 있을 것입니다.





 
힘들게 저번 포스트 에서 정리를 했더니  더 쉬운 방법이 있다고 알려줘서 정리를 해 둡니다. (시작할 때 왜 알려주지 않은건가여.. )

저번과 거의 동일 합니다.

1. 아파치 설치하기 

$ sudo apt-get install apache2


2. 톰캣 설치하기 

$ sudo apt-get install tomcat7 tomcat7-docs tomcat7-admin tomcat7-examples


  설치해두면 언젠가는 쓸모가 있으니 한꺼번에 설치해줍니다. 

3. 제대로 설치됐는지 확인해보기 

   http://localhost  와 http://localhost:8080 

  으로 페이지가 제대로 뜨는지 확인해 줍니다. 만약 페이지가 제대로 뜬다면 apache2 와 tomcat7 은 제대로 설치된 것입니다. 

여기까지는 동일하고 여기서부터 살짝 바뀝니다.

4. 톰캣 에서 커넥터와 연결시키기 

$ sudo emacs /var/lib/tomcat7/conf/server.xml 


   에서 


       <!-- Define an AJP 1.3 Connector on port 8009 -->
       <!--
       <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
       -->


   로 되어 있는 부분에서 주석을 제거해서 

 

     <!-- Define an AJP 1.3 Connector on port 8009 -->
       <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />


   로 변경합니다. 이것은 포트 8009 로 날라오는 프로토콜(protocol)이 AJP/1.3 인 것은 8443 포트로 넘기라는 것입니다.  8443은 톰캣 서버가 처리를 하는 포트라고 보시면 됩니다.   


5.  Proxy_AJP 모듈 활성화 시키기

소개해주신 분의 말씀으로는 아파치와 톰캣을 너무 자주 연결시키다 보니 아파치에 아예 포함되서 나오게 됐다고 합니다.

 $ sudo a2enmod proxy_ajp  



이 부분이 저번 포스트에서 언급했던 커넥터 부분과 동일한 기능을 하는 부분입니다.  

6. 아파치 에서 톰캣 연결시키기 

$ sudo emacs /etc/apache2/sites-available/default 


   이 부분에 대한 언급이 없어서 제일 어려웠던 부분입니다. 위의 파일을 열어서 


  

       DocumentRoot /var/www
   <Directory />
     Options FollowSymLinks
 AllowOverride None
   </Directory>
   <Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
  </Directory>


   인 부분을 찾아서 


DocumentRoot /var/lib/tomcat7/webapps/ROOT
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/lib/tomcat7/webapps/ROOT/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

        ProxyPass /servlet/ ajp://localhost:8009/servlet/
        ProxyPassMatch ^/.*\.(jsp|do)$ ajp://localhost:8009/

 로 바꾸어 줍니다. 즉 /var/www 을 /var/lib/tomcat7/webapps/ROOT 로 바꾸어 주는 것입니다. 그리고 아래쪽에 

ProxyPass /servlet/ ajp://localhost:8009/servlet/
ProxyPassMatch ^/.*\.(jsp|do)$ ajp://localhost:8009/

를 추가해줍니다. 부연 설명을 하자면 아파치(apache)가 바라보고 있는 DocumentRoot 와 톰캣이 바라보고 있는 webapps/ROOT 를 같은 곳을 바라보게 해주는 것입니다. 그리고 맨 아래에 추가해 준것은 jsp 와 do 로 끝나는 파일은 ajp 프로토콜로 8009 번 포트로 리다이렉션 해주라는 것입니다. 

 
7. 테스트페이지를 만들어 봅니다. 

$ sudo emacs /var/lib/tomcat7/webapps/ROOT/hello.jsp 


   내용은 

  

<HTML>
   <BODY>
   Hello!  The time is now <%= new java.util.Date() %>
   </BODY>
   </HTML>


  로 채우고 저장합니다. 

8. 톰캣과 아파치 재시작 (Restart)

$ sudo /etc/init.d/tomcat7 restart
  $ sudo /etc/init.d/apache2 restart



9. 브라우저에서 
   
    http://localhost  와 http://localhost/hello.jsp 로 테스트 해봅니다.


 
snow leopard 의 세상이 왔습니다. 

EDITED: 온지는 한참 됐습니다.... 예전 글 갱신한 것이라서요

진짜 왔는가는 별도로 하고 배달된 스노우 레오파드를 깔아줬습니다. 저는 맥빠가 아니니 표범 그려진 껍데기 보면서 하앍거리는 일은 전혀 없었구요

기존의 깔려 있는 osx leopard 위에 걍 덮어서 씌웠습니다. 처음에는 별 감흥없이 돌아가더군요 메뉴바 같은게 바뀐거 같긴 한데 잘 모르겠고 암튼 그냥 새로운 '맥'이겠거니 하고 사용하고 있었는데 결국 문제가 발생했습니다.

svn 이 깔리면서 기존에 제가 패치해둔게 동작을 안하더군요. 스노우 레오파드가 되면서도 그 문제 많은 utf-8 문제를 해결을 안했더군요 (아마 영원히 안할듯 싶네요..) 그래서 깔려있던 subversion source 를 컴파일 해서 다시 사용하려고 했는데 기존에 깔려 있던 라이브러리들이 32bit 라 링크에서 문제가 생기더군요.

이거저거 하다가 귀찮아서 가비얍게 기존 버젼을 포맷해주고 다시 '스노우 레오파드'를 깔아줬습니다. 그리고 다시 시작하는 마음으로 경건하게 svn 을 돌려봤는데 기존에 제가 포스팅 했던 문제가 고쳐지지 않았더군요. 그래서 다시 subversion 을 다운 받았습니다.

1. subversion 소스만 받아서 컴파일을 해보니 컴파일이 되지가 않더군요.

2. subversion - depends 소스 까지 받아서 합쳐서 컴파일 하니 'svn st' 쓸 때마다 segmentation fault 가
발생하더군요.

3. mac port 를 이용해서 subversion 을 설치하면 새로 컴파일 된 버젼이 깔리기는 하는데 snow leopard 안에
포함된 버젼과 똑 같은 svn 이 설치되더군요.

자 여기까지는 사족이고 이제부터가 진짜입니다.

== snow leopard 에 한글 파일 문제 없는 subversion 설치하기 == 

EDITED: subversion 1.6.15 로 업그레이드에 맞춰서 다시 적용합니다

1. mac port 로 dependency 문제를 해결한다.  snow leopard 안에 포함된 subversion 과 같은 svn 이
설치됩니다. (1.6.15 버젼이 설치됨)

sudo port install subversion

2. 이곳 에서 소스를  받습니다. subversion-deps-1.6.15.tar.gz 와 subversion-1.6.15.tar.gz 를 각각 다운 받고 다른 폴더 에 저장합니다.

subversion-1.6.15 가 각각 생기는데 subversion-deps-1.6.15.tar.gz 를 압축 풀었을 때 생기는 subversion-1.6.15 밑의 neon 디렉토리를 subversion-1.6.15.tar.gz 를 압축 풀었을 때 생기는 디렉토리로 이동시킨다.

neon 을 포함시켜주는 이유는 http 나 https 방식으로 접근이 가능한 클라이언트를 만들기 위해서 입니다.

3. 예전 방식 을 이용해서 소스를 패치해줍니다. (아래쪽에 1.6.15 버젼에 맞춘 패치 파일 있음)

patch -p0 < utf8_mac.patch
cd subversion-1.6.15
./configure --with-ssl
make
sudo make install

make 에서 테스트 진행중에 error 가 발생해서 build 가 멈추지만 무시하시고 바로 다음 명령을 진행하시면
됩니다. (버클리 디비 없다고 어쩌구 에러 생기면 무시해 주세요)


매번 패치하는 것도 지겨운데 애플이나 subverion 이나 한국이 관심 대상 밖인 것은 알지만 이 문제는 CJK
들의 공통적인 문제일텐데 왜 아무런 대책이 없나 궁금합니다.





+ Recent posts