docker buildのエラー

dockerで今までうまくいっていたBuildが突然落ちるようになったりすることがあります

こういう時には一度キャッシュをクリーンすれば治ります

EMRでHadoopのJavaサンプル

こんな感じでディレクトリ作成します

pom.xmlを作成します

eclipseで読み込めるようにします

Javaファイルはこんな感じ

WordCountMain.java

WordCountMapper.java

WordCountReducer.java

Jar作成

AWS Console

  • まずEMRを作成します
  • Cleate Clusterから Go to advanced optionsへ
  • Hardware ConfigurationでEC2 instance typeを必要に応じ変更。m1.mediumが最安かな?
  • VPCに対応したのでVPC内に作成したい場合にはここで選択
  • その他、キーとかSecurityGroupなどを適宜設定します
  •  その後、作成したJarをS3へコピーしておきます
  • WordCount用のファイルをS3へコピーします

Stepsから起動します

  • StepTypeはCustomJARを選択
  • JAR locationに先ほどコピーしたJarファイルのS3のLocationを入力
  • Argumentsに

ちなみにouputディレクトリをあらかじめ作成しておくとエラーになります

AmazonEMRでSparkを動かす

結構はまってしまったのでメモ

VPC内に作成したEMRでSparkを動かしました。サンプルはいろいろなところにそこそこあるのですが、どうもきちっと動くものがなく結構苦労してしまいました。

EMR

まずはVPC内にEMRを作成します。EMRのコンソール画面を開き、CreateClusterを押します。

VPC内に作成するためには上の方にあるGo to Advanced optionから進む必要があります。

VPCとサブネットを設定し、パーミッションなどを設定しクラスターを作成します。

計算プログラム

こんな感じでディレクトリ作成します

なおscala 2.10,jdk1.8を使用しています

s3にあらかじめbucketという名のbucketとその下にoutputディレクトリを作成し、EMRから触れるようにパーミッションを設定しておきます

build.sbt

assembly.sbt

SparkPi.scala

make

できたjarファイルをS3にコピーします

実行

EMRのadd StepからCustom JARを選択

JARLocationに先ほどアップしたJarを選択

Argumentに

こんな感じで実行

しばらくたつと s3://bucket/output/piいかに結果が格納されています。

AWS EMR でSparkRを使って見る

AWSEMRとは、SparkやらHiveやらそれら一式を簡単に使える様にしてくれている仕組みです。

ぽちぽちっとEMRでサーバを作成。

この間10分程度

SparkRでサンプルデータを解析してみます

こちらの内容をアレンジしてみました

http://engineer.recruit-lifestyle.co.jp/techblog/2015-08-19-sparkr/

データ取得

http://stat-computing.org/dataexpo/2009/the-data.html

こちらから2001、2、3のデータをダウンロード

unzip

s3にアップロード

同様に2002,2003も繰り返す

Hive

SparkR

こんな感じで簡単にできました

RでDeeplearning

最近、Deeplearning、いいキーワードになっていますね。

これで解析さえすればバンバン売れる!なんて事は無いと思いますが、

Rで使い方を調べてみました。

h2oパッケージというものをRから使うことになります。

環境

  • R version 3.2.2
  • MacOS 10.11.1
  • jdk 1.8.0_40

h2oインストール

こちらを参考にインストール

http://d.hatena.ne.jp/dichika/20140503/p1

ubuntuなどで このようなエラーが出た時には以下のように足りないものをインストールします

Deeplearning

こちらのコードにh2oのDeeplearningを追加します

http://yut.hatenablog.com/entry/20120827/1346024147

結果

SVM

(1338+784)/(1338+117+62+784)=0.9222077

nnet

(1313+815)/(1313+86+87+815)=0.9248153

naivebayes

(752+850)/(752+51+648+850)=0.696219

h2o

(1321+823)/(1321+83+74+823)=0.9317688

Deeplearningが一番正解率高いですね

Rubyでクラス名からインスタンスを作成

環境: ruby 2.2.2

参考

http://d.hatena.ne.jp/stakizawa/20070505/t1

http://yiaowang.web.fc2.com/programing/ruby_tips/etc_01.html

AzureでSQLサーバにlinuxから接続する

最近Azureにはまっています。AzureはMSDNのサブスクリプションを持っていると無料で使える枠があるので非常に便利です。ちょっと試したいときとかサクッとサーバ作って試せますから。

Azureでは公式にはデータベースのサービスはSQLServerになっているようです。MySQL等もサードパーティのサービスで使えるみたいですが、やはりAzureをせっかく使うのならばSQLServerを使ってみることにします。

SQLサーバには特に不満はないのですが、Linuxからの使い勝手が悪かったりします。今回はunixodbcとfreetdsを使ってコマンドラインから接続を試みます

環境
  • OS:Ubuntu14.4
手順

unixodbc,freetds,tdsodbcのインストール

/etc/odbcinst.ini

/etc/odbc.ini

odbcinst.iniのDriverとodbc.iniの[FreeTDS]の部分は名前を合わせます

/etc/freetds/freetds.conf

odbcinst.iniのServernameと[SqlServer]の部分の名前を合わせます

hostにはazureのSQLサーバの接続先ホスト名を記入します

環境変数

接続

sqlserverusernameとsqlserverpasswordはSQLサーバのユーザ名とパスワードをいれます

ここがポイントなのですが -U の後のユーザ名に@xxxxxxxxxとSQLサーバの接続先ホストのホスト名を入れてやる必要があります

以下のサイトを参考にしました

http://jyukutyo.hatenablog.com/entry/20111024/1319473427

http://makeitsmartjp.com/2013/02/centos-sqlserver.html

JD-Eclipseのインストールではまった

ちょっと以前まではEclipseの逆コンパイラ、JD-EclipseのインストールにはUpdateサイトから行っていたのですが、Lunaでインストールした際にはまったので以下にメモ。

  • OS MacOSX 10.10
  • Eclipse 4.4 luna
  • Java 8

http://totech.hateblo.jp/entry/2015/02/19/145004

こちらに書いてあるようにhttp://jd.benow.ca/jd-eclipse/updateのupdateサイトをHelpのInstallNewSoftwareからインストールするとJD-Eclipseの0.1.5というバージョンがインストールされます

これを使用し、デコンパイルしようとしてもうまくデコンパイルされません。最初はFileassociationがおかしいのか?と思い設定を見直したのですがClassFileEditorのまま、特におかしなところはありません。

ずいぶん悩んだのですが、JD-Eclipseのサイトに書いてある手順がファイルからインストールしろとのことなのでその通りにします

https://github.com/java-decompiler/jd-eclipse

こちらからjd-eclipse-site-1.0.0-RC2.zipをダウンロード

https://github.com/java-decompiler/jd-eclipse/releases

EclipseのヘルプーInstallNewSoftwareのAddからArchiveを選択、先ほどのZIPファイルを選択しインストール。

インストールすると1.0.0のバージョンがインストールされます。

FileAssociationもJD Class FileViewerとなります。

これでclassファイルを選択するとめでたく逆コンパイルされます。

古いバージョンのJD-EclipseはJava8には対応していないのでしょうか。。

Rでチャートを書いてみる(9)

Rで作成したチャートをファイル保存する際にちょっとハマってしまったのでメモ

チャートを作成する際に、銘柄コードでグルグル回して作成したい場合があります。その際に、ロウソク足だけ、とかなら大丈夫なのですが、その上に重ね合わせたりする場合にファイル作成時にはうまくいかないことがあります。

ロウソク足

これはOKです

ロウソク足+α

これだとpointsが描かれない

こうすればうまくファイルに出力されます

この辺りを参考にしました

http://stackoverflow.com/questions/18556548/is-it-possible-to-build-a-quantmod-chart-incrementally-and-export-the-final-resu

http://stackoverflow.com/questions/18342703/r-appears-to-fail-to-execute-a-line-in-a-function/18342756#18342756