• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
 
 

Rubyスクリプト中から

   1  require "hoge"

されている hoge のソースを見てみたい時には、

   1  vim `gem which hoge`.rb

すると見つけてきてくれます。

posted by Png genki on Sun 8 May 2011 at 17:22

CDH3に同梱されているgen-rbファイル群は若干古いらしく、上手く動かないのでif/hadoopfs.thrift を使って手動で生成します。

   1  % thrift --gen rb /path/to/if/hadoopfs.thrift

これで gen-rb/ ディレクトリの中にRuby用インターフェイスが生成されます。

posted by Png genki on Sun 8 May 2011 at 10:47 with 1 comment

最初にhadoopを入れておく。

続いてhbase-0.90.2をダウンロード。

/usr/local/hbase あたりに展開し、/usr/local/hbase/bin にPATHを通す。

rootディレクトリの設定

conf/hbase-site.xmlを開いて <configuration>の中に以下を記述。

   1    <property>
   2      <name>hbase.rootdir</name>
   3      <value>hdfs://127.0.0.1/hbase</value>
   4    </property>
   5    <property>
   6      <name>hbase.cluster.distributed</name>
   7      <value>true</value>
   8    </property>
   9    <property>
  10      <name>hbase.zookeeper.quorum</name>
  11      <value>127.0.0.1</value>
  12    </property>
  13    <property>
  14      <name>hbase.zookeeper.property.clientPort</name>
  15      <value>2222</value>
  16    </property>

後は

   1  % start-hbase.sh

すると起動する。jps コマンドを実行すると以下のような感じになる。

   1  % jps
   2  21245 DataNode
   3  15141 JobTracker
   4  21615 HRegionServer
   5  21330 SecondaryNameNode
   6  22236 Jps
   7  21152 NameNode
   8  15224 TaskTracker
   9  22068 HQuorumPeer

posted by Png genki on Sat 7 May 2011 at 15:10

まずはhadoop-0.21.0をダウンロード

hadoop-envの設定

$HADOOP_HOME/conf/hadoop-env.sh を開いて JAVA_HOME/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Homeあたりに設定。

$HADOOP_HOME/binにPATHを通して

   1  % start-dfs.sh
   2  % start-mapred.sh

でHadoopを起動。0.21.0ではstart-all.shはdeprecatedらしい。

停止は

   1  % stop-mapred.sh
   2  % stop-dfs.sh

注意点として、ssh で localhost にログインできるようにしておく。

"システム環境設定" -> "共有" から、"リモートログイン"にチェックでok

初期化・設定

$HADOOP_HOME/conf/hdfs-site.xmlに以下のような感じで記入

   1  <configuration>
   2    <property>
   3      <name>fs.default.name</name>
   4      <value>hdfs://127.0.0.1</value>
   5    </property>
   6    <property>
   7      <name>dfs.replication</name>
   8      <value>2</value>
   9    </property>
  10  </configuration>

hdfsを初期化。

   1  hdfs namenode -format

mapredの設定

$HADOOP_HOME/conf/mapred-site.xml<configuration>の中に以下を記入。

   1    <property>
   2      <name>mapred.job.tracker</name>
   3      <value>localhost:54311</value>
   4    </property>

あとは起動して http://localhost:50070 あたりを見ると状態を確認できます。

posted by Png genki on Sat 7 May 2011 at 10:25 with 1 comment

Mac OS環境ではRiakをbrew install riak でインストール出来ますが、 Xcode4が入っている環境ではコンパイルエラーが発生して上手くいかないようです。どうやらllvm-gccが使われてるのが原因らしい。

以下のように--use-gccで強制的にgccを使うようにすれば良さそうです。

   1  # brew -v install --use-gcc riak

posted by Png genki on Fri 6 May 2011 at 06:02

ubuntuのバージョンを調べるには

   1  % lsb_release -a
   2  No LSB modules are available.
   3  Distributor ID:	Ubuntu
   4  Description:	Ubuntu 10.10
   5  Release:	10.10
   6  Codename:	maverick

とやれば良いらしい。

posted by Png genki on Fri 6 May 2011 at 04:33

以下を参照

しつつ、

   1  # wget http://downloads.basho.com/riak/riak-0.14/riak_0.14.0-1_amd64.deb
   2  # dpkg -i riak_0.14.0-1_amd64.deb

posted by Png genki on Fri 6 May 2011 at 02:55

Vimの正規表現はちょっと特殊な感じです。

Vimで()で囲まれた文字から、()を取り除くには

   1  :%s/(\(.\{-}\))/\1/

のようにします。

posted by Png genki on Sat 23 Apr 2011 at 11:25

monk-glue-0.0.1 に含まれている Monk::Glue::Reloaderには微妙な バグがあり、developmentモードでソースコードを更新したときに 自動リロードが上手くかからない事があるようです。

Rack::Reloaderの問題かと思っていたのですが、 調べてみると Monk::Glue::Reloader の処理に問題があることがわかりました。

reload!メソッドを以下のように修正したところ正常に動作することが確認できました。

   1    def reload!
   2      expanded_loaded_features = $LOADED_FEATURES.map do |path|
   3        File.expand_path(path)
   4      end
   5      hash = Hash[expanded_loaded_features.zip($LOADED_FEATURES)]
   6      deletes = []
   7      files.each do |file|
   8        if path = hash[File.expand_path(file)]
   9          $LOADED_FEATURES.delete(path)
  10        end
  11      end

$LOADED_FEATURESに絶対パスと相対パスが混在していることがあるようで、 その場合にうまく処理できていないようでした。

$LOADED_FEATURESは全て絶対パスで保持するようにしたほうが良い気がします。

posted by Png genki on Fri 22 Apr 2011 at 15:34

SassをSinatraで使うときに、グローバルオプションとして テンプレートファイルの場所を指定する場合、

   1  set :sass, :load_paths => '/path/to/templates'

という感じに指定すると思っていたのですが、いつの間にか

   1  set :sass, :views => '/path/to/templates'

と指定しないと認識しないようになっていた。

SinatraがテンプレートエンジンとしてTileを採用あたりから変わったのかもしれない。

posted by Png genki on Sun 17 Apr 2011 at 19:03