社内se × プログラマ × ビッグデータ

プログラミングなどITに興味があります。

Java challenge Interface

問題:何が出力されるのか? 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 { …

Java challenge Integer

問題:何が出力されるのか? 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 が出力…

マルチスレッドプログラミング - Runnable interface の実装

前の記事では、Thread class を継承する方法を試しました。 マルチスレッドプログラミング - Thread class の継承 - 社内se × プログラマ × ビッグデータ今回は、Runnable interface を実装することで、マルチスレッドを実現していきます。 こんな感じで作成…

マルチスレッドプログラミング - Thread class の継承

Apache spark などマルチスレッドのプログラミングを行う上で非常に便利なライブラリが登場していますが、それがあまりにも便利すぎるが故に、それ以前のマルチスレッドプログラミングについても学んでおきたいところです。 そもそも Apache spark のライブ…

ダイレクトバッファについて調べる機会

きっかけは、Apache spark でアプリケーション動かしていた時に、java.lang.OutOfMemoryError: Direct buffer memory に出くわしたこと。 ダイレクトバッファのこともよく理解せずに、spark プログラミングするのは申し訳ない気持ちになったので。。 ダイレ…

Java challenge どこに違和感を感じればよかったのかが分からない

以下のコード、コンパイル通ると思いますか?っていうもんだい。 public class PolymorphismChallenge { public static void main(String[] args) { System.out.println(new Chris().getCharacter().getSimpleName()); } abstract static class STARSSoldier…

VirtualBox ゲストOS のネットワークが頻繁に Up/Down していたが NATネットワークに変えたら解消

この記事の続きになります。 http://blog.hatena.ne.jp/blueskyarea/blueskyarea.hatenablog.com/entriesネットワークが毎分切断するような状況だと、ダウンロードするにも途中で切れるから毎度再開しないといけないし、再開モードが機能しない場合は、そも…

Mockito のチュートリアル記事を読んだ感想

これです。 www.discoversdk.com実際のところ、Mockito って Maven のリポジトリを見ても、12/31/2014以降は新しいバージョンが出ていないくらい完成された?フレームワークなのかもしれない。 ただ、この記事は 5/25/2017 に更新されたのもので、個人的にそ…

VirtualBox ゲストOS のネットワークが頻繁に Up/Down するが原因は分かっていない話

本件、今のところ結局解決していないので、解決策には言及していません。 (追記)解消しました。 VirtualBox ゲストOS のネットワークが頻繁に Up/Down していたが NATネットワークに変えたら解消 - 社内se × プログラマ × ビッグデータ VirtualBox のゲス…

Eclipse 例外ブレークポイントで効率アップ?

Eclipse のデバッグ機能で Exception Breakpoint というものがあるそうで、何をするものか分からなかったので使ってみました。 デバッグ画面で Add Java Exception Breakpoint と表示されるボタンをクリックすると、例外が登録できる。 今回は、"NullPointer…

テキストファイルを1行ずつ処理するには

input.txt がよみこむテキストファイルの場合 こんな感じです。 while IFS='' read -r line && [[ -n "$line" ]]; do echo $line; done < input.txt なぜ、IFS='' するのですか? IFSってのはbashの環境変数で、デフォルトでは$' ¥t¥n'(スペース・タブ・改行…

awk でパターンにマッチする行のみを抽出する

こんな感じでスラッシュで挟んで指定すれば良いらしい。 $ xwininfo | awk '/Width/' Width: 1360 ただ、単に抽出するだけなら、 grep で十分かも。 $ xwininfo | grep 'Width' Width: 1360 抽出した結果を変数に入れて処理するには便利そう。 $ xwininfo | …

Java challenge cloneable

Java challenge 既出のコードです。 出力結果を考えてみます。 ソースコード public class CloneableChallenge { public static void main(String[] args) throws CloneNotSupportedException { Human human17 = new Human("cells"); Human human18 = (Human…

Java private フィールドをモックする

private フィールドをモックする junit 書きたいなと思って調べたら、すぐに出てきたのが mockito の whitebox. 以前使ったことがあった気がするけど、忘れていました。 とりあえず簡単なサンプルで public class WhiteBoxExample { private String message …

SparkSql で5教科の成績に評価を付けてみる

SparkSqlはSpark上でSQLを利用するためのコンポーネントです。 Sparkの分散環境上で大量データに対して高速なSQLを実行できます。SparkSqlでソートする練習のために、5教科の成績に評価を付けるプログラムを書いてみました。 例えば、今5人(A君~E君)がい…

Apache ZooKeeper の基本について調べてみる

概要 ・分散アプリケーションを構築する上では、同期、設定管理、グルーピング、名前管理などの機能が必要となる。 →これらの実装は複雑で面倒なもの →Zookeeper はこれらの機能を提供してくれる ・ただし、Zookeeper が提供するのは、基本機能要素そのもの…

Apache Spark の SparkConf について調べてみる

Spark のチューニングにおいて重要な要素の一つとなるであろう SparkConf について調べてみる。 概要 ・SparkConf クラスは、Sparkにおける主要な設定の仕組みである。 ・SparkConf のインスタンスは新しい SparkContext を生成するときに必要になる。 ・Spa…

Apache Curator Framework のリトライ処理について調べてみる

zookeeper サーバと接続出来なかった場合、そのリトライ処理はどのように実装されるのか? 概要 ・ Curator とは、Zookeeper 上に構築された一連の高レベルライブラリ →複雑な接続処理を容易にするAPIを提供してくれるもの 前提 ・ローカル環境で Zookeeper …

eclipse ローカルヒストリーをほんの少しだけ試してみました

ローカルヒストリーは、eclipse 上で編集した履歴を残しておける機能ですね。 普段、変更履歴は git で確認しているので、個人的には全く使ったことがなかったのですが、便利そうです。 ローカルヒストリーの使い方 eclipse 上でファイルを右クリック、比較…

Java 例外処理における 11 個の誤り

Java の例外処理における tips を見つけたんですが、自分にはとても分かりやすかったので、感想と共に書き残しておこうと思います。11 Mistakes Java Developers make when Using Exceptions https://www.linkedin.com/pulse/11-mistakes-java-developers-ma…

maven Dependency trees が便利

Maven の便利な機能の一つとして、ライブラリの依存性を確認できるものがあります。あるプロジェクトの中で色んなライブラリを活用していると、そのライブラリ間の依存性が問題になり、プログラムが正常に動作しない場合があったりします。ライブラリAとライ…

Java で何故 4.0 - 3.10 は 0.90 ではない ?

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 や …

Scala プログラミング練習(バブルソート)

色んな便利なライブラリのお陰で、アルゴリズムの勉強をせずとも複雑な処理が実現できています。 ただ、やはりアルゴリズムってプログラミングをする上では知っておきたいところです。 正直なところ、アルゴリズムの勉強ってきちんとやったことがないので プ…

Linux でディスク使用量を調べる

頻繁に使用するコマンドなのでメモ。 ディスク全体での使用量を調べる 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 オプションが無かったら、単位がつきません 指定ディレク…

JMockit でメソッド内から呼び出しているメソッドのみをモックする

表記のとおりです。 例えば、以下のような methodA と methodB があった場合、junitテストで methodA を呼び出した時の methodB の振る舞いを変更したいということです。 ※戻り値を 5 以外にしたい public class PartialMock { public int methodA(int a) { …

初 JMockit の感想

JUnit で使えるモックのライブラリには、mockito, jmockit, easymock などがあります。 個人的には mockito しか使ったことがなかったのですが、jmockit がよく使われているらしいので、試してみました。具体的な使い方などは既に多くの記事が存在しますので…

Spark Streaming で テキストファイルへのセーブ

ソースコードRDD には saveAsTextFile というメソッドがあり、引数に指定したディレクトリに簡単に出力することができます。 Spark Streaming における DStream にも saveAsTextFiles というメソッドがありました。ただし、Java での JavaDStream から使う場…

Spark Streaming の textFileStream で複数のディレクトリを対象にしてみる

ソースコード単に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>…

fluentd で収集したファイルを Spark Streaming で GET

Spark Streaming ではファイルが更新されたとしても、その差分のみの取得はされない。 Spark Streaming ではあるディレクトリに生成された新規ファイルは自動的に取り込んでくれるよう。 そこで差分のみを fluentd で取得し、それを新規ファイルとして出力し…

TextFileStream でリアルタイム word count

Spark Streaming ではディレクトリを監視して、その中に入ったテキストファイルを取りこめるようなので試してみました。 ソースコードはこちら1.準備(コーディング) ディレクトリを監視し、テキストファイルを取り込むためには、textFileStream の引数に…