2011年12月26日月曜日

hadoopのjobを停止する

HadoopのJobの一覧を表示して、
$ hadoop job -list
1 jobs currently running
JobId                   State StartTime     UserName Priority SchedulingInfo
job_201112051437_394566 1     1324883408684 hoge     NORMAL   NA
こんな感じのリストが表示されますので、一般ユーザであれば同じユーザでログインして以下のような感じでkillできると思います。
$ hadoop job -kill job_201112051437_394566
CTRL+Cではjob自体は止まっていなくてkillしないといけないのって、自分的にはmysqlを思い出してしまいます。

2011年10月11日火曜日

githubにShipIt!! ただしPerlです

  • PerlのShipItの利用にについて
  • shipitというか、その他の作業でつまずいたのでメモ。 ShipItとは、ExtUtils::Manifestのラッパーで、テストやVCのタグ付けなどを一連で行うツール。とっても便利。 今回は、githubへのpushまでがgoal。
    • ShipIt関連のインストール
    • $ cpanm ShipIt
      $ cpanm Module::Install::ReadmePodFromPod
      $ cpanm Module::Install::ReadmeMarkdownFromPod
      $ cpanm Module::Install::ReadmeFromPod
      $ cpanm Module::Install::GithubMeta
      
    • 設定の変更
    • githubにpushするように設定。VCのcommit先をgithubのpush先
      • .shipit
      • $ vi .shipit
        
        #steps = FindVersion, ChangeVersion, CheckChangeLog, DistTest, Commit, Tag, MakeDist, UploadCPAN
        steps = FindVersion, ChangeVersion, CheckChangeLog, DistTest, Commit, Tag, MakeDist
        git.tagpattern = release-%v
        git.push_to = origin
        
      • MYMETA関連のエラーメッセージが出た場合
      • MYMETA.json MYMETA.ymlなどがなくてエラーになる場合がある。 MANIFEST.SKIPに追加してチェック対象から除外するとよい。 おそらくmake manifestした際に自動でMYMETAも追加されてしまうのだが、よく使い道が分かっていないので無視しておく。 MYMETA.ymlについて調べてみると
        MYMETA.yml is just like META.yml, in that it follows the CPAN Meta Spec, but whereas META.yml is generated by the distribution author at packaging time, MYMETA.yml is generated by the end user at configure time after any dynamic dependencies are known.
        となっていて、ユーザが依存関係を解消するときに使うみたいなので、MYMETA関連がMANIFESTに含まれてしまうことに問題があるのではないのかなと思う。module-setupしたタイミングで空のファイルが作成されていてもいいのかもしれないと思った。と思ったらいつの間にかできていた。どのタイミングで作成されたのだろう。
        $ vi .shipit
        ^MYMETA\.
        
    • MANIFEST を作り直す
    • MANIFEST にないよって言われたときには、以下を実行すると更新される。
      $ rm MANIFEST
      $ make manifest
      そもそもmakeが何をしているのかなどについては、lestrratさんの記事を参考に。意外にこの辺のblogとか少ない気がするけど、できる人にとっては難しくないってことですね。 参考
  • CPAN登録方法
  • ということで、ついでにCPANのアカウントも申請してみました。 時間がかかるというエントリを見たので先に申請してみたのですが、意外にすぐに数時間でアカウントが発行されました。詳細は以下を参考に。こっちはたぶん難しくないです。 .shipitのUploadCPANのコメントアウトを外して、AppConfig::Stdを入れて.pauseを入れるといいのかな。まだやっていないのでわかりません。 docとtestをもう少し充実させてuploadしたいなって思います。

2011年9月28日水曜日

LWP - test website at multiple IPs

LWP - test website at multiple IPs:

'via Blog this'より。 LWPでHostヘッダーを指定したいときには、
my $ua = new LWP::UserAgent;
print $ua->get("http://1.2.3.4/", Host => "www.domain.com")->content;
とするといいみたいです。 VirtualHostでわけているときはこんな感じですね。

2011年8月21日日曜日

macでEclipse3.7の日本語化

readme_pleiades.txtには以下のように書いてありますが、pleiades.jarのPathが変わっているようなので
-javaagent:/Applications/eclipse/dropins/MergeDoc/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
みたいにすると起動するみたいです。
これで正しいのかわかりませんが、Readme通りにいかないと焦りますね。
* Mac OS での設定例 

Mac OS では  eclipse.ini は Eclipse.app/Contents/MacOS/ にあります。 

また、後述の no.mnemonic オプションは自動的に有効になります。 

相対パスで指定する場合 

-javaagent:../../../plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar 

絶対パスで指定する場合 

-javaagent:/Applications/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

2011年7月22日金曜日

CentOS4系でgit pullするときにSSLのエラーがでるときの対処

またGithub からcloneするときにSSLエラーが出たので、DigiCertのSSL証明書を追加して解決 - Goodpic

よく起きるgithubのSSLエラー。DigiCertの証明書が足りないみたいなので追加するとよい。ただし、CentOS4の証明書の場所が参考と違ったのでメモ。

digicertのルート証明書
cd /usr/share/ssl/certs
sudo wget https://www.digicert.com/testroot/DigiCertHighAssuranceEVRootCA.crt
sudo chmod 666 ca-bundle.crt
sudo cat DigiCertHighAssuranceEVRootCA.crt >> ca-bundle.crt
sudo chmod 644 ca-bundle.crt
これでOK。vundleとか使っているとforce的にするもの面倒なのでこんな風に対処するといいらしい。
centos5系のときは以下を参照。
http://d.hatena.ne.jp/takayuki_goto/20110622/p1
$ curl -Lk https://raw.github.com/gugod/App-perlbrew/master/perlbrew-install | bash curl: (60) SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed More details here: http://curl.haxx.se/docs/sslcerts.html curl performs SSL certificate verification by default, using a "bundle" of Certificate Authority (CA) public keys (CA certs). The default bundle is named curl-ca-bundle.crt; you can specify an alternate file using the --cacert option. If this HTTPS server uses a certificate signed by a CA represented in the bundle, the certificate verification probably failed due to a problem with the certificate (it might be expired, or the name might not match the domain name in the URL). If you'd like to turn off curl's verification of the certificate, use the -k (or --insecure) option.
追記:こんな感じでエラーになっているときにも同じ方法で対応できる。

2011年7月5日火曜日

CentOS5 の rpmforge の追加

rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
i386 : wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
x86_64 : wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
rpm -K rpmforge-release-0.5.2-2.el5.rf.*.rpm
rpm -i rpmforge-release-0.5.2-2.el5.rf.*.rpm
yum install git
gitってplusとかにも入っていないんですね。

2011年6月21日火曜日

module-setup + github

以下のリンクを参考に初shipitできました。

Module::Setup + GitHub flavor - LAPISLAZULI HILL#Hatena

ちょっとだけはまったのが、同じくLWPのところで、LWP::Protocol::https が足りていませんでした。
#!perl
use LWP;
use Data::Dumper;

sub _system {
  my ($cmd) = @_;
  my $res = `$cmd`;
  chomp $res;
  return $res;
}

my %args = (
  login => _system("git config --get github.user"),
  token => _system("git config --get github.token"),
  name => _system("git config --get github.user"),
  description => 'test-repos',
  homepage => '',
);
print Dumper \%args;

my $ua = LWP::UserAgent->new(
  cookie_jar => +{},
);
my $res = $ua->post(
  'https://github.com/api/v2/json/repos/create' => \%args
);
print $res->status_line . "\n";

こんなことを書いてテストするとエラー内容がわかりますが、成功しちゃうとreposができちゃいますので後で削除してくださいね。