すずけんメモ

技術メモです

AWS Casual Talks #2 で発表してきました #awscasual

aws

AWS Casual Talks#2で発表してきました。主催の @con_mame さん、会場を提供してくださったAWSのみなさま、どうもありがとうございました。 AWS Casual Talks#2 on Zusaar http://www.zusaar.com/event/3817003 今回は新サービスネタということで僕の発表で…

Elasticsearchのクラスタにノードを追加するときにやっていること

Elasticsearchのクラスタにノードを追加するのは簡単にできる。しかし、インデックスを盛々積んだクラスタにノードをカジュアルに追加すると、一気にシャードのアロケーションが走って負荷があがる。また、何の設定もせずに追加するとsplit brainを起こしや…

write heavyなときの設定

あんまりクエリされないけど、書き込みがめっちゃ多い運用というのもあると思う。今うちで使ってる方法だと、限られた人たちがKibanaでクエリするので、多くても2桁人。 書き込みはスムーズにしたい 検索は多少遅くてもいいけど確実に結果が帰ってきてほしい…

AWSが値下げしたので飲む会を開催しました #awssake

aws

AWSが値下げしたので飲む会 on Zusaar http://www.zusaar.com/event/4817003 AWSが値下げしたので飲みました。 内容はお酒とともに忘れてしまいました。何気に神回だったので、そのうちまたゲリラ的に開きたいものです。

初回のコミットを取り消したいときにはgit update-refを使う

git

gitで間違えて最初のコミットをしてしまった場合の話。コミットに含めたいファイルとかをついうっかり追加してしまった場合の対処法。 この場合、git resetなどで戻ることはできない。git update-refを使おう。 サンプル -> % cd /tmp/; mkdir sample-git; c…

AWSが値下げになったので飲みます

AWSが値下げしたので飲む会 on Zusaar http://www.zusaar.com/event/4817003 4/3です。

Elasticsearch 1.x系統でのgatewayに関して

Localのみ推奨、となっている。 Gatewayモジュールというのがあって、 Gateway http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-gateway.html 端的にいうとクラスタ管理のためのメタデータを保持する部分になっている。デフ…

s3から直接fetchしたときの方が演算が速い?

Run Spark and Shark on Amazon Elastic MapReduce : Articles & Tutorials : Amazon Web Services http://aws.amazon.com/articles/4926593393724923 これを試していた。 hadoop@ip-10-123-50-206:~$ SPARK_MEM="2g" /home/hadoop/shark/bin/shark Starting…

バイナリ配布用のhomebrew

Homebrew/homebrew-binary https://github.com/Homebrew/homebrew-binary というのがある。 brew tap homebrew/binary でhomebrew/binaryで登録されているものもbrewでinstallできるようになる。

Elasticsearch 1.0.1でcuratorが動かない場合

現象が報告されているようです。 Master branch doesn't work with Elasticsearch 1.0.1 · Issue #56 · elasticsearch/curator https://github.com/elasticsearch/curator/issues/56 curatorのmasterブランチでは対応しているようなので、現段階での対応とし…

A Tour of Goを解いている

土曜日の昼に http://go-tour-jp.appspot.com をやっていた。 http://go-tour-jp.appspot.com/#24 go-tour-36.go go-tour-41.go go-tour-44.go go-tour-48.go go-tour-56.go go-tour-58.go go-tour-60.go チュートリアル、Exerciseがちゃんと考えさせられる…

preferenceを利用してsearchを特定シャードでのみ実行する

Preference http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-preference.html これを使う。 例 例えば、primary shardでのみ実行してみる。 GET _search?preference=_primary { "facets":{ "terms": { "terms": { "f…

Vagrant環境にpuppetを利用してさくっとelasticsearchのclusterを作成する

追記 2014/02/06 19:58 わかりづらかったのでテンプレートのrepositoryを作りました。 https://github.com/suzuken/vagrant-puppet-elasticsearch-cluster-sample 追記 2014/02/07 10:00 johtaniさんが本記事を元に実際に環境を試してくださってました。-> …

pipでtarから直接packageをインストールする

普段はaws-cliしか使ってないのだけれど、s3cmdの最新版を使う必要があったのでメモ。以下のようにする。 $ pip install -Iv https://github.com/s3tools/s3cmd/archive/v1.5.0-beta1.tar.gz 参考: python - Installing specific package versions with Pip …

Vagrant環境にpuppet moduleを利用してさくっとelasticsearchをインストールする

Vagrantで立ち上げたVMにいろいろ環境整えるとき、普段スクラッチでpuppet manifest書いてたんだけど、面倒なのでpuppet module使いたいなと思って調べた。本番環境でガッツリ使いたいとかならちゃんとmanifestをアレンジして管理したほうが良いと思うけど、…

CAアドテクスタジオ x VOYAGE GROUP技術交流会でDMPの仕組みについて発表しました

昨日、サイバーエージェントのアドテクスタジオさんと弊社で合同の技術交流会を行いました。そのときの資料です。 DMPの仕組み from Kenta Suzuki イベントの様子はブログにまとめられています。運営していただいた皆様&参加してくださった皆様どうもありが…

zsh: argument list too long: gzipへの対処法

mac

ひさびさにこのエラーが出た。大量のgzipファイルを解答しようとしてエラー。 $ gzip -dc hogedir/* | head zsh: argument list too long: gzip hogedir以下にはgzipファイルが8000個ほど入っている。 $ ls hogedir | wc -l 8437 xargs使うかと思ったが、こ…

設定情報のpush型構成を組む場合の手段についてのメモ

管理画面から設定情報を保存しておいて、それをJSONで受け取ってfluentdのexec_filterで使うプログラム用に使っている箇所があります。管理画面のデータを保存するDBを、fluentdの入っているサーバ(以下、workerとします。)からは直接参照せず、管理画面のあ…

懸垂機できました #vgadvent2013

せっかくなので今年の振り返りをしてみます。個々エンジニアのタイムライン追うことはなかなか無いと思うので、そんな視点で楽しんでいただけると嬉しいです。 1-3月: 分析から始まった1年, HiveとかMahoutとか この頃はユーザの行動分析的なことを少しやっ…

アプリケーションポータビリティとJenkinsの有り方に関する所感

弊社ではJenkinsおじいちゃんに日々お世話になっております。隣のチームの @_zoo さんもJenkinsおじいちゃんについての記事を書いておりました。 年の瀬にJenkinsの訃報が届いても、悲嘆にくれないために #vgadvent2013 - massの日記 http://mass.hatenablog…

広告ログ解析基盤にFluentdを使っている話

これはFluentd Advent Calendar 14日目の記事です。 私は現在、VOYAGE GROUPの子会社であるadingoで、DMP cosmiの開発をしています。今日はcosmiでのfluentd利用の話をしようと思います。 DMPについて 過去に勉強会でアドテクまわり及びDMPについて話したの…

skypeのgroup作成者を知る方法

/get creator 参考: https://support.skype.com/ja/faq/FA10042/

unless文の使い方

unlessというのを知ったのでメモ。たとえばmysqlのインストールをサクッとしたいという場合にrootパスワードを設定したくなる。そこでunlessを使うことによって、既にrootユーザにパスワードが設定されているかどうかを調べることができる。 class mysql-ser…

AWS re:Invent 2013で参加したセッション&聴きたかったセッションまとめ

aws

re:Inventで聴いたセッションの備忘録。時系列順。ついでに聴きたかったけど聴けなかったのであとでビデオみるセッションも書いておく。 2013/11/25 13:17 Sessionに関するスライドと動画を見つけたものについてのみ更新 2013/11/12 AWS re:Invent Gameday S…

re:InventでのLogglyの分散ストリーム処理環境に関するセッションが面白かったのでまとめておく

aws

さきほど帰国。parse.comのメモに引き続き、re:InventでのLogglyのセッションについてもまとめておく。 【追記 2013/11/20 9:20】スライドがupされていたので貼っておきます。 要約すると、 お客さんから大量に送られてくるログをリアルタイムに捌くためのシ…

re:InventでのParseのDevOps話がとても良かったのでまとめておく

今、AWS re:Inventにきていて、今日parse.comのセッションを聴く時間があったので簡単にまとめておく。とてもざっくり書くと、要点は parseは1-3段階のDevOpsの進化を経てきた 最初はRoRでデプロイするにも全てのサーバでcapistorano走らせなければ行けなか…

elastic-mapreduceクラスタにaliveで起動させておいてスムーズにsshする

例えばhiveクエリを走らせて、あとからshellで入って様子を見たいとき。 $ elastic-mapreduce --create --name hoge --num-instances 1 --instance-type m1.small --plain-output --alive --hive-script --arg s3://mybucket/hive/query/hoge.q --step-name …

remoteリポジトリで削除されているブランチが手元に残っている場合に、ローカルのブランチをまとめて消す方法

git

remoteリポジトリで削除されてしまっているブランチを消したい場合がある。以下の様な状態のときだ。 -> % git remote show origin * remote origin Fetch URL: git@github.com:suzuken/hoge.git Push URL: git@github.com:suzuken/hoge.git HEAD branch: ma…

awscliを利用したauto-scalingグループの縮退

autoscalingグループ周りの制御をいつも忘れるのでメモっておく。 環境 awsコマンドで。 https://github.com/aws/aws-cli $ aws --version aws-cli/0.12.0 Python/2.6.6 Linux/2.6.32-131.17.1.el6.x86_64 autoscalingグループ取得 $ aws autoscaling descri…

RequestPolicyを使い始めた

第三者ドメインへのリクエストというのにいつからか敏感になり始めたのだけれど、許可していない第三者ドメインへのリクエストを遮断できるプラグインがあったのでいれてみた。 Firefox addon for privacy and security - RequestPolicy by Justin Samuel ht…

GitHub上のリポジトリからpipでインストール

$ pip install -e git+https://github.com/s3tools/s3cmd.git#egg=s3cmd これでよい。 -eはeditableオプション。#egg=の指定が必要。

Jenkinsを再インストールしたらビルドパイプラインが壊れた件

stackoverflowにも同じ現象の人がいた。 Jenkins build pipeline view shows error after reinstallation - Stack Overflow http://stackoverflow.com/questions/17405865/jenkins-build-pipeline-view-shows-error-after-reinstallation The error I get is:…

Herokuのruby-sampleを試す

なんとなく「Herokuさわってみるかなぁ」というテンションになったので、ひとまずHello Worldまでやってみた。 http://heroku.com 環境はOSX Mountain Lion。 まずherokuコマンドを使えるようにする。 -> % brew install heroku-toolbelt ==> Downloading ht…

lazyによる遅延評価

-> % scala Welcome to Scala version 2.10.2 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_25). Type in expressions to have them evaluated. Type :help for more information. scala> lazy val hoge = {println("hogehoge"); "I'm hoge."} hoge: Str…

OSXで特定portをLISTENしているプロセスを調べる

OSX

よく忘れる。 % lsof -i :8083 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 39007 ke-suzuki 53u IPv6 0x5f8cabffbfa7d843 0t0 TCP *:us-srv (LISTEN)

JavaのHogeClass.classはscalaでclassOf[HogeClass]

scala> class C defined class C scala> classOf[C] res7: Class[C] = class C scala> val c = new C c: C = C@26d03842 scala> c.getClass res8: Class[_

sbtでJettyを立ち上げる

sbtでJettyを動かしたのでメモ。Jetty自体もMavenではなくsbtでいれるようにする。以下のプラグインを使う。 JamesEarlDouglas/xsbt-web-plugin https://github.com/JamesEarlDouglas/xsbt-web-plugin このプラグインを利用したサンプルアプリケーションがあ…

sbtでIntelliJ IDEA用の設定をする

IntelliJ IDEAでscala書く際にsbtでどう設定すればいいか調べた。 sbt-ideaプラグインをいれよう mpeltonen/sbt-idea https://github.com/mpeltonen/sbt-idea これをいれればよい。README.mdにも書いてあるとおり、project/plugins.sbtに以下の内容で書いて…

sbtについて調べた

scalaを書くにあたってsbtを使う必要があったのでまとめておく。公式ドキュメントは以下にある。 Contents sbt Documentation http://www.scala-sbt.org/release/docs/index.html 公式ドキュメントをみつつ、sbtのセットアップ方法をまとめておく。環境は以…

scalaファイルをコンパイルして、javapコマンドで確認

こんな感じでscalaコードを書く。 object App { def main(args: Array[String]) { println("hello") } } コンパイルはscalac $ ls App.scala $ scala App.scala $ ls App$.class App.class App.scala javapコマンドでclassファイルを解析する。 $ javap App$…

ListBufferには+=:で末尾に要素追加

+=:で末尾に要素を追加できる。 scala> import scala.collection.mutable.ListBuffer import scala.collection.mutable.ListBuffer scala> val buf = new ListBuffer[Int] buf: scala.collection.mutable.ListBuffer[Int] = ListBuffer() scala> buf += 1 re…

Scalaっぽいリスト連結の実装:::

def append[T](xs: List[T], ys: List[T]): List[T] = xs match { case List() => ys case x :: xs1 => x :: append(xs1, xs) } パターンマッチ使って再帰使うと、とてもScalaっぽい。

golangとPackerをソースからインストール

ついでにpackerもいれておく。 mitchellh/packer https://github.com/mitchellh/packer goがはいってないので、ひとまずhomebrewでいれる。 $ brew install go ==> Downloading https://go.googlecode.com/files/go1.1.src.tar.gz #########################…

OSX Mountain Lionでvagrantを使うまで。

自宅用PCにVagrant環境がなかったので作っておく。 環境 $ uname -a Darwin user.local 12.4.0 Darwin Kernel Version 12.4.0: Wed May 1 17:57:12 PDT 2013; root:xnu-2050.24.15~1/RELEASE_X86_64 x86_64 ひとまずVirtualBoxをインストール Oracle VM Virt…

crontabの%は終端文字

はまった。 * * * * * wc -l `date --date "1 days ago" +%Y%m%d`.log >> logcount.log /bin/sh: -c: line 0: unexpected EOF while looking for matching ``' /bin/sh: -c: line 1: syntax error: unexpected end of file crontabだと%はコマンドの終わりと…

Vagrant meetupを聴いてきた

今日はVagrant meetup。弊社会場ということで、会場担当。 Vagrant meetup 〜作者 Hashimoto氏の来日講演〜 - Chef Meetup | Doorkeeper http://chef-meetup.doorkeeper.jp/events/4624 普段と違って有料のイベントだったので集金周りであたふたしてしまった…

php5.4環境でXDebugをOSX Mountain Lionにセットアップ。

sourceからいれてもいいんだけど、結局面倒になってhomebrewでいれた。 xdebug/xdebug https://github.com/xdebug/xdebug homebrewで入れる場合。僕の環境はphp 5.4なので、 brew install php54-debug 確認。 $ php -m | grep Xdebug Xdebug iniの設置状況は…

別JenkinsからJob設定をインポート

Job Import Pluginを使うと楽。 Job Import Plugin - Jenkins - Jenkins Wiki https://wiki.jenkins-ci.org/display/JENKINS/Job+Import+Plugin だと思ったら今つかっているJenkinsが若干特殊な環境に置かれていて、単純なhttp(s)でqueryできない。認証かけ…

JenkinsにCLIからアクセスする

Jenkins CLI - Jenkins - Jenkins Wiki https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+CLI jenkins.jarを取得してくればよい。localからでも鍵設定すれば叩ける。便利。

社内アドテク輪講の資料をアップしました。SIGKDD2009より。

ad

最近社内でアドテクノロジー関連の論文を読むということをしています。先週で5本目でした。せっかく資料を作ったのでアップしてみました。(かなりざっくりまとめています&TeXで数式打つ手間を省くために画像を切り貼りしており、見やすくはないです。) we…