サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
akitosblog.seesaa.net
リモートホストからのアクセスを許可する設定 リモートホストexample.comから,ユーザuser1として,サーバのtestdbデータベースに対するアクセスを許可する場合,以下のコマンドを実行する. mysql> grant all privileges on testdb.* to user1@"example.com" identified by 'password_str' with grant option; 上記例では,パスワードによる認証も設定している. ユーザ名 user1 に対するパスワードとして,password_str という文字列を設定している. パスワード認証が必要なければ,identified以下は必要なし. example.comはリモートホストのホスト名だが,IPアドレスでもよい. IPアドレスの場合,ネットワークアドレスを指定することもできる.例えば
ちょっとネットアプリケーションを動かしてみるか!と思って,起動したが,正しく動作しない. そういうときは,ファイアウォールを疑ってみる. CentOSのような企業向けのディストリビューションでは,デフォルトでファイアウォール(iptables)が有効になっていることが多い. iptablesの状態は,以下のコマンドで確認できる. akito$ /etc/init.d/iptables status iptablesを停止するには,以下のコマンド akito$ /etc/init.d/iptables stop OSを再起動したときにiptablesが起動しないようにするには,chkconfigを利用して設定する. akito$ chkconfig iptables off 実験に使うマシンであれば,iptablesを切っても問題ないだろうが,実際にサービスを提供するマシンであれば,必要なポ
awkは,デフォルトで行を空白で分割する. 空白以外で分割したい場合は,-Fオプションを使うと指定できる. 例えばCSVファイルを扱うなら,カンマで区切りたいはず. awk -F"," '{ print $1 }' test.csv こんな感じでよい.
InfiniDBのスタートアップガイドによれば,InfiniDBのインストールの方法は複数ある. 1. RPM 2. binary package 3. DEB package # ソースコードからのインストール方法は書かれてない * RPMの場合 1. RHEL 5.x を想定 (CentOS v5でもよい) 2. calpont-infinidb-1.5.4-1.x86_64.rpm.tar.gz をダウンロード 3. rootユーザになる 4. tar.gzを解凍 tar zxvf calpont-infinidb-1.5.4-1.x86_64.rpm.tar.gz 5. RPMでインストール root# rpm -ivh calpont-* Preparing... ########################################### [1
変数が未定義だったら特定の文字列を表示する,とか,そんなことを実現する方法 script$ cat str-test-1.sh #!/bin/bash var=test echo ${var:-default} echo ${variable:-default} echo ${var:=default} echo ${variable:=default} echo "variable = ${variable}" これを実行すると, script$ bash str-test-1.sh test default test default variable = default となる. 演算子 :- は,左側の変数が存在してnullじゃなければ,その値を返す.それ以外の場合は,右側の値を返す. なので,2つめのecho文では,default という値が出力されている. 演算子 := は
if文で文字列を比較するスクリプトstr-comp.shを書いてみる script$ cat str-comp.sh #!/bin/bash foo=hoge var=hoge if [ ${foo} = ${var} ]; then echo "equal" fi if [ ${foo} != ${var} ]; then echo "not equal" fi if [ -n ${foo} ]; then echo "not null" fi if [ -z ${foo} ]; then echo "null" fi これを実行すると・・・ script$ bash str-comp.sh equal not null となる. -nは,変数がnullでなければ真となる. 反対に-zは変数がnullであれば真となる. この他,文字列の長さを比較するために > や < を利用する
awkで計算する方法 以下のようなログファイルがある. $ cat /tmp/hoge.data 2011-01-13 18:47:46 WARN HogeHoge - getData 180 2011-01-13 18:47:46 WARN HogeHoge - getData 485 2011-01-13 18:47:46 WARN HogeHoge - getData 405 一番右端の数値は,データの数を表している.このデータ数の合計値を計算してみよう. $ cat /tmp/hoge.data | awk '{ sum += $7 } END { print sum }' 1070 最初の {} で,sumという変数を定義し,データ数を加算している. 最後に,合計値を出力するように,END節内で print sum してる. 次に,平均値を計算してみよう. $ cat /
debianでapt-get updateしたらエラーが発生 W: GPG error: http://security.debian.org etch/updates Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 9AA38DCD55BE301A 公開鍵の検証に失敗しているので,新たに鍵を取得する必要がある. akito:~# gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 9AA38DCD55BE301A gpg: requesting key 55BE301A from hkp server wwwkeys.eu.pgp.net gpg: /root/.gnupg/trust
sedを使うって方法もあるが,簡単な置換であればbashの機能で可能 script$ cat str-test-3.sh #!/bin/bash var=/hoge/hoge/test-yeah-hoge-hoge echo ${var} echo ${var#/*/} echo ${var##/*/} echo ${var%-hoge} echo ${var%%-hoge} echo ${var/hoge/tomato} echo ${var//hoge/poteto} こんなスクリプトを実行してみる. script$ bash str-test-3.sh /hoge/hoge/test-yeah-hoge-hoge hoge/test-yeah-hoge-hoge test-yeah-hoge-hoge /hoge/hoge/test-yeah-hoge /hoge/hoge/te
CentOS 5.5 ホスト名を変更する方法 Debianは/etc/hostnameを編集するが,CentOSでは /etc/sysconfig/network を編集する. 以下は,デフォルトのホスト名(localhost.localdomain)から,hogehoge.example.comに変更した設定例 NETWORKING=yes NETWORKING_IPV6=yes #HOSTNAME=localhost.localdomain HOSTNAME=hogehoge.example.com 次に,/etc/hostsを編集する. #127.0.0.1 localhost.localdomain localhost 127.0.0.1 hogehoge.example.com hogehoge localhost ::1 localhost6.localdomain6 l
以下の手順でコピー可能 1. コピーしたいゲストOSをシャットダウン 2. vSphere ClientでESXiサーバにログインし,左側のパネルに表示されているESXiサーバを選択 3. 「構成」タブをクリック 4. ハードウェアの「ストレージ」をクリック 5. データストアを右クリックし,「データストアの参照」をクリックする.データストアブラウザが開く. 6. ゲストOSをコピーするためのディレクトリを作成する.上の方にあるディレクトリのアイコンをクリックすればよい. 7. 適当にディレクトリ名を入力する. 8. コピーしたいゲストOSのディレクトリを選択し,ログ以外のファイルを選択し,コピー 9. 手順6で作成したディレクトリに,ペースト 10. コピーした hoge.vmx ファイルを右クリックして「インベントリへの追加」 11. 仮想マシンの名前を入力しろと言われるので,適当に入
$()の括弧の中でコマンドを記述すれば,その結果を変数として取得できる. script$ cat cmd-str.sh #!/bin/bash val=$(pwd) echo "results of pwd = ${val}" 上記のスクリプトでは,pws コマンドの実行結果を変数 val に格納して,echo で出力している. 実行すると・・・ script$ bash cmd-str.sh results of pwd = /home/akito/script という結果になる. lsコマンドを利用すればファイルやディレクトリのリストを変数に格納できるし,grepした結果を格納することも可能
CentOSで,ふつーに yum で MySQL をインストールすると,バージョンが 5.0.77 になってしまう. 新しいMySQLをyumで入れるには,別のレポジトリを利用しないといけない. $ sudo rpm -ivh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm $ sudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm $ sudo yum --enablerepo=remi,epel install mysql $ sudo yum --enablerepo=remi,epel install mysql-server こんな感じでOK.バージョンを確認してみよう. $ /us
handlersocketを使ってみる MySQL 5.5.8-1 + handlersocket 1.0.6 OSはCentOS 5.5 handlersocketはLinuxのみ対応しているらしい. Javaのクライアントライブラリは別途ダウンロードする必要がある. - http://code.google.com/p/hs4j/ - http://code.google.com/p/handlersocketforjava/ 他,PHPやPython,Rubyなどのクライアントライブラリもある. インストールにはMySQLのソースコードが必要とのこと. rpmでバイナリしかインストールしてなかったので,まずMySQLのソースをインストールする. MySQL-5.5.8-1.rhel5.src.rpmをダウンロードして ~# rpm -ivvh MySQL-5.5.8
Ubuntu 10.04 LTS - Lucid Lynx で kvm を試してみる. kvmってパッケージをapt-get installできるみたいだが,これは,実質的には qemu-kvm パッケージのようだ. 以下のコマンドを実行して,色々表示されれば,プロセッサが仮想化技術をサポートしているとのこと. $ egrep "flags.*:.*(svm|vmx)" /proc/cpuinfo akitoのPC環境(Core 2 Duo E7600)は vmx フラグが立っていた. 何も表示されなければ,プロセッサのサポートが得られないということ.だが,kvm が使えないってわけじゃないみたい.qemu がエミュレーションしてくれるとのこと. とりあえず qemu-kvm をインストールしてみる. $ sudo apt-get update $ sudo apt-get ins
Debian に MySQL 5.5.11 をソースからインストールして起動しようとしたら,いくつかエラーが出た. まず --skip-bdb オプションによるエラー ~$ /etc/init.d/mysql.server start Starting MySQL...The server quit without updating PID file (/var/run/mysqld/mysqld.pid). failed! ログファイルを見ると、 $ sudo tail -f data/db-server.err : 110426 20:28:17 [ERROR] /usr/local/mysql/bin/mysqld: unknown option '--skip-bdb' 110426 20:28:17 [ERROR] Aborting : となっている.--skip-bdbオプシ
Ubuntu 10.04で,マシン起動時にサービスを立ち上げたいので設定する. まず,サービス起動用のスクリプトを/etc/init.d以下に用意する. 今回は,tomcatを起動するスクリプトを /etc/init.d/tomcatsrv として用意する. すでに/etc/init.d/以下にあるスクリプトをコピーすれば簡単だと思う・・・が,スクリプトを触ったことがない人には難しいかも(?). tomcatsrvの内容は以下 #! /bin/sh APP_ROOT_PATH=/home/akito/tomcat/bin BIN_DIR=${APP_ROOT_PATH}/bin case "$1" in start) ${BIN_DIR}/startup.sh ;; stop) ${BIN_DIR}/shutdown.sh ;; *) N=/etc/init.d/household
HBaseの構造 Storageに続いて,以下に書いてある内容は http://www.larsgeorge.com/2010/01/hbase-architecture-101-write-ahead-log.html のまとめ. Akitoの理解が間違っている可能性あり&&元記事ページには画像もあるので,詳しく知りたい方は元記事ページをご覧になったほうがよいと思う. WALは障害対策のライフライン サーバがクラッシュしても,WALを見れば復旧できる WALへの書込みが失敗したら,その操作は失敗ということ 処理の概要 1. クライアントがputやdeleteを実行する HRegionServerにkey-valueペアが送られる 2. HRegionServerは,key-valueを,keyに対応するHRegionに転送する 3. HRegionはログをHLogに書き込
MySQL 5.5.8が公開された!ので,さっそく更新 単純に読み書き性能が向上しているらしい. OSは CentOS 5.5 で,すでにMySQL 5.1をrpmインストールしている状態からアップデートする. # rpm -Uv MySQL-server-5.5.8-1.rhel5.x86_64.rpm で行けるかな,と思ったが,ダメでした.以下のメッセージが出力された. ****************************************************************** A MySQL server package (MySQL-server-community-5.1.48-1.rhel5) is installed. Upgrading directly from MySQL 5.1 to MySQL 5.5 may not be safe i
タイトル: 理科系の作文技術 著者: 木下是雄 ISBN: 4-12-100624-0 もっと若いときに読んでおけば良かったこの本〜〜〜〜!! 論文とか仕様書とかブログとか,様々な文章の書き方について書かれている本. これから書く全ての文章に,この本に書いてある内容を活かしたいものだ・・・ * 2. 準備作業 ・自分の書こうする文書の役割を確認するべし ・主題は何か ・一つの文書は,一つの主題に集中するべし ・読者は誰か,読者の知識は?,読者は何を期待するか,を意識するべし ・本文を書く前に,文書で何を主張するかを考えるべし * 3. 文書の組立て ・重点先行主義で書くべし ・序論で書くべき内容 ・読者が本論を読むべきかどうかの材料 ・主題となる問題 ・なぜその主題を選んだか ・なぜその主題が重要なのか ・問題の背景 ・どういう手段で問題を解こうとするのか ・結びで書くべき内容
以下に書いてある内容は http://www.larsgeorge.com/2009/10/hbase-architecture-101-storage.html の内容のまとめである. Akitoの理解が間違っている可能性あり&&元記事ページには画像もあるので,詳しく知りたい方は元記事ページをご覧になったほうがよいと思う. HBaseは2種類のファイルを扱う 1. Write-Ahead-Log(WAL)ファイル 2. データストレージのファイル 基本的にはHRegionServerがファイルを操作するが,HMasterも操作する場合がある ファイルは大きくなるとHDFS上に分割配置される クライアントはZookeeperにアクセスして,ターゲットのrowがどのregionにあるか把握する クライアントはこの情報をキャッシュする HRegionServerはクライアントからクエ
題目: オープンソフトウェア利用促進事業 アプリケーション実行基盤としてのOpenJDKの評価 調査報告書 出典: 独立行政法人 情報処理推進機構 22年5月 ソフトウェア技術者試験などを主催している情報処理推進機構(IPA)による,OpenJDKの評価のまとめ. SunJDKと比較している点が興味深い.総合的な結論としては,OpenJDKはSunJDKとほぼ変わらない性能を達成できるということ. また,1/3くらいの内容は,KVM (Kernel-based Virtual Machine)の使い方や,KVMの評価となっている.(題目からは想像できん・・) 約200ページというボリューム.おもしろかった点を以下にまとめる. * 1. はじめに ・ベンチマークにはJBentoを利用 * 2. OpenJDKとSunJDKとの互換性についての机上調査 ・JavaSEとは→Javaの基本機能を
Linux (CentOS 5.5)で,1つのディレクトリに作成できるディレクトリ(およびファイル)の数について調べた. 先日,ディレクトリをたくさん作るプログラムを書いて実行したところ,途中でディレクトリを作成できなくなった. 各ディレクトリは,単なる数値を名前とした. 以下は,作成したディレクトリをbashで補間表示しようとしたときの様子である. [akito tmpdir]$ ls /home/akito/tmpdir/ Display all 31998 possibilities? (y or n) 0/ 11598/ 13198/ 14799/ 16399/ 18/ 196/ 21199/ 228/ 244/ 260/ 2760/ 2920/ 3080/ 3602/ 5202/ 6803/ 8403/ 1/ 11599/ 13199/ 148/ 164/ 180/ 1960/
タイトル: G-Store A Scalable Data Store for Transactional Multi key Access in the Cloud 著者: Sudipto Das,Divyakant Agrawal,Amr El Abbadi 出展: SOCC'10 KVS関連の論文 複数のキーに対する操作のアトミック性を保証するミドルウェアを提案 ミドルウェアは,アプリとKVSの間にて動作する * ABSTRACT 今のKVSは single key →multi keyを扱えるようにする * 1. INTRODUCTION 今のKVSはシングルキーレベルでのatomic性しか保証してない アプリによっては,マルチキーでのatomic性も考慮する必要がある GoogleのEppEngineやMegaStoreはキーのグルーピングを考慮してるけど,制約
タイトル: Javaパフォーマンテクニック サーバサイドプログラミングの最適化 著者: ダブ・ブルカ ISBN: 4-89471-452-3 本書では「推測するな,計測せよ」の精神に基づき,多くの評価を実施している. ただし,2001年出版の本であるため,評価ではSun 1.2.2 JDKを利用している. 現在のJava6は,当時と比べれば多くの改良が加えられていることだろう.その点に注意することを忘れなければ,本書で書かれていることは非常に有益だと思う.Javaのバージョンに依存しない,一般的なパフォーマンス向上に関する注意点を多く述べているからだ. 本書を通して書かれている内容であり,akitoが改めて思い知ったのは,「パフォーマンスの追求は,その他のソフトウェアのメトリクス - 機能性,柔軟性,簡潔性,再利用性など - とのトレードオフである」ということである. これだけは胸に留めて
MySQL 5.5.8をソースからインストールしたのだが,デフォルトのエンコードがlatinとかいう設定になっていて日本語を扱えない. そこで,utf8に設定する. utf8に設定する方法は3つある. 1. CMakeするときのオプション CMake するときのオプションとして,utf8を指定する -DDEFAULT_CHARSET=utf8 2. 起動時のオプション 以下のように,起動時にutf8を指定する # /etc/init.d/mysql.server start --character_set_server=utf8 3. my.cnfに設定 バージョン5.1までとは異なり,clientセクションとmysqldセクションでは設定名が異なるので注意 [client] default-character-set = utf8 [mysqld] character-set
Debian 5で,MySQL 5.5.8をソースからインストール 参考URL: http://dev.mysql.com/doc/refman/5.5/en/installing-source-distribution.html rootユーザで作業する.ユーザmysqlを作成する. ~# groupadd mysql ~# useradd -r -g mysql mysql ~# tar zxvf /home/akito/archives/mysql-5.5.8.tar.gz ~# cd mysql-5.5.8/ ~/mysql-5.5.8# cmake . cmakeで以下のエラーが出た. -- Check for working CXX compiler: CMAKE_CXX_COMPILER-NOTFOUND CMake Error: your CXX compiler: "C
タイトル: Kademlia: A Peer-to-peer Information System Based on the XOR Metric 著者: Petar Maymounkov and David Mazieres Kademliaは実装が容易だとされているDHT手法である. Wikipedia(en)を見ると,Kademliaのライブラリがいくつか並んでることからもわかる. というのは,データの検索や配置のメッセージの送受信を通じて,ルーティングテーブルを更新していけるからだと思う. * Abstract KademliaはXORベースのDHT * 1 Introduction Kademlia lookupのメッセージに,ルーティング情報をのせることができる. パラレルクエリによるタイムアウト防止 他のDHTと違って,式で性能を証明できる 160b
OProfileを使う方法の説明 以下のコマンド・オプションはよく使う(CentOSで検証ずみ).個人的に. * プロファイル開始 akito$ opcontrol --start ここで,「カーネルのプロファイリングができません」的なエラーが出たら,次のコマンドを実行する必要がある. akito$ opcontrol --no-vmlinux これで,カーネルのプロファイルをしなくなる. カーネルのプロファイリングをするためには,デバッグシンボルを残すようにカーネルをビルドしないといけない.あと,おそらく圧縮しないvmlinuxファイルを用意しないといけない.このあたりは要確認. プロファイルが始まると,/var/lib/oprofile/samples/current 以下にプロファイリングデータが蓄積される. * プロファイル停止 akito$ opcontrol --stop *
次のページ
このページを最初にブックマークしてみませんか?
『Akito's IT技術 メモ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く