2021년 1월 1일 금요일

하둡 테스트

 1. 테스트 프로그램 작성

% mkdir ~/work
% cd ~/work
% vi URLCat.java
import java.io.InputStream;
import java.net.URL;

import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;
import org.apache.hadoop.io.IOUtils;

public class URLCat {

  static {
    URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
  }
  
  public static void main(String[] args) throws Exception {
    InputStream in = null;
    try {
      in = new URL(args[0]).openStream();
      IOUtils.copyBytes(in, System.out, 4096, false);
    } finally {
      IOUtils.closeStream(in);
    }
  }
}


2. 실행

javac URLCat.java -classpath /opt/cloudera/parcels/CDH/lib/hadoop/client/hadoop-common.jar
jar cvf URLCat.jar URLCat.class
hadoop jar URLCat.jar URLCat hdfs://server01.cloudera.cdh/user/{usename}/quangle.txt


2020년 12월 31일 목요일

클라우데라를 이용한 하둡 설치 및 구성 (CDH 6.3 버전을 기준)

 ref)

https://docs.cloudera.com/documentation/enterprise/6/latest/topics/installation.html


https://sungwookkang.com/1358

https://joonyon.tistory.com/129


리눅스 설정(CentOS7)

--------------------

o 리눅스 설치

0. root 암호는 root

   VMWare에서 network 설정은 bridge로 설정(이렇게 해야 외부에서 지금 설정한 리눅스로 접근이 가능함. IP는 호스트PC와 동일한 네트워크대역의 IP로 설정)


1. 호스트명 변경(설치시 설정을 하였으면 불필요)

# echo "server01.cloudera.cdh" > /etc/hostname

    NOTE. 각 호스트별로 server명을 변경


2. /etc/hosts 설정

192.168.0.111 server01.cloudera.cdh server01 
192.168.0.112 server02.cloudera.cdh server02 
192.168.0.113 server03.cloudera.cdh server03 
192.168.0.114 server04.cloudera.cdh server04 
192.168.0.115 server05.cloudera.cdh server05 


3. 방화벽 중지

# systemctl status firewalld
# systemctl stop firewalld
# systemctl disable firewalld


4. SELinux 기능 제거

# setenforce 0
# vi /etc/selinux/config
SELINUX=disabled


5. NTP 활성화 : (optional)CentOS7에 기본으로 탑재된 chronyd 대신 ntpd를 설치

# yum -y install ntp
# systemctl stop chronyd
# systemctl disable chronyd
# systemctl start ntpd
# systemctl enable ntpd


6. openjdk 업데이트 및 jdk-devel설치

# java -version
# rpm -qa|grep openjdk
# rpm -e java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
# rpm -e java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64
# yum -y install java-1.8.0-openjdk.x86_64
# yum -y install java-1.8.0-openjdk-devel.x86_64
# java -version
# rpm -qa|grep openjdk

# (export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk)


7. sysctl 설정

(vm.swappiness  20에서 10으로 변경)
# sysctl vm.swappiness
# sysctl vm.swappiness=10
# sysctl vm.swappiness
# echo "vm.swappiness=10" >> /etc/sysctl.conf
# sysctl -p

(Disabling Transparent Hugepages (THP))
# echo never > /sys/kernel/mm/transparent_hugepage/defrag
# echo never > /sys/kernel/mm/transparent_hugepage/enabled
# cat /etc/rc.local
# echo "echo never > /sys/kernel/mm/transparent_hugepage/defrag" >> /etc/rc.local
# echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.local
# cat /etc/rc.local


8. ssh 접속 지연 해결

# vi /etc/ssh/sshd_config
...
#UseDNS yes 이부분을
UseDNS no 수정
...

# systemctl restart sshd


9. 중지

(in all hosts)
# shutdown -h now


o 복제

1. VMWare에서 위에서 설치한 리눅스를 복제


2. 기동


3. IP 설정 : 중복된 UUID를 재설정

# cd /etc/sysconfig/network-scripts/
# uuidgen ens33 >> ifcfg-ens33
# vi ifcfg-ens33
...
UUID=
IPADDR=
...

# systemctl restart network


4. ssh

[root@server01.cloudera.cdh ~]# ssh-keygen -t rsa
[root@server02.cloudera.cdh ~]# ssh-keygen -t rsa
[root@server03.cloudera.cdh ~]# ssh-keygen -t rsa

# ssh-copy-id -i ~/.ssh/id_rsa.pub root@server01.cloudera.cdh
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@server02.cloudera.cdh
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@server03.cloudera.cdh


5. reboot

(in all hosts)
# reboot


-------------------------------------------------------------------------



MariaDB 설치 및 설정

--------------------

1. DB 설치

(in server01)
# yum -y install mariadb-server

# vi /etc/my.cnf
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
transaction-isolation = READ-COMMITTED
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
symbolic-links = 0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

key_buffer = 32M
# (deprecated) key_buffer_size = 32M
max_allowed_packet = 32M
thread_stack = 256K
thread_cache_size = 64
query_cache_limit = 8M
query_cache_size = 64M
query_cache_type = 1

max_connections = 550
#expire_logs_days = 10
#max_binlog_size = 100M

#log_bin should be on a disk with enough free space.
#Replace '/var/lib/mysql/mysql_binary_log' with an appropriate path for your
#system and chown the specified folder to the mysql user.
log_bin=/var/lib/mysql/mysql_binary_log

#In later versions of MariaDB, if you enable the binary log and do not set
#a server_id, MariaDB will not start. The server_id must be unique within
#the replicating group.
server_id=1

binlog_format = mixed

read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M

# InnoDB settings
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit  = 2
innodb_log_buffer_size = 64M
innodb_buffer_pool_size = 4G
innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
innodb_log_file_size = 512M

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<


# systemctl start mariadb
# systemctl enable mariadb


(root 패스워드  기타 보안 설정)
# /usr/bin/mysql_secure_installation
NOTE. 일단 패스워드는 계정과 동일하게...
<실행예>
[root@server01 ~]# /usr/bin/mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
  SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] n
... skipping.

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!
[root@server01 ~]# 


# mysql -u root -p
Enter password: [암호입력]

NOTE. default 계정
https://docs.cloudera.com/documentation/enterprise/6/latest/topics/install_cm_mariadb.html

MariaDB [(none)]> create database scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
MariaDB [(none)]> create database metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
MariaDB [(none)]> create database hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
MariaDB [(none)]> create database rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

MariaDB [(none)]> grant all privileges on scm.* to 'scm'@'%' identified by 'scm';
MariaDB [(none)]> grant all privileges on metastore.* to 'hive'@'%' identified by 'hive';
MariaDB [(none)]> grant all privileges on hue.* to 'hue'@'%' identified by 'hue';
MariaDB [(none)]> grant all privileges on rman.* to 'rman'@'%' identified by 'rman';
MariaDB [(none)]> flush privileges;

MariaDB [(none)]> exit


2. 접속 프로그램 설치

(in server02, server03)
# yum -y install mariadb

# mysql -h server01.cloudera.cdh -u scm -p

MariaDB [(none)]> show databases;
MariaDB [(none)]> use scm;
MariaDB [scm]> exit


3. mariadb를 위한 JDBC 드라이버 설치

(in all hosts)
# ll /usr/share/java/my*
# wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
# tar zxvf mysql-connector-java-5.1.46.tar.gz 
# cd mysql-connector-java-5.1.46/
# cp -p mysql-connector-java-5.1.46.jar /usr/share/java/mysql-connector-java.jar

NOTE. yum으로 설치시 버전(5.1.26)은 추후에 Hive 서비스 설치시 오류 발생!


CM 다운로드

------------

    1. repo 다운로드

    (in server01)

    # cd /etc/yum.repos.d/

    # wget https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/cloudera-manager.repo

    NOTE. 6.3.1 이후 버전은 인증 과정이 필요함.


    2. 설치

    # yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server


@@@ 여기까지 하고 VM복제..

    3. Enable Auto-TLS

    # JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk /opt/cloudera/cm-agent/bin/certmanager setup --configure-services


    4. 클라우드 매니저를 위한 DB설정 : 실행후 scm의 스키마에 테이블이 생성됨.

    # /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm

    (DB서버와 master가 다른 경우)

    # (/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h server02.cloudera.cdp --scm-host server01.cloudera.cdp scm scm)


    <실행예>

    [root@server01 ~]# /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm

    Enter SCM password: 

    JAVA_HOME=/usr/lib/jvm/java-openjdk

    Verifying that we can write to /etc/cloudera-scm-server

    Creating SCM configuration file in /etc/cloudera-scm-server

    Executing:  /usr/lib/jvm/java-openjdk/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/java/postgresql-connector-java.jar:/opt/cloudera/cm/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.

    [                          main] DbCommandExecutor              INFO  Successfully connected to database.

    All done, your SCM database is configured correctly!

    [root@server01 ~]# 

    

@@@    [root@server01 ~]# mysql -u scm -p

@@@    Enter password: 

@@@    MariaDB [(none)]> use scm;

@@@    MariaDB [scm]> show tables;


    4. 설치 시작

    (in server01)

    # systemctl start cloudera-scm-server

    # tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log


확인

----

    1. 에코 시스템 설치

    windows의 hosts파일에도 등록하자(C:\Windows\System32\drivers\etc\hosts)


    ##### cloudera cluster #####

    192.168.0.111 server01.cloudera.cdh server01

    192.168.0.112 server02.cloudera.cdh server02

    192.168.0.113 server03.cloudera.cdh server03

    192.168.0.114 server04.cloudera.cdh server04

    192.168.0.115 server05.cloudera.cdh server05


    1) 웹브라우저에서 https://server01.cloudera.cdh:7183/

       초기 계정과 암호는 admin / admin

       NOTE. http:// 로 연결하면 안됨!


    Enterpreise Cloudera Enterprise 체험판을 선택(default)


    2. 설치

    1) 클라스터 이름:

    CM_Cluster


    2) Specify Hosts

    server01.cloudera.cdh

    server02.cloudera.cdh

    server03.cloudera.cdh


    3) Respository 선택


    4) JDK 설치 옵션

    !!!체크하지 말것!!!! <- 체크시에는 OracleJDK가 설치되고, 미체크시에는 미리 설치한 OpenJDK를 사용하게 됨.


    5) SSH 로그인 정보

    암흐를 지정해도 되고, 아니면 실행프로그램을 실행한 호스트에서 root 계정의 ~/.ssh/id_rsa 내용을 복사해서 붙여 넣어도 된다.


    6) Install Agents


    7) Install Parcels


    8) Select Services

    ...모든 서비스는 차후에 설치...

    HDFS

    Yarn (MR2 included)

    ZooKeeper


    9) 역할 할당 사용자 지정

    HDFS>

    Namenode: server01

    Secondary Namenode: server02

    Balancer: server01

    HttPFS: (선택안함)

    NFS Gateway: (선택안함)

    DataNode: 모든 호스트


    Cloudera Management Service>

    Service Monitor: server01

    Activity Monitor: (선택안함)

    Host Monitor: server01

    Reports Manager: server01 <= DB 연결 필요(default 접속 정보: rman rman rman)

    Alert Publisher: server01

    Telemetry Publisher: (선택안함)


    YARN>

    JobHistory Server: server02

    NodeManager: DataNode


    ZooKeeper>

    Server: server01, server02


    10) 데이터베이스 설정

    Reports Manager를 위한 접속 정보: rman, rman, rman 입력후 테스트 연결 수행


    11) 변경 내용 검토


    12) 명령 세부 정보


    13) 요약

    ************************************************************************


    <<<<<<추가 서비스 설치>>>>>>


    o Hive 설치

    org.apache.hadoop.hive.metastore.HiveMetaException: Failed to retrieve schema tables from Hive Metastore DB,Not supported

    => mysql-connector-java.jar 버전 오류시 해결 방법


    [root@server01 work]# wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz

    [root@server01 work]# tar zxvf mysql-connector-java-5.1.46.tar.gz 

    [root@server01 work]# cd mysql-connector-java-5.1.46/

    [root@server01 mysql-connector-java-5.1.46]# mv /usr/share/java/mysql-connector-java.jar /usr/share/java/mysql-connector-java.jar.orig

    [root@server01 mysql-connector-java-5.1.46]# cp -p mysql-connector-java-5.1.46.jar /usr/share/java/mysql-connector-java.jar 


-------------------------------------------------------------------------


2015년 3월 28일 토요일

2014년 1월 3일 금요일

시퀀셜 시프트 구매

드뎌 살까말까 반년을 고민한 녀석을 구매하게 되었네요.

frex gp shift+

국내에서 수입해서 파는 곳이 있기는 한데 최근에 엔화 약세가 상당해서 직접 구매를 시도했습니다. 가격이 shift + USB 보드 + USB 케이블 + 배송비 를 포함하다보니 한화기준으로 17만원을 조금 넘어서 관세가 1만 7천원 정도 나왔는데 주문시에 배송비등을 제외해서 한화기준 15만원을 넘지 않게 적어달라고 부탁하면 관세를 물지 않고 들여올수도 있을듯 싶네요.

택배 박스를 뜯었을때에는 저렇게 포장되어 있습니다. 오른쪽은 해외배송에 따른 서류 

시프트 + USB 보드 + USB케이블

USB 보드는 저렇게 설명에 관련된 A4지 한장이랑 본체하나가 전부입니다.  보드를 주변에 있는 플라스틱으로 보호를 해야할듯 하네요.

페인 거치대에서 G27 시프터를 제거하고 시퀀셜 시프터를 장착한 모습
USB 보드를 통해서 PC와 연결하면 Frex GP shift라는 하드웨어로 인식을 합니다.

frex gp 에서 나오는 시프터의 가장 큰 장점은 사용자가 하드웨어적인 MOD를 가할수 있는 점인데요, G27인 경우에는 내부를 분해해서 시퀀셜에 관련된 부위를 납땜을 하면 USB보드가 필요없이 다이렉트로 인식을 합니다. 즉 G27의 패드 시프터와 동일하게 작동을 합니다.
이 장점 때문에 콘솔기반의 게임에서도 시프터를 이용할수 있죠.



2013년 12월 2일 월요일

rFactor2 멀티방 만들기

참 웃기는 이야기이지만 rFactor2에서 멀티방을 만들기란 쉬운일이 아닙니다. 왜 그렇게 복잡하게 만들었는지 모르겠지만 멀티를 하기 위해서 이렇게 난해한 것 까지 유저들이 알아야 할 필요가 있는지 의문이 드네요. 그동안 친구들과 원하는 서킷과 차량으로 멀티를 해보지 못했다면 지금 설명할 내용을 잘 이해하세요. 설정을 하고 나면 사실 별거 아닙니다.

rFactor2 멀티 리스트
우선멀티를 접속하면 위와 같은 화면이 나옵니다. 그런데 문제는 JOIN을 누르면 Server Connection Fail 메시지만 나오면서 접속이 안되는 경우가 대부분 입니다. 물론 기존에 만든 방들은 잘 접속이 됩니다. 문제는 멀티를 할려면 멀티를 위한 프로그램을 유저가 개인PC에서 실행해서 방을 만들어야 하는 구조라는게 골치거리입니다. 즉, 멀티를 위한 별도의 서버가 없이 개인이 서버 역할을 해줘야 한다는 겁니다. 마치 초창기의 멀티게임이 이와 같았죠.

아무튼, 그래서 rFactor2를 실행하면 Host 프로그램을 실행해야 합니다.아래 그림에서 우측 하단에 Host라고 되어 있는 부분을 클릭하면 됩니다.
rFactor2 메인 화면

우선 Host의 프로그램은 나중에 설명하기로 하고(작성방법도 포함) 다음 다음 버튼을 계속 눌러서 멀티방을 만들면 마지막에 다음과 같은 화면이 나옵니다.
가운데 Matcher Status가 Server addded successfully 나 Server updated successfully 가 나오면 Host 프로그램 실행은 정상적으로 된 겁니다.

멀티방을 만든 PC에서 여기까지가 끝이 아닙니다. 다른 유저가 멀티방을 만든 PC에 접속을 해야하기 때문에 여기서부터 방화벽이니 포트포워딩이니 하는 문제가 발생을 합니다. 대부분 공유기를 이용하기 때문에 발생하는 문제인데요, 가장 손쉽게 해결할수 있는 방법은 공유기에서 DMZ를 설정하는 것입니다. 공유기 모델에 따라서 설정화면이 다를수는 있으니 기본적인 기능은 동일하므로 여기서는 제가 사용하는 netis 공유기 화면을 기준으로 설명하겠습니다.

DMZ 설정
netis 공유기에서는 좌측의 방화벽/포트 포워딩 -> 방화벽 해제(DMZ) 메뉴에 가시면 위와 같은 화면이 나옵니다. 여기서 슈퍼 DMZ를 사용함으로 설정하시면 됩니다. 아래의 맥주소는 자동으로 설정이 되는데 cmd창에서 한번 확인을 하실 필요는 있을거 같습니다. 이렇게 설정하면 이제 공인IP주소를 사용할 수 있으니 외부에서 자유롭게 접속이 가능합니다. 방화벽에 따라 설정을 더 추가해야 할 부분이 있을수도 있습니다.

위의 방법이 편한긴 한데 사실 방화벽 문제가 있어서 안될수가 있습니다. 그래서 저는 수작업으로 포트포워딩을 설정합니다. 이때 IP는 DHCP가 아닌 수동으로 고정IP로 설정을 합니다. 그런 다음 아래와 같이 포트 포워딩을 설정을 해줍니다.
포트포워딩 설정
netis에서는 가상 서버라고 되어 있어서 혼동이 되는데 포트포워딩 화면입니다. 기본적으로 rFactor2는 54297포트를 TCP, UDP 포워딩 해주고 64297 포트를 포워딩 해주면 끝입니다.

이 설정은 Multiplayer.ini 파일에 설정이 되어 있는데 건드리지 않는다면 위의 포트를 설정해주시면 됩니다.

Multiplayer.ini

여기까지 오셨다면 멀티방 만드는 단계는 끝난겁니다. 이제 멀티를 즐길일만 남았죠.

하지만, 골치 아픈게 이제 남았습니다. rFactor2가 rFactor1도 그랬지만 서킷, 차량들이 유저가 만든 것에 의존을 많이 합니다. 그러다 보니 멀티방을 만들때로 서킷, 차량 등을 일일이 설정을 해줄 필요가 있습니다. 당연히 서킷, 차량 등은 같이 멀티를 할 상대방 유저에 이미 설치가 되어 있어야 하겠죠.(멀티방을 어떻게 만드느냐에 따라 사실 이미 설치가 될 필요가 없기도 합니다.)

rFactor2가 설치된 디렉토리에서 Support/Tools에 가시면 MAS2.exe 파일이 있습니다. 이것으로 이른바 vmod라고 하는 가상의 mod를 만들수 있는데요, 멀티를 위해 어떤 서킷, 차량을 추가할지 등을 선택해서 멀티방을 만들 파일을 만든다고 보시면 되겠네요.

MAS2.exe
상단의 아이콘중 박스모양을 클릭하면 위와 같이 패키지를 생성할수 있는 메뉴가 나옵니다. 네가지를 선택할수 있는데요,여기서는 위의 2개만 생각하시면 정신 건강에 좋습니다.

Mod 이름을 적어주고 다음화면에서는 서킷을 다음화면에서는 차량을 차례로 선택할수 있습니다. 마지막으로 부가 설정을 하고 나면 아래와 같은 화면이 나옵니다. 여기서는 앞에서 선택했던 것을 빼거나 미쳐 선택하지 못한 것을 다시 추가 할수 있습니다. 결정이 끝났으면 아래에 있는 Package 버튼을 클릭합니다.

패키지 작성

이제 마지막으로 등록만 하면 해당 파일이 rFactor2가 설치된 디렉토리의 Packages 하위 디렉토리에 지금까지 작성한 패키지 파일이 생성됩니다. (rfmod 확장자를 가진 파일)

패키지 등록

패키지 작성을 끝냈으면 이것을 설치한 다음 rFactor2를 실행해서 Single Player에서 제대로 수행되는지 확인 작업이 필요합니다. 설치된 모드가 원하는 서킷과 차량을 제대로 반영되어 있는지 확인하고 Race버튼을 눌러 실제 플레이가 가능한 것 까지 확인을 합니다. 이제 확인 끝났으면 Host 프로그램을 실행해서 멀티방을 만들고 Online Race로 rFactor2를 실행해서 멀티방에 조인이 되는지 확인이 되면 멀티방에 초대할 친구들에게 방제목을 알려줘서 접속하게 하면 됩니다.

두서없이 적었네요. 일단 여기까지만 적고 시간나는대로 정리를 좀 해야겠습니다. ㅎㅎ

ref) http://www.youtube.com/watch?v=KjQ_eo2zsl4


Date: 2013.12.02






2013년 9월 10일 화요일

X Window Manager 비교

회사에서는 업무상 Windows7을 사용하고 집에서는 주로 MacOS를 사용하는 편인데요, 개발 관련된 작업을 할때에는 소스를 보기 위해서 NetBSD를 사용하는 편입니다. Linux에서 BSD계열로 전환하게 된 이유가 소스를 깔끔하게 볼수 있는 장점과 족보(?)가 있는 BSD계열이 저에게는 잘 맞는거 같습니다.

항상 VMWare에서 실행을 했었는데 이번에 좀 더 친숙해져볼려고 노트북에 아예 NetBSD를 설치했습니다. 유닉스 계열을 익히는 것은 왕도는 없고 그냥 매일 쓰다보면 스킬이 향상되는걸 알기 때문에 그런 마음을 먹게된거구요, vi를 뭐 책보고 배웠나요. 그냥 손가락 가는대로 키보드 두들기다 보니 몸에 친숙해지는거랑 같은 이치인거 같습니다.

노트북에 단독으로 OS를 설치하다보니 X Window가 필수인거 같습니다.

1. twm
twm
뭐 이거 쓰시는분 없겠죠. X11 설치하면 기본적으로 설치되어 있는 윈도우 매니저인데 유저가 사용한다기 보단 X가 제대로 설치되고 기동이 되는지 테스트 용도 정도로만 쓰는거 같습니다.


2. fvwm2
fvwm2
패키지 위치 : /usr/pkgsrc/wm/fvwm/

twm 기반으로 해서 만들어진 fvwm의 version2 입니다. fvwm과 기능면에서 향상이 있는데 기존버전에 익숙한 사람들은 fvwm을 쓰는거 같습니다. 무지 오래된 윈도우 매니저이지만, oldies but goodies. 한번 익혀놓으면 아마 X가 살아있는한 평생 써먹을수 있을듯합니다. 심플한 화면 구성이 맘에 들지만 설정이 어렵다면, 아래의 테마를 설치해서 사용해보는 것도 좋을 듯 싶습니다. 테마를 조금만 손 보거나 인터넷에서 마음에 드는 걸로 설치해서 사용해본다면 이것도 나쁘지는 않을 듯 싶습니다. 아니 여기에 만족하신다면 금상첨화이겠죠. 쓸데없이 비대해지는 X가 싫다면 추천!

fvwm2 with theme


3. WindowMaker

WindowMaker
패키지 위치 : /usr/pkgsrc/wm/[windowmaker|wmakerconf|wmthemes]

한때 개발이 중단된게 아니냐 무성한 소문이 들었지만 최근에 다시 개발되어서 버전이 올라왔습니다.(아직도 버전이 0점대라는게 참...) 개인적으로 상당히 애착이 가는 윈도우 매니저이고 인터넷에 괜찮은 테마들이 꽤 많이 있어서 질리지 않는 화면 구성을 가지고 있습니다. 설정도 wmakerconf 프로그램을 이용해서 쉽게 설정할수 있다는게 가장 큰 매력이 아닐까 싶네요. fvwm을 첨에 써볼려고 했지만 무지막지한 설정의 어려움을 겪게된 이후에 설정 프로그램이 있는 이 녀석으로 갈아타고 지금껏 쓰고 있죠. fvwm처럼 심플한 구성이 마음에 듭니다. 최근의 업데이트 버전이 없었다면 과감히 버렸을 녀석인데 ㅎㅎ


4. OpenBox

OpenBox
패키지 위치 : /usr/pkgsrc/wm/openbox/

BlackBox에서 파생된 윈도우 매니저인데 좀더 구성이 심플하고 무엇보다 XFCE, KDE, GNOME과 같은 X 윈도우 환경을 구성하는 프로그램과 궁합이 잘 맞습니다. 그래서 단독으로 사용하는 경우는 글쎄요. 많이 없을거 같다는 생각이 드네요. 그래도 심플한 구성이 마음에 듭니다.


5. XFCE4

xfce4
패키지 위치 : /usr/pkgsrc/meta-pkgs/xfce4/

이 녀석은 위에서 열거한 윈도우 매니저와 성격상 많이 다른데요, 단순한 윈도우 매니저라기 보다 X 환경을 완전히 장악(?)하는 프로그램이라 볼수 있습니다. 설치하면 잡동사니가 상당히 많이 설치가 되죠. 그나마 GNOME이니 KDE에 비해서는 적은편이고 개별 프로그램들이 가벼운 편입니다. 그래서 그나마 심플한 편이죠. GNOME, KDE 정말 무지막지한 녀석들인거 같습니다. 업데이트 할려면 지옥이 열린다고 봐야죠. 그래서 본인이 쓰는 PC환경이 좋으면 이 녀석을 주로 씁니다.

사운드가 dmesg상에는 인식하는 것으로 나오는데 소리가 나질 않는다면,
/usr/pkgsrc/meta-pkgs/gstreamer0.10-plugins 를 설치하면 됩니다.
Multimedia->Mixer 선택시 에러



-------------------------------------------------------------------------------------------------------------------------------------------------------

유닉스의 터미널 화면에 익숙해질때 즈음이면 X가 사람 머리를 골치아프게 합니다. 예전에 비하면 정말 천국이지만 말이죠. X설치하고 나면 윈도우 매니저 선택하는게 또 사람 마음을 갈팡질팡하게 만듭니다. 확실한건 이것저것 맞보기로 하는건 독이 될뿐 도움이 별로 되질않습니다. 하나의 윈도우 매니저에 정착해서 그쪽 세계의 사람이 되어 보세요. 한가지만 마스터하면 나머지는 그냥 자연스럽게 습득이 됩니다. 윈도우 매니저가 중요한게 아니라 X를 실행하고 무슨 일을 할지를 결정하는게 더 중요하겠죠.

최근에는 libreoffice, firefox 등 쓸만한 프로그램들이 많아서 개인 용도로 사용하기에도 크게 무리는 아닐거 같습니다.

NOTE. 위의 화면은 모두 NetBSD-6.1 에서 pkgsrc로부터 컴파일 이후 어떠한 설정 변경없이 초기 실행화면만을 캡쳐한 화면입니다.

참고사이트.
      Window Manager for X

2013년 8월 25일 일요일

X-Motor Racing 간략한 리뷰

50달러에 가까운 비용을 지불할만한 가치가 있는가?

본 게임은 1인 개발자에 의해 만들어진 오픈아키텍쳐 지향 게임입니다. 초반에 잠깐 붐이 일어나는가 했더니 지금은 완전히 외면받아서 아주 극소수만이 즐기는 게임이 아닐까 생각이 드네요.

한때 racedepartment에 포럼의 한 카테고리로 자리잡고 있었는데 어느순간 없어졌더군요. 그때 이게임의 최대 이슈는 라이센스 비용이었습니다. 90달러를 책정했던걸로 기억하는데 미친거죠^^

기본적으로 제공하는 차량과 트랙은 얼마되지 않습니다. 다행히 커뮤니티에서 만든게 좀 있어서 전부설치하면 그나마 많아집니다. 대부분 다른 게임에 있는걸 본게임에 맞게 변환작업을 한 MOD가 대부분입니다.

단점부터 적어보겠습니다.
- 비싼 라이센스 비용(제가 생각하기에 이 게임의 비용 책정은 문제가 많습니다.)
- 게임유저가 거의 없음 (온라인은 꿈도 꾸지 말것)
- 자잘한 버그로 인한 게임 실행 중단
- 변동이 큰 프레임 (게임중에 20~50 프레임을 왔다갔다 합니다.)
- 차량과 트랙 선택시 로딩시간이 꽤 거슬림 (1.5초 정도 딜레이가 생기는거 같습니다.)
- 지나친 그래픽 효과 (효과가 많다고 좋은게 아니라는걸 이 게임을 하면서 알았습니다.)
- UI의 조잡함

장점은,
- 오픈 아키텍쳐 구조로 차량, 트랙 에디터가 포함되어 있음.


저의 짧은 리뷰를 적자면,
3D 물리 타이어 엔진? 뭐 그런건 모르겠고, 게임을 할수 있는 프레임도 제대로 나오질 않습니다. GTX680 그래픽카드에서도 이정도니 말 다했습니다. 최적화 빵점 게임. AI도 발로 만든 게임. 서킷은 왜 그렇게 길쭉하게 표현이 되는건지 원... 아무튼 정이 안가는 게임이네요.



Graphics Optin 설정 화면