2016年6月14日火曜日

hadoop止まらないので調べた

もう使われてないhadoopが動いていて、無駄にログ吐き続けてdiskを喰っていたので
止めようとしたら止まらなかったので調べました。

とりあえず止める系のコマンドをいくつか叩いてみましたが、プロセスは残ったままでした。
$ ./sbin/stop-all.sh 
This script is Deprecated. Instead use stop-dfs.sh and stop-yarn.sh
16/06/13 11:18:15 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Stopping namenodes on [ec2-xx-xx-xx-xx.ap-northeast-1.compute.amazonaws.com]
ec2-xx-xx-xx-xx.ap-northeast-1.compute.amazonaws.com: no namenode to stop
localhost: no datanode to stop
Stopping secondary namenodes [0.0.0.0]
0.0.0.0: no secondarynamenode to stop
16/06/13 11:18:19 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
stopping yarn daemons
no resourcemanager to stop
localhost: no nodemanager to stop
no proxyserver to stop

$ ./sbin/stop-dfs.sh 
16/06/13 11:17:41 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Stopping namenodes on [ec2-xx-xx-xx-xx.ap-northeast-1.compute.amazonaws.com]
ec2-xx-xx-xx-xx.ap-northeast-1.compute.amazonaws.com: no namenode to stop
localhost: no datanode to stop
Stopping secondary namenodes [0.0.0.0]
0.0.0.0: no secondarynamenode to stop
16/06/13 11:17:46 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

$ ./sbin/stop-yarn.sh 
stopping yarn daemons
no resourcemanager to stop
localhost: no nodemanager to stop
no proxyserver to stop


 ./sbin/hadoop-daemon.sh stop tasktracker
no tasktracker to stop

$ ./sbin/hadoop-daemon.sh stop datanode
no datanode to stop

そこで調べてみたところ、どうやらPIDファイルがなくなってるのが原因っぽいです。
configファイルのPIDまわりの記述を調べてみました。
$ grep PID_DIR etc/hadoop/*
etc/hadoop/hadoop-env.cmd:set HADOOP_PID_DIR=%HADOOP_PID_DIR%
etc/hadoop/hadoop-env.cmd:set HADOOP_SECURE_DN_PID_DIR=%HADOOP_PID_DIR%
etc/hadoop/hadoop-env.sh:export HADOOP_PID_DIR=${HADOOP_PID_DIR}
etc/hadoop/hadoop-env.sh:export HADOOP_SECURE_DN_PID_DIR=${HADOOP_PID_DIR}
etc/hadoop/mapred-env.sh:#export HADOOP_MAPRED_PID_DIR= # The pid files are stored. /tmp by default.
PIDファイルの置き場はデフォルトの/tmpっぽくて、
すでに長期間運用したこのhadoopはtmpwatchですでにpidファイルが削除されているようで、
もうkillするしかなさそうです。ということでkillして停止しました。。。


参考URL
http://masa-cbl.hatenadiary.jp/entry/20121018/1350576124

2016年6月6日月曜日

rspecでFactoryGirlでCarrierWaveのデータを作成する

CarrierWaveのイメージを入れたFactoryGirlのデータを作りたかったので調べました。

テスト用の画像データを以下に置いた状態で、
spec/support/files/test.jpg
以下の形式で記述するとよさげです。

test_image { Rack::Test::UploadedFile.new(File.join(Rails.root, 'spec', 'support', 'files', 'test.jpg'))



参考URL
http://kzy52.com/entry/2014/01/03/094308