2017-01-01から1年間の記事一覧
問題:何が出力されるのか? public class BigBangTheory { public static void main(String[] args) { Scientist scientist = new Sheldon() { search() { System.out.println("This is my new spot!"); } }; scientist.search(); } interface Scientist { …
問題:何が出力されるのか? Integer number1 = 5; Integer number2 = 5; Integer number3 = 128; Integer number4 = 128; // True or False ? System.out.println(number1 == number2); System.out.println(number3 == number4); 考え False, False が出力…
前の記事では、Thread class を継承する方法を試しました。 マルチスレッドプログラミング - Thread class の継承 - 社内se × プログラマ × ビッグデータ今回は、Runnable interface を実装することで、マルチスレッドを実現していきます。 こんな感じで作成…
Apache spark などマルチスレッドのプログラミングを行う上で非常に便利なライブラリが登場していますが、それがあまりにも便利すぎるが故に、それ以前のマルチスレッドプログラミングについても学んでおきたいところです。 そもそも Apache spark のライブ…
きっかけは、Apache spark でアプリケーション動かしていた時に、java.lang.OutOfMemoryError: Direct buffer memory に出くわしたこと。 ダイレクトバッファのこともよく理解せずに、spark プログラミングするのは申し訳ない気持ちになったので。。 ダイレ…
以下のコード、コンパイル通ると思いますか?っていうもんだい。 public class PolymorphismChallenge { public static void main(String[] args) { System.out.println(new Chris().getCharacter().getSimpleName()); } abstract static class STARSSoldier…
この記事の続きになります。 http://blog.hatena.ne.jp/blueskyarea/blueskyarea.hatenablog.com/entriesネットワークが毎分切断するような状況だと、ダウンロードするにも途中で切れるから毎度再開しないといけないし、再開モードが機能しない場合は、そも…
これです。 www.discoversdk.com実際のところ、Mockito って Maven のリポジトリを見ても、12/31/2014以降は新しいバージョンが出ていないくらい完成された?フレームワークなのかもしれない。 ただ、この記事は 5/25/2017 に更新されたのもので、個人的にそ…
本件、今のところ結局解決していないので、解決策には言及していません。 (追記)解消しました。 VirtualBox ゲストOS のネットワークが頻繁に Up/Down していたが NATネットワークに変えたら解消 - 社内se × プログラマ × ビッグデータ VirtualBox のゲス…
Eclipse のデバッグ機能で Exception Breakpoint というものがあるそうで、何をするものか分からなかったので使ってみました。 デバッグ画面で Add Java Exception Breakpoint と表示されるボタンをクリックすると、例外が登録できる。 今回は、"NullPointer…
input.txt がよみこむテキストファイルの場合 こんな感じです。 while IFS='' read -r line && [[ -n "$line" ]]; do echo $line; done < input.txt なぜ、IFS='' するのですか? IFSってのはbashの環境変数で、デフォルトでは$' ¥t¥n'(スペース・タブ・改行…
こんな感じでスラッシュで挟んで指定すれば良いらしい。 $ xwininfo | awk '/Width/' Width: 1360 ただ、単に抽出するだけなら、 grep で十分かも。 $ xwininfo | grep 'Width' Width: 1360 抽出した結果を変数に入れて処理するには便利そう。 $ xwininfo | …
Java challenge 既出のコードです。 出力結果を考えてみます。 ソースコード public class CloneableChallenge { public static void main(String[] args) throws CloneNotSupportedException { Human human17 = new Human("cells"); Human human18 = (Human…
private フィールドをモックする junit 書きたいなと思って調べたら、すぐに出てきたのが mockito の whitebox. 以前使ったことがあった気がするけど、忘れていました。 とりあえず簡単なサンプルで public class WhiteBoxExample { private String message …
SparkSqlはSpark上でSQLを利用するためのコンポーネントです。 Sparkの分散環境上で大量データに対して高速なSQLを実行できます。SparkSqlでソートする練習のために、5教科の成績に評価を付けるプログラムを書いてみました。 例えば、今5人(A君~E君)がい…
概要 ・分散アプリケーションを構築する上では、同期、設定管理、グルーピング、名前管理などの機能が必要となる。 →これらの実装は複雑で面倒なもの →Zookeeper はこれらの機能を提供してくれる ・ただし、Zookeeper が提供するのは、基本機能要素そのもの…
Spark のチューニングにおいて重要な要素の一つとなるであろう SparkConf について調べてみる。 概要 ・SparkConf クラスは、Sparkにおける主要な設定の仕組みである。 ・SparkConf のインスタンスは新しい SparkContext を生成するときに必要になる。 ・Spa…
zookeeper サーバと接続出来なかった場合、そのリトライ処理はどのように実装されるのか? 概要 ・ Curator とは、Zookeeper 上に構築された一連の高レベルライブラリ →複雑な接続処理を容易にするAPIを提供してくれるもの 前提 ・ローカル環境で Zookeeper …
ローカルヒストリーは、eclipse 上で編集した履歴を残しておける機能ですね。 普段、変更履歴は git で確認しているので、個人的には全く使ったことがなかったのですが、便利そうです。 ローカルヒストリーの使い方 eclipse 上でファイルを右クリック、比較…
Java の例外処理における tips を見つけたんですが、自分にはとても分かりやすかったので、感想と共に書き残しておこうと思います。11 Mistakes Java Developers make when Using Exceptions https://www.linkedin.com/pulse/11-mistakes-java-developers-ma…
Maven の便利な機能の一つとして、ライブラリの依存性を確認できるものがあります。あるプロジェクトの中で色んなライブラリを活用していると、そのライブラリ間の依存性が問題になり、プログラムが正常に動作しない場合があったりします。ライブラリAとライ…
twitter で流れてきたツイートで以下のようなものがありました。Why 4.0 - 3.10 not equal to 0.90 ? public static void main(String args[]) { double x = 4.0 - 3.10; System.out.println(x == 0.90); } 結果: falseツイートに対する返信で、「double や …
色んな便利なライブラリのお陰で、アルゴリズムの勉強をせずとも複雑な処理が実現できています。 ただ、やはりアルゴリズムってプログラミングをする上では知っておきたいところです。 正直なところ、アルゴリズムの勉強ってきちんとやったことがないので プ…
頻繁に使用するコマンドなのでメモ。 ディスク全体での使用量を調べる df -h $ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda5 26G 22G 3.2G 88% / tmpfs 395M 1.2M 394M 1% /run ※ h オプションが無かったら、単位がつきません 指定ディレク…
表記のとおりです。 例えば、以下のような methodA と methodB があった場合、junitテストで methodA を呼び出した時の methodB の振る舞いを変更したいということです。 ※戻り値を 5 以外にしたい public class PartialMock { public int methodA(int a) { …
JUnit で使えるモックのライブラリには、mockito, jmockit, easymock などがあります。 個人的には mockito しか使ったことがなかったのですが、jmockit がよく使われているらしいので、試してみました。具体的な使い方などは既に多くの記事が存在しますので…
ソースコードRDD には saveAsTextFile というメソッドがあり、引数に指定したディレクトリに簡単に出力することができます。 Spark Streaming における DStream にも saveAsTextFiles というメソッドがありました。ただし、Java での JavaDStream から使う場…
ソースコード単に2つの DStream を作成してあげるだけです。 // create DStream from text file String logDir = "/tmp/logs"; String logDir2 = "/tmp/logs2"; JavaDStream<String> logData = jssc.textFileStream(logDir); JavaDStream<String> logData2 = jssc.textFileSt</string></string>…
Spark Streaming ではファイルが更新されたとしても、その差分のみの取得はされない。 Spark Streaming ではあるディレクトリに生成された新規ファイルは自動的に取り込んでくれるよう。 そこで差分のみを fluentd で取得し、それを新規ファイルとして出力し…
Spark Streaming ではディレクトリを監視して、その中に入ったテキストファイルを取りこめるようなので試してみました。 ソースコードはこちら1.準備(コーディング) ディレクトリを監視し、テキストファイルを取り込むためには、textFileStream の引数に…