ラベル Apache の投稿を表示しています。 すべての投稿を表示
ラベル Apache の投稿を表示しています。 すべての投稿を表示

2010年3月24日水曜日

Mac OS X Snow Leopard (10.6.2) に Apache Cassandra をインストールする

先日、Apache Software Foundationのトップレベルプロジェクトになった Apache Cassandra (以下、 Cassandra ) を Mac OS X にインストールする方法を紹介します
(元ネタはコチラになります)
なお、今回のインストール例では簡単に試用することを目的として、ユーザディレクト以下にインストールしています

また、 Cassandra についての詳細は本家サイトWikipedia 等を参照ください

まず、本家サイトより Cassandra 本体をダウンロードします
今回の例では 10/03/14 時点で最新リリースとなる、 apache-cassandra-0.5.1-bin.tar.gz を使用して説明します
(異なるバージョンを使用する場合は適時読み替えてください)

ダウンロード後、ユーザディレクト以下の適当な場所に解凍してください
今回は説明上、 "/Users/Cassandra" ディレクトリ以下にインストールするものとします
また、展開されたディレクトリ、"/Users/Cassandra/apache-cassandra-0.5.1" を $CASSANDRA_HOME と表記します

"$CASSANDRA_HOME/conf/strage-conf.xml" を編集します
"Directories" の項目( "CommitLogDirectory" 、 "DataFileDirectory" 、 ”CalloutLocation” 、 ”StagingFileDirectory” )を以下のように変更します
  <!--
‾ Directories: Specify where Cassandra should store different data on
‾ disk. Keep the data disks and the CommitLog disks separate for best
‾ performance
-->
<CommitLogDirectory>/Users/Cassandra/apache-cassandra-0.5.1/commitlog</CommitLogDirectory>
<DataFileDirectories>
<DataFileDirectory>/Users/Cassandra/apache-cassandra-0.5.1/data</DataFileDirectory>
</DataFileDirectories>
<CalloutLocation>/Users/Cassandra/apache-cassandra-0.5.1/callouts</CalloutLocation>
<StagingFileDirectory>/Users/Cassandra/apache-cassandra-0.5.1/staging</StagingFileDirectory>

次に "$CASSANDRA_HOME/conf/log4j.properties" を編集します
ログ出力場所を以下のように変更します
# Edit the next line to point to your logs directory
log4j.appender.R.File=/Users/Cassandra/apache-cassandra-0.5.1/log/cassandra/system.log


最後に "$CASSANDRA_HOME/bin/cassandra.in.sh" を編集します
"JVM_OPTS" より、 "-Xrunjdwp:transport" の "address"(初期値8888) 、 "-Dcom.sun.management.jmxremote.port"(初期値8080) の項目をご使用の環境で使用していないポートに変更します
(初期値となっているポート番号を使用していない等、特に変更の必要がない場合は編集は不要です)

以上で準備が終わりましたので、 Cassandra を起動します
Terminal.app 等で "$CASSANDRA_HOME/bin" 以下にカレントディレクトリを変更し、以下のコマンドを実行します
cassandra -f


数行起動ログが表示された後、 Cassandra が起動します
"ERROR: transport error 202: bind failed: Address already in use" というエラーメッセージが表示された場合、使用するポートが、すでに別のアプリケーションに使用されている可能性があります
"$CASSANDRA_HOME/bin/cassandra.in.sh" の設定を見直してください

無事起動したら、クライアントからサーバにアクセスします
"$CASSANDRA_HOME/bin" 以下にある "cassandra-cli" コマンドを下記のように実行してください
cassandra-cli -host localhost

実行後、 サーバコンソールが起動しますので、 "show version" コマンドを実行します
下記のようにバージョン情報が表示されます
cassandra> show version
0.5.1


以上で Cassandra のインストールと起動になります
次回はクライアントからデータの追加について説明したいと思います

2009年1月31日土曜日

NetBeans Wicket サポート

新年1回目のポストです(1月最終日ですが…)

元ネタは Geertjan のWicket に関するデモ(NetBeans.tvはコチラ)です

以下は、"Java Web および EE" サポート、 GlassFish アプリケーションサーバー、または Tomcat サーブレットコンテナがインストール、設定されていることが前提になっています
(今回は GlassFish V3 を使用しています)
まずは、 Wicket プラグインのインストールを行います
プラグインウィンドウのリストより "Wicket Support" と "Wicket File Template" が対象となります


インストール、 NetBeans の再起動後、プロジェクトの作成を行います
プロジェクト作成ウィンドウにて、"Java Web > Web Application" を選択します


プロジェクトの場所とプロジェクト名は適当な値を入力します
(例では "WicketSampleApp" としています)


次はサーバー等の設定では、お使いの環境に合わせ、適時変更してください
(例ではデフォルトのままとしています)


最後にフレームワークの選択します


リストより "Wicket" を選択します
Wicket に関する各設定項目は必要に応じて入力してください
(今回はデフォルトのままにしています)

すべての設定を終えると、プロジェクトが生成されます
生成後、プロジェクトを選択し、実行してみます


実行すると、 GlassFish の起動とデプロイが行われ、ブラウザにサンプル画面が表示されます


次は単純に文字列を表示してみます
"Source Package" 内から "HomePage.html" を開きます


ファイルへ以下のように追記します
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title></title>
<link wicket:id='stylesheet'/>
</head>
<body>
<span wicket:id='mainNavigation'/>
<!-- 追加分 -->
<span wicket:id="message1" >ダミー用メッセージ(実行時置換されます)</span>
<!-- 追加分 -->
</body>
</html>

入力後、 "wicket:id" の値 "message1" を ⌘ + クリックすると、対応する "HomePage.java" が開きます
コンストラクタに"add(new Label("message1", "Hello World!"));"を追記します
public class HomePage extends BasePage {

public HomePage() {
// message1 に表示する文字列を追加
add(new Label("message1", "Hello World!"));
}
}

保存後、 NetBeans 6.5 の新機能により自動デプロイされるので完了したら、プラウザをリロードします
(自動デプロイを Off に設定している場合はメニューよりデプロイを行ってください)
以下のように、設定した "Hello World." が表示されます


最後に Ajax を利用した、入力補完機能を実装してみます
先ほどの "HomePage.java" に "AutoCompleteTextField" 型のプロパティ "field" を追加し、 "getChoices()" メソッドを以下のように実装します
    final AutoCompleteTextField field = new AutoCompleteTextField("countries", new Model("")) {
@Override
protected Iterator getChoices(String input) {
if(Strings.isEmpty(input)) {
return Collections.EMPTY_LIST.iterator();
}

List choices = new ArrayList(10);
Locale[] locales = Locale.getAvailableLocales();

for(Locale locale : locales) {
String country = locale.getDisplayCountry(Locale.US);

if(country.toUpperCase().startsWith(input.toUpperCase())) {
choices.add(country);

if(choices.size() == 10) {
break;
}
}
}

return choices.iterator();
}
};

追加した "field" をコンストラクタに追加します
    public HomePage() {
add(new Label("message1", "Hello World!"));
add(field);
}

全体としては以下のようになります
public class HomePage extends BasePage {

public HomePage() {
add(new Label("message1", "Hello World!"));
add(field);
}

final AutoCompleteTextField field = new AutoCompleteTextField("countries", new Model("")) {
@Override
protected Iterator getChoices(String input) {
if(Strings.isEmpty(input)) {
return Collections.EMPTY_LIST.iterator();
}

List choices = new ArrayList(10);
Locale[] locales = Locale.getAvailableLocales();

for(Locale locale : locales) {
String country = locale.getDisplayCountry(Locale.US);

if(country.toUpperCase().startsWith(input.toUpperCase())) {
choices.add(country);

if(choices.size() == 10) {
break;
}
}
}

return choices.iterator();
}
};
}


最後に "HomePage.html" へ以下のようにテキストフィールドの追記を行います
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title></title>
<link wicket:id='stylesheet'/>
</head>
<body>
<span wicket:id='mainNavigation'/>
<span wicket:id="message1" >ダミー用メッセージ(実行時置換されます)</span>
<p/>
<!-- 追加分 -->
<input type="text" wicket:id="countries" size="50" />
<!-- 追加分 -->
</body>
</html>


デプロイが完了したら、ブラウザを再度リロードします
新たにテキストフィールドが追加されて表示されますので、そこへ"u"と入力してみてください
以下のように入力値の候補が表示されるはずです


以上、簡単ですが、 NetBeans TV の内容を紹介してみました
実際のムービーにはより詳細に説明されていますので、ぜひご覧頂ければと思います

2008年9月18日木曜日

Mac OS X での PHP 開発環境(MAMP編)

Mac OS X Leopard(10.5.x)では標準でApacheやPHPの環境はそろっているのですが、動作させるまでの設定が面倒です
Apache、PHPなどの細かいバージョンの指定がなければ、MAMPというアプリケーションを使用するのが簡単かと思います
MAMPはApache、MySQL、PHPの同梱パッケージで、インストール後はすぐにそれらを使用することができます

コチラより最新のパッケージをダウンロードしてインストールします
(08/09/18現在では1.7.2)
なお、ダウンロードしたパッケージには有料版であるProも含まれていますが、今回は無料版のMAMPを使用しています


続いてNetBeansのデバッガ機能を使用するため、PHPのデバッグモジュールのxdebugをインストールします
インストールにはKomodo Remote Debugging Packagesを利用します
(もちろん、本家からソースコードをダウンロード、ビルドして利用することもできます)
使用環境に併せた最新バージョンのPHP Remote Debuggingをダウンロードします
ダウンロード後、パッケージを解凍すると、PHPの各バージョンに対応したモジュールが展開されます

今回利用するMAMPにはPHP4.4.8/5.2.6が含まれていますので、使用するバージョンに併せて4.4、または5.2フォルダにある"xdebug.so"をコピーしてください
(以降、PHP5.2.6と対応する5.2用のxdebugにて説明します.PHP4を利用する際は適時に読み替えてください)
コピーしたファイルを"/Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20050922/"以下に置きます

次に"/Applications/MAMP/conf/php5"以下の"php.ini"を編集します
以下の設定をファイルに追加してください
(設定は必要に応じて変更してください)
[xdebug]
zend_extension = /Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20050922/xdebug.so
xdebug.remote_enable = On
xdebug.remote_handler = dbgp
xdebug.remote_mode = req
xdebug.remote_host = 127.0.0.1
xdebug.remote_port = 9000
xdebug.idekey =
xdebug.profiler_enable = On
xdebug.profiler_output_dir = "/Applications/MAMP/tmp/xdebug/"


設定後、MAMPアイコンをダブルクリックし、起動します
表示されたMAMP管理ウィンドウの「環境設定」ボタンをクリックします
「PHP」タブをクリックし、「機能拡張」にある「Zend Optimizer」のチェックをはずします
(Zend Optimizerが有効な場合、デバッグが正常に動きません)
その他、ポート番号やドキュメントルートなどは必要に応じ、変更してください
(今回の説明ではデフォルトのままで使用しています)

「サーバを停止」、「サーバを起動」とクリックし、サーバを再起動したのち、「スタートページを開く」ボタンをクリックしてブラウザを開きます
画面上部のメニューより「phpinfo」のメニューをクリックし、各種設定を確認します
また、ページ後半に"xdebug"の項目があることを確認してください
(ブラウザの検索ウィンドウにて"xdebug"と入力して探すと簡単に見つけられると思います)
"xdebug"の項目がない場合は正常にインストールできていません
インストール先や上記設定の確認を行ってください

以上でPHPに関する設定は完了です
デフォルトの設定でドキュメントルートは"/Applications/MAMP/htdocs"となっていますので、テストとして以下の内容でindex.phpを作成します
<?="Hello PHP!"?>

"http://localhost:8888/"をブラウザで開くと、以下の画面が表示されるかとおもいます


今後開発を行う場合、このドキュメントルートにファイルを配備します
環境の準備ができましたので、次回は NetBeans の PHP サポートを利用した開発を紹介したいと思います