2014年7月24日木曜日

留学終了。そして、次のステップへ

6月末で授業が終わり、帰国しました。

語学留学も含めると1年2ヶ月、あっという間でした。
そして、TOEFLやGMATなど留学準備にかなり長い時間かかったので、感慨深いです。

留学して、技術的なことはもちろん、コミュニケーションの面でも多くのことを学んだと思います。
そして何より、日本とは違う生活スタイルや社会インフラを受け入れて、その中で生活することで、日本の良いところを感じたり、一方、アメリカ、サンフランシスコの良さを感じたりすることができました。言葉にすると陳腐ですが、世界が身近になったと思います。

サンフランシスコではデータサイエンティストの需要が引き続き大きく、インターネット系のスタートアップだけでなく、大企業も採用を始めています。そして、シリコンバレーのスタートアップの人たちと話をすると、今後もデータサイエンスのマーケットは大きくなると考えているようです。この流れに乗って、データサイエンスをいろいろなところで活かせる仕事をしていきたいと思っています。

留学が終わったので、このブログの更新も止めたいと思います。
読んでくださった方、ありがとうございました。

2014年6月19日木曜日

(備忘) Amazon AWSを使ってのMapReduce -第1章

Elastic Map Reduce(EMR)を使って簡単な集計をしたときのメモ。
使用データは、wikipediaのtraffic を集めたwikistatsデータ。公になっているデータでサイズは150GBです。
(http://aws.amazon.com/datasets/6025882142118545)

結構調べながらやったこともあり、週末かかりました。もう一度はできないので、メモします。


第一章: データの準備


参考URL
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/using-public-data-sets.html


1) Amazon EBS Snapshotのコピー

正直なんのこっちゃって感じでしたが、どうやらデータは、Amazon Elastic Block Store(EBS)でサポートされており、EBCとは仮想の外付けHDDのようなものだと理解しています。そして、Amazonが公開しているフリーのデータの多くは、EBCに格納されているようです。

1. まず初めにAWSのマネジメントコンソールから、EC2のページに行きます。

2. 右にあるツールバーから「Snapshots」を選び、 wikistatsのsnapshots ID (US Snapshot ID (Linux/Unix):snap-f57dec9a) を表示させます。EBSはRegion(Virgnia、N. Carifornia, Oregon, Tokyoなどなど)によって分かれており、wikistatsデータは、Virgniaにありました。なので、表示されなかったら、RegionがVirgniaになっているか確認します。

3. N.Virgniaから自分の最寄りのRegionにコピーします(「Actions」から「Copy」を選択すると、ポップアップでどこにコピーするか聞いてきます)。

4. コピーし終わったら、Create Volumeします。

5. 続いて、EC2のインスタンスを起動します。EBSは”外付けHDD"なので、バーチャルマシンであるEC2インスタンスからアクセスすることになります。EC2を立ち上げるときに、コピーで作ったSnap ShotのIDを入力すると、インスタンスが起動したときに、認識してくれます。


6. EC2が起動したら、Snapshotをマウントします。SSHでEC2のインスタンスにログインして、以下を実行します(ec2-userでログインしているが、rootで作業したいのでsudo suします)

$sudo su
#mkdir /mnt/wikidata
#mount /dev/xvdf1/ /mnt/wikidata

ここまで準備の準備・・・・続いて、マウントしたデータをS3にデータを移します。


2) EC2からS3へデータの転送


1) EC2にSSHログインして、sudo suしたら、便利ツール「s3cmd」をインストールします。そして、s3cmd --configure でセッティング。 Access Key、Secret Keyを聞かれますので、AWSのマネジメントコンソール右上のログイン名をクリックし、Security Credentialから確認できます。
$sudo su
#yum --enablerepo=epel install s3cmd
#s3cmd --configure
2) そして、S3でバケット(フォルダ)を用意します。作ったバケットにデータをコピーしていきます。というのも、EMRはS3からデータを読み込むので、ここにインプットするデータを置いておきたいわけです。


3)さて、いよいよデータをEC2からS3に転送します。以下のコマンドでいけるはずです。
#cd /your path to wikistats data/
#s3cmd put --recursive /mnt/wikidata/wikistats/ s3://<your bucket>/wikidata/

それにしても、150GB、約2000のgzipファイルをコピーするので、めちゃ時間かかる・・・

これ以外のs3cmdの用法は、こちら(http://s3tools.org/usage)


(おまけ)

転送中にまさか!!・・・途中でエラーが出てファイルの一括アップロードが止まりました。残り961ファイル・・・そこで、残りのファイルのリストを作り、Perlでs3cmd putを呼び出すone linerコードを準備しました。遠い昔にやった、Perl one linerの記憶を便りに検索しまくりました。。。

#まず、残ったファイルのリストをテキストファイルで保存
ls /mnt/wikidata/wikistats/ | cat | tail -n 961 > filelist.txt

#そして、Perl one-linerで残ったファイルを転送
perl -nle '$from = "s3cmd put /mnt/wikidata/wikistats/".$_; $to = " s3://<your bucket>/wikidata/wikistats/".$_; $cmd = $from.$to; system($cmd);' filelist.txt

ちょっとつかれたので、続きは次回!

2014年5月29日木曜日

いよいよ最終モジュール!

いよいよ5月中旬から最終モジュールが始まりました。私の留学生活も残すところ1ヶ月です。
あっという間だったような、長かったような、不思議な感じです。しかし、多くのことを勉強しましたし、何より旅行ではなく、実際に住んで、サンフランシスコのライフスタイルに触れて、アメリカのことや、日本のことについて考えるようになりました。そのことが大きな収穫だと思っています。

さて、最終モジュールのラインナップについて書きたいと思います。

Application of Analytics
シミュレーションのクラスです。モンテカルロシミュレーションに始まり、MCMCなどをやります。わりと数学重視のクラスです。最終モジュールで疲れてきている身体には応えますが、トピックは実用的かつ重要なので、頑張ってついていきます。


Marketing Analytics
マーケティングに纏わる分析手法を勉強します。コンジョイント分析、LTVの求め方など。先生は元ニールセンの方で、統計学的にどうこうというよりは、統計分析の結果をどうビジネスクライアントに説明するかに力点が置かれています。そして、このクラスの特徴は、SASを使用すること。クラス内では、賛否両論ありますが、私個人としては、SASはRと違って有償ですし、まだまだ大手企業で使っているメジャーなソフトウェアで覚えておいて損はないと思っています。

Web Analytics
これが本モジュール一番期待している授業です。自分でウェブサイトを作って、それにGoogle Analytics等の分析ソフトを導入して、実際に分析していくという流れです。先生は、元Googleのエンジニアの方でこれらのツールを熟知しているのはもちろん、とてもナイスガイなので、多くを学びたいと思います。

Practicum
インターンですね。いよいよ最後!!


最終モジュールで、気が抜けそうですが、なかなかのラインナップだと思います。最後まで楽しんで勉強できそうです。