タグ

ブックマーク / gihyo.jp (386)

  • 第8回 Hadoopの環境を作ってみよう! | gihyo.jp

    hadoop1:masterサーバ…NameNode/JobTracker(NFSサーバ) hadoop2, hadoop3:slaveサーバ…DataNode/TaskTracker(NFSクライアント) NameNode, DataNodeはHDFSのための機能→masterサーバ JobTracker, TaskTrackerはMapReduceのための機能→slaveサーバ NFSはhadoopの設定やプログラムを共通で使用するために導入します(導入の手間を軽減するため⁠)⁠。 図1 システム構成図 それでは構築作業を進めていきます。 NFSディレクトリの作成 hadoop1に/usr/local/apach_projディレクトリを作成します。このディレクトリにはhadoopnのバイナリや設定ファイルが置かれ、hadoop2, hadoop3から共通に使用されることになります。NF

    第8回 Hadoopの環境を作ってみよう! | gihyo.jp
  • 第14回 [キャリアアップ編⑤]varnishを使おう④─実践varnish | gihyo.jp

    大規模コンテンツ配信の仕組みとしてvarnishをテーマに連載してまいりましたが、今回は、実際にサービスでも利用しているxcir氏(いわなちゃん)にご協力いただき、連載におけるvarnishシリーズをまとめたいと思います。それではxcirさんよろしくお願いします。 はじめまして、xcir(いわなちゃん)といいます。今回は、varnish実践編ということで、運用に役立つテクニックなどをテーマにご紹介できればと思います。なお、今回の内容につきましては特記がない限りCentOS上で動かしたvarnish2.1.4での記載となります。 VCLについて varnishは複雑な設定をしなくても高速に動きますが、決め細やかな制御を行う際は、VCL(varnish configuration Language)の設定が必要です。VCLは一般的な設定ファイルとは違い、まるで言語のように記述して動作します。

    第14回 [キャリアアップ編⑤]varnishを使おう④─実践varnish | gihyo.jp
  • オープンソースのバウンスメール解析システム BounceHammer | gihyo.jp

    何らかのバウンスメールが返ってきたら、そのメールアドレスを配信不能なアドレスとして扱うという単純なバウンス処理を行った場合、“⁠メールボックスがいっぱい⁠”や“⁠メールが大きすぎる⁠”のようなエラーで宛先アドレスに配信不能フラグを立ててしまうという誤った対処をしてしまう危険性があります。 エラーになった理由ごとに適切な対処をすれば、メールアドレスの状態変化を管理しつつ、宛先不明アドレスの割合増加による遅延を回避ができます。検出できるエラーについての詳細は、http://bouncehammer.jp/features/engine/reasonをご覧ください。 読みにくいバウンスメールを構造化する BounceHammerは解析したバウンスメールの内容をYAML形式で出力します。YAML形式の解析結果は1行1レコードで書き出しているので、コマンドラインからcatで眺めたり、wcで行数計測す

    オープンソースのバウンスメール解析システム BounceHammer | gihyo.jp
    okinaka
    okinaka 2010/12/21
    もっと簡単にインストールできないものだろうか?依存関係が・・・。
  • 第13回 インフラエンジニアの教育 | gihyo.jp

    これまでこの連載では「いかに成長するか」「⁠いかにスキルを付けるか」というトピックについてふれてきましたが、今回は育つ側ではなく、育てる側の視点からのトピックについて書いてみたいと思います。 筆者の経験から 筆者ももちろん、最初のうちは育つ側で、ある程度スキルがついてからは育てる側にもなるようになりました。筆者が某データセンター(よく出てきますね)のマネージャに就任したときには、エンジニアが5人しかいない状態でした。すでにサービスは始まっており、しかも24時間365日の手厚いサービスを売りにしていたので、このままではサービスの提供に支障をきたすのは明確だったため、エンジニアの確保は急務の課題でした。 とはいえ、いつの時代も「できるエンジニア」はそうそう獲得できないというのは変わらぬものです。そのため、獲得ではなく育成に集中するしかないというのが筆者の出した答えであり、そしてこれはそこから現

    第13回 インフラエンジニアの教育 | gihyo.jp
    okinaka
    okinaka 2010/12/01
  • 第13回 [キャリアアップ編④]varnishを使おう③─便利な機能を使いこなす | gihyo.jp

    【例1】親子関係の定義 バックエンドサーバを172.20.1.1: 6081とし、30ms以内の返答を期待する。 backend default { .host = "172.20.1.1"; .port = "6081"; .connect_timeout = 30ms; } 【例2】URLからコンテンツ振り分け リクエストURLがwww.test.jpの場合、キャッシュ有無の確認、必要に応じてdefault定義に従ってbackendサーバへ接続する。それ以外のURLであった場合は、「⁠400 "Forbidden"」を返信する。 # backend server if (req.http.host == "www.test.jp") { set req.backend = default; } else { error 400 "Forbidden"; } 【例3】特定キャッシュの時間

    第13回 [キャリアアップ編④]varnishを使おう③─便利な機能を使いこなす | gihyo.jp
  • 日本Hudsonユーザー会も発足した「Hudson勉強会」活動報告 | gihyo.jp

    11月12日金曜日、Hudsonの生みの親である筆者の訪日にあわせて、法政大学情報科学部、Seasarファウンデーションの後援で、Hudson勉強会(またの名を「日ビルド職人の集い⁠」⁠)が開催されました。200人以上集まる大きなイベントとなり、様々な発表やLTが行われました。その模様を報告します。 「Hudson初心者向けデモ」 まず、cactusmanさんによる、Hudsonをさわった事のない人向けへの紹介とデモが行われました。「⁠java -jar hudson.war」で起動できるのが大変便利だとし、Hudsonからはスケジューリング、チェックアウト、ビルドの実行、結果のまとめ、ビルドの通知などができると紹介されました。 デモでは、Subversionリポジトリ上に格納されたMaven2プロジェクトをビルドする様子を紹介し、コミット後すぐにビルドが始まる様子や、新しいテストを追加

    日本Hudsonユーザー会も発足した「Hudson勉強会」活動報告 | gihyo.jp
  • 第4回 分散環境でTokyoCabinetを動かす | gihyo.jp

    kumofsの起動 kumo-managerの起動 まずkumo-managerを起動します。kumo-managerを起動するのはserv1, serv2の2台となります。 serv1でのkumo-managerの起動 $ kumo-manager -v -l serv1 -p serv2 2010-08-05 20:14:05 ./manager/init.h:43: start manager 192.168.47.101:19700 2010-08-05 20:14:07 ../rpc/client_tmpl.h:157: connecting to 192.168.47.102:19700 2010-08-05 20:14:07 ../rpc/client_tmpl.h:199: connect failed 192.168.47.102:19700: Connection re

    第4回 分散環境でTokyoCabinetを動かす | gihyo.jp
  • 第40回 MOPS:安全性の高いパスワードハッシュ作成ツール - phpass | gihyo.jp

    第32回 PHPセキュリティ月間(Month of PHP Sercurity)で「PHPセキュリティ月間」(⁠MOPS - Month of PHP Security)について簡単に紹介しました。 今回はパスワードを安全に保存するツールの紹介です。今まで数回に渡ってMOPSの成果の一部を紹介してきましたが、今回で最後です。 MOPS Submission 10: How to manage a PHP application’s users and passwords http://www.php-security.org/2010/05/26/mops-submission-10-how-to-manage-a-php-applications-users-and-passwords/index.html この論文は1位を取得した論文です。Drupal 7でこのライブラリが利用されてい

    第40回 MOPS:安全性の高いパスワードハッシュ作成ツール - phpass | gihyo.jp
    okinaka
    okinaka 2010/11/04
  • 第145回 manのさまざまな使い方 | gihyo.jp

    ここ数年でUbuntuの知名度もあがり、Web上にはさまざまなUbuntuの情報やノウハウが蓄積されてきました。検索エンジンを使えば、Web上の膨大な情報から手軽に情報を集めることができるため、わからないことがあるとついググってしまいがちです。しかし、Web上にある記事が、自分のシステムについて正しく解説をしているという保証はどこにもありません。それよりも自分のシステムに用意されたマニュアルの方が信用できるというものです。伝統的なUnixシステムにはmanpageと呼ばれるオンラインマニュアルが用意されています。システムにインストールされているコマンドの使い方や設定ファイルの記述方法は、このマニュアルページを参照することでだいたい解決ができるようになっています。 そこで今週のレシピは、伝統的なUNIXマニュアルのさまざまな読み方を紹介します。ググる前に一度manに目を通してみると、幸せにな

    第145回 manのさまざまな使い方 | gihyo.jp
  • 第39回 MOPS:静的PHPソースコード脆弱性スキャナ RIPS | gihyo.jp

    第32回 PHPセキュリティ月間(Month of PHP Sercurity)で「PHPセキュリティ月間」(⁠MOPS - Month of PHP Security)について簡単に紹介しました。 今回は静的にPHPソースコードを分析しセキュリティ脆弱性を検査するツールの紹介です。 MOPS Submission 09: RIPS - A static source code analyser for vulnerabilities in PHP scripts http://www.php-security.org/2010/05/24/mops-submission-09-rips-a-static-source-code-analyser-for-vulnerabilities-in-php-scripts/index.html 昨年発見された脆弱性のおよそ3割がPHPアプリケーシ

    第39回 MOPS:静的PHPソースコード脆弱性スキャナ RIPS | gihyo.jp
    okinaka
    okinaka 2010/10/28
    ソースコード脆弱性スキャナ
  • 第9回 アプリケーションを完成させる | gihyo.jp

    これらのデプロイメント記述子の定義が完了した後、「⁠ビルド」と「デプロイ」を行うことで、初めてアプリケーションが動作可能な状態になるのです。 デプロイメント記述子と完成したアプリケーションとの関係は図1のようになります。JSP、サーブレットから作成されるWARファイルにはweb.xmlが、EJBから作成されるEJB-JARファイルにはejb-jar.xmlが、これらがまとまったEARファイル(アプリケーション)にはapplication.xmlが含まれます。 図1 ビルドとデプロイの流れ それでは、デプロイメント記述子を定義する手順について説明していきます。なお、application.xmlとweb.xmlは、プロジェクトを作成した時点でMyEclipseによってひな型が自動生成されます。そのため、定義はこのひな型を確認して、必要な変更を加えることで完成します。 application.

    第9回 アプリケーションを完成させる | gihyo.jp
    okinaka
    okinaka 2010/10/13
  • 第11回 [キャリアアップ編③]varnishを使おう | gihyo.jp

    これらを必要に応じて書き換えることができます。たとえば、番サービスなどで利用する場合、特にDMZセグメントで構成しようと考えるのであれば、-Tの管理画面待ち受けポートは変更するなどした方が良いでしょう。 また、サービスの規模に応じて、-sのキャッシュファイルの場所や容量を変更することになるかと思います。デフォルトでは、/var/lib/varnish/varnish_storage.bin に1Gバイトの容量を確保しますが、大規模コンテンツ、高トラフィックでキャッシュサーバ自体もかなりの台数並べるようなサービスであれば、このデバイス自体をメモリ上にやSSD、f-ioなどの高速デバイスにするかを検討します。 varnishとApacheを別々のサーバに入れてみる さて、1つの筐体にvarnishとApacheを入れ、稼働を確認することができたなら、次は同居していたApacheを別筐体へ移動

    第11回 [キャリアアップ編③]varnishを使おう | gihyo.jp
    okinaka
    okinaka 2010/09/29
  • 第136回 Ubuntuで公衆無線LANを使う | gihyo.jp

    3GやWiMAX回線で外出先でもインターネットに接続している方も多いでしょう。ただ、建物内や地下、新幹線のトンネル区間など、電波の届きにくい場所では使えないこともあります。 今回は、3GやWiMAX回線ではカバーできない範囲を補完できる公衆無線LANをUbuntuから使う方法を紹介します。 公衆無線LANの種類 公衆無線LANサービスを提供している事業者は複数あり、それぞれアクセスポイントの数や提携しているお店が異なっています。よく利用する場所やお店で無線LANを使うには、どの事業者と契約すればいいのかを事前に調べる必要があります。 例えば、東海道新幹線(東京-新大阪間)のN700系車内で使いたい場合は、5つの事業者のサービスのいずれかを利用しなければなりませんし、スターバックスコーヒーで使いたい場合は店舗検索のページからリンクされているPDFファイルを見て、利用する店舗がどのサービスに対

    第136回 Ubuntuで公衆無線LANを使う | gihyo.jp
  • 第6回 アプリケーションの作成と配布物の生成 | gihyo.jp

    連載の最後となる今回は、WebSocketのトピックをいくつか取り上げたあと、WebSocketChatのアプリケーション化と配布物の生成を行ないます。 WebSocketのセキュリティ WebSocketは、リビジョン76で接続処理に手を加え、堅牢性が増しています。また、HTTPと同様なOriginを基にしたセキュリティモデルを採用しています。Ajaxと違い、現行のWebSocket対応ブラウザ側には、same originポリシーによる制限はないようです。 Jetty7はそのままでは、cross originが可能です。制限が必要な場合は、「⁠CrossOriginFilter」(⁠※1)を使用します。 最新の仕様 第3回「データ送信の詳細」の項で、フレームタイプについて説明しました。最新の仕様では、フレームタイプの扱いが大きく変更になりそうです。ドラフト版のリビジョン76の段階では、

    第6回 アプリケーションの作成と配布物の生成 | gihyo.jp
    okinaka
    okinaka 2010/09/01
  • 第135回 PowerWakeとgWakeOnLanでWake-on-LAN | gihyo.jp

    隣の部屋にあるマシンの電源を入れたいときに、わざわざ隣の部屋に移動して電源ボタンを押すというのは面倒です。そんなときには、ネットワーク経由で電源を入れられるWake-on-LANを使うと便利です。今回はWake-on-LANを便利に使うためのPowerWakeとgWakeOnLanというツールを紹介します。 Wake-on-LANに必要な条件 Wake-on-LANを使って電源を入れるには次の条件が必要です。 Wake-on-LANに対応したハードウェアである BIOSでWake-on-LANが有効になっている OSでWake-on-LANが有効になっている 電源を入れたいマシンのMACアドレスがわかっている まず、1つ目の条件に関しては、対応していないということはまずないでしょう。LANケーブルを接続するだけで準備完了です。 次に2つ目ですが、gWakeOnLanのWikiページに掲載さ

    第135回 PowerWakeとgWakeOnLanでWake-on-LAN | gihyo.jp
  • 第3回 ベイジアンフィルタを実装してみよう | gihyo.jp

    さらに詳細な利用方法が知りたい方は、Yahoo!デベロッパーズネットワークのマニュアルを参照してください。 ベイジアンフィルタの実装 ここから格的にベイジアンフィルタの実装に入っていきます。 その前に、まずは先程のリスト1のコードを利用して入力された文章をわかち書きし、単語の集合を返す関数を作成しnaivebayes.pyとして保存しましょう。こちらも先程のmorphological.pyと同様にutf-8で保存してください。 リスト2 文章の分割をする関数(naivebayes.py) # -*- coding: utf-8 -*- import math import sys #yahoo!形態素解析 import morphological def getwords(doc): words = [s.lower() for s in morphological.split(doc)

    第3回 ベイジアンフィルタを実装してみよう | gihyo.jp
    okinaka
    okinaka 2010/08/23
  • 第7回 Cassandraで検索するには[前編] | gihyo.jp

    Cassandraも0.6系がついに0.6.4まで出てきて、stableなリリースとして十分に使えるところまで来ましたね。この連載のコードもすべて0.6系では動作するはずですので、ぜひ最新のものに入れ替えて試してみてください。 前回まででデータの投入、更新、削除までをご紹介しました。今回から複数回に分けて検索を重点的に見ていきましょう。 前準備としてデータを投入しておく 検索メソッドの確認の前準備として、まずデータの投入を行います。今回はシンプルな郵便番号のデータを利用します。以下のURLから東京都のデータを取得して、解凍後、データを投入してください。 郵便番号データのダウンロード:日郵便 URL:http://www.post.japanpost.jp/zipcode/dl/kogaki/lzh/13tokyo.lzh データは説明のため簡易的なデータ構造とします。 キーは郵便番号 デ

    第7回 Cassandraで検索するには[前編] | gihyo.jp
  • 第2回 OpenIDライブラリに付属しているRPサーバを動かしてみる | gihyo.jp

    連載の第1回では既存サービスを例にして、OP(OpenID Provider)が提供するOpenIDアカウントでRP(Relying Party)へのログインを試してみました。 今回からは、自分でOpenIDに対応したRPを動かしながら、OpenIDの使い方を説明していきます。 第2回ではOpenIDに対応したライブラリを紹介し、Ruby用のライブラリを使ってRPのサンプルを動作させてみましょう。 OpenIDの対応ライブラリ OpenIDアカウントでログイン可能なサイト(RP)を作るためには、OpenIDの仕様で定められたプロトコルに準拠しなければいけません。 幸い、 OpenIDの仕様に対応した各言語のライブラリがオープンソースとして公開されています。これらのライブラリを使うことで、OpenIDの細かなプロトコルを自分でプログラミングしなくて良いようになっています。 ここでは、いくつか

    第2回 OpenIDライブラリに付属しているRPサーバを動かしてみる | gihyo.jp
  • 第5回 オープンソース・スクリーンリーダーの導入 | gihyo.jp

    これまで、アクセシビリティFlashの作成方法を紹介してきましたが、実際にそれらがどのように見られているのか(聞かれているのか)を手軽に確認する方法を紹介します。 オープンソース:スクリーンリーダー NVDA スクリーンリーダーは、高価なソフトウェアに違いありませんが、その業界にもオープンソースの波が来ています。 今回、オープンソース・スクリーンリーダーのNVDA(NonVisual Desktop Access)を紹介します。 NVDAは、オープンソースのため使用料が無料です。また、IEだけでなくFirefoxにも対応しています(ただし、FirefoxのFlash Playerにバグがあります。詳細は後述します⁠)⁠。 スクリーンリーダーとは PCにインストールし音声を発する(スピーチする)ソフトウェアは、大きく分けて2種類あります。1つは、スクリーンリーダー。もう1つは、音声ブラウザと

    第5回 オープンソース・スクリーンリーダーの導入 | gihyo.jp
  • 第4回 サーバ側の実装(後編) | gihyo.jp

    今回は、前回に引き続き、Jettyを使ったWebSocketに対応したチャットアプリケーションのサーバ側の実装を行ないます。 MyWebSocketServlet クライアントから接続要求があった時に、「⁠WebSocket」インターフェイスの実装クラスを返す「Servlet」を作成する必要があります。 以下のように新規クラスを作成してください。 ソース・フォルダー:WebSocketChat/src/main/java パッケージ:webSocketChat 名前:MyWebSocketServlet スーパークラス:org.eclipse.jetty.websocket.WebSocketServlet クライアントから接続があった時に呼ばれる「doWebSocketConnect」メソッドを、「⁠MyWebSocket」インスタンスを返すように修正します。 package webSo

    第4回 サーバ側の実装(後編) | gihyo.jp
    okinaka
    okinaka 2010/08/09