タグ

ブックマーク / kazuhira-r.hatenablog.com (18)

  • JJUG CCC 2016 Springに参加してきました - CLOVER🍀

    5/21にベルサール新宿グランドで行われた、JJUG CCC 2016 Springに参加してきました。 JJUG CCC 2016 Spring | 日Javaユーザーグループ タイムテーブルは、こちら。 Timetable JJUG CCC 2016 Spring | 日Javaユーザーグループ ホントは9時30分から行く気満載だったのですが、起きたら9時だったので10時ちょいから参加してました…。 先週インフルエンザにかかって、体力がロストしていたようです…。 参加したセッション 今回参加したセッションは、こちらです。 E-1 テスト自動化のまわりみち @irofさんのセッション。寝坊したので、ちょっと遅れて参加です。自分のところではテスト自動化ってほとんどできていないので、それに向けてどう取り組んでいくか、どう進めていったらいいだろうということが話されていて、とても参考になりま

    JJUG CCC 2016 Springに参加してきました - CLOVER🍀
  • CDH 5.4.4で、HDFS+YARNのDockerイメージを作る - CLOVER🍀

    ちょっと後に使うかなと思いまして、CDHを使ってHDFS+YARNのDockerイメージを作ってみることにしました。 目標は、 HDFSをインストール&起動 YARNをインストール&起動 クライアントもインストールし、HDFS/YARNが起動中のコンテナへ、別コンテナで起動したクライアントから接続できる ClouderaManagerは今回はパスして、自分でインストールする(ムダに頑張る) という環境と手順の確立するところまで、とします。 Dockerの勉強も兼ねて、ということで…。 こういうのもあるらしいんですけどね。 https://github.com/sequenceiq/hadoop-docker CDHを使ってのインストール手順 で、今回CDHを使ってインストールすると言ったわけですが、その前提条件をちょっと確認…。 Javaは、Oracle JDK 1.7がよいみたいです。

    CDH 5.4.4で、HDFS+YARNのDockerイメージを作る - CLOVER🍀
  • Apache SparkのSpark Standalone Modeを動かしてみる - CLOVER🍀

    前回SparkでHello World的なことをやりましたが、今回はSpark Standalone Modeを試してみることにします。 Spark Standalone Mode https://spark.apache.org/docs/latest/spark-standalone.html が、そもそもこれってSparkでとりうるDeployment Modeの一種らしく、クラスタについての用語を見ておく必要がありそうです。 Cluster Modeの用語を読む Cluster Mode Overview https://spark.apache.org/docs/latest/cluster-overview.html ここでのGlossaryという項目に着目すると、それぞれこんな感じ…? 用語 意味 Application ユーザーがビルドした、Spark上に載せられるもの。ク

    Apache SparkのSpark Standalone Modeを動かしてみる - CLOVER🍀
  • テキスト解析にGrok for Java - CLOVER🍀

    こちらのエントリを見て、EmbulkでApacheのログをパースするのにgrokというものがあることを知りまして。 EmbulkでアクセスログをLogstash風に取り込む - 見習いプログラミング日記 grok自体、知らなかったです…。 正規表現がベースになっているようですが、パターンに名前を付けて繰り返し利用できるところがポイントみたいです。 なお、自分が前にEmbulkでApacheログをパースした時は、embulk-parser-grokではなくてembulk-parser-apache-custom-logを使っていました。 https://github.com/arielnetworks/embulk-parser-grok https://github.com/jami-i/embulk-parser-apache-custom-log embulk-parser-grokの

    テキスト解析にGrok for Java - CLOVER🍀
  • Emacs 24にauto-java-completeをインストールする - CLOVER🍀

    Emacsでプログラムを書く環境を整えたくて設定等をしているのですが、そのうちで困っているのがJava。 これまで、普通にjava-modeで書いていたのですが(会社ではJDEE使っていました…)、ちょっとこれをなんとかしたくて。 で、最初にチャレンジしたのがmalabar-mode。 malabar-mode https://github.com/m0smith/malabar-mode Mavanと統合できてよさそうみたいな感じだったのですが、Melpaから入れたところelispでエラーになって、うまく起動せず…。手順通りcedetをmakeしたり、昔のバージョンを引っ張ってきたりしましたけど、解決できず挫折。 まあ、補完ができればいいかぁくらいに思っていたので、他に名前をちらほら見ていたauto-java-completeを導入することにしてみました。 auto-java-compl

    Emacs 24にauto-java-completeをインストールする - CLOVER🍀
  • 負荷テストツール、Gatlingで遊んでみる - CLOVER🍀

    最近ちょっと目にした負荷テストツール、Gatlingをちょっと試してみました。 Gatling http://gatling-tool.org/ Apache JMeterのような負荷テストツールらしいのですが、 テストシナリオをScalaのDSLで書ける レポートがHTMLで出力される シナリオ作成ツールが付属している みたいな特徴があるみたいです。パフォーマンスが良いという話もあるらしいのですが、最近はJMeterも頑張っているそうです。 自分としては、普段こういう負荷テストツールは使っていない(JMeter面倒そうだし…)ので、DSLで書けるようなツールは魅力的ですね。 1系と開発中の2系があるみたいで、今回は2系を使うことにします。 ドキュメントとしてはWikiを見るのですが… User Document https://github.com/excilys/gatling/wik

    負荷テストツール、Gatlingで遊んでみる - CLOVER🍀
  • Javaからの外部プロセス起動に、ZT Process Executorを使う - CLOVER🍀

    Javaから外部プロセス起動するする時は、自分でProcessまわりのクラス使ったり、Commons Exec使ったりするものですが、他に何かないのかな?と思い(Commons Execより、もうちょっと簡単に書けるものが欲しかった)調べたら、こういうのが見つかりました。 GitHub - zeroturnaround/zt-exec: ZeroTurnaround Process Executor 最終リリースは2015年5月なのかぁって思ってたら、Commons Execは2014年だった…。 ※Commons Execはコードは最近更新されている模様 せっかくなので、試してみます。 準備 Maven依存関係としては、最低限以下が必要です。 <dependency> <groupId>org.zeroturnaround</groupId> <artifactId>zt-exec</a

    Javaからの外部プロセス起動に、ZT Process Executorを使う - CLOVER🍀
  • 2015-08-02

    Apache Sparkで、HDFS上のファイルに対して読み書きをしてみます。 といっても、SparkContext#textFileやRDD#saveAsTextFileへ渡すパスを、「hdfs://」から始まるものにすればよさそうです。 なお、HDFSとSparkですが、今回はCDH 5.4.4で構築してみました。なので、Apache Sparkは最新版の1.4系ではなく、1.3系になっています。 プログラム LuceneのStanardAnalyzerを使い、SparkのREADME.mdのWord Countをするプログラムを書いてみます。 とりあえず、ビルド定義から。 build.sbt name := "word-count-lucene-analyzer-cdh-hdfs" version := "0.0.1-SNAPSHOT" scalaVersion := "2.10.4

    2015-08-02
  • はじめてのSpark Streaming - CLOVER🍀

    今までは、SparkのStandalone ModeとYARN上で動かすといった動作環境的なものを少し試してきたので、もうちょっとSpark自体で遊んでみようと思いまして。 まずは、Spark Streamingの初歩的なところからやってみたいと思います。 Spark Streaming Programming Guide http://spark.apache.org/docs/latest/streaming-programming-guide.html とか言いながら、ちょっと寄り道してみたらめっちゃハマりました…。 Spark Streamingとは? こちらを見る限り… Overview http://spark.apache.org/docs/latest/streaming-programming-guide.html#overview Kafka、Flume、Twitter

    はじめてのSpark Streaming - CLOVER🍀
  • Apache SparkをYARN上で動かしてみる - CLOVER🍀

    先ほど、こんなエントリを書きました。 Apache Sparkで、HDFS上のファイルを読み書きする http://d.hatena.ne.jp/Kazuhira/20150802/1438499631 ここで使ったプログラムを、YARN上で動かしてみたいと思います。 SparkをYARN上で動かす時は、yarn-clientとyarn-clusterという2種類の起動方法があるみたいです。 Running Spark on YARN http://spark.apache.org/docs/latest/running-on-yarn.html 参考) Spark on YARN http://kzky.hatenablog.com/entry/2015/01/12/Spark_on_YARN Apache Spark Resource Management and YARN App M

    Apache SparkをYARN上で動かしてみる - CLOVER🍀
  • Apache Sparkで、HDFS上のファイルを読み書きする - CLOVER🍀

    Apache Sparkで、HDFS上のファイルに対して読み書きをしてみます。 といっても、SparkContext#textFileやRDD#saveAsTextFileへ渡すパスを、「hdfs://」から始まるものにすればよさそうです。 なお、HDFSとSparkですが、今回はCDH 5.4.4で構築してみました。なので、Apache Sparkは最新版の1.4系ではなく、1.3系になっています。 プログラム LuceneのStanardAnalyzerを使い、SparkのREADME.mdのWord Countをするプログラムを書いてみます。 とりあえず、ビルド定義から。 build.sbt name := "word-count-lucene-analyzer-cdh-hdfs" version := "0.0.1-SNAPSHOT" scalaVersion := "2.10.4

    Apache Sparkで、HDFS上のファイルを読み書きする - CLOVER🍀
  • はじめてのjBatch - CLOVER🍀

    このあたりのエントリを見て、ちょっとやってみようかなぁと思いまして。 JSR352-Batch Applicationを試してみた(Batchlet編) http://siosio.hatenablog.com/entry/2015/06/06/011830 JSR352-Batch Applicationを試してみた(BatchletでDBアクセス-JPA編) http://siosio.hatenablog.com/entry/2015/06/07/151425 その他、ちょっと目を通したのはこのあたり。 Jbatch実践入門 #jdt2015 http://www.slideshare.net/agetsuma/jbatch-jdt2015 The Java EE 7 TutorialのjBatchの章をテキトーに訳した http://kagamihoge.hatenablog.co

    はじめてのjBatch - CLOVER🍀
  • Javaのシリアライザーをいろいろ試してみる(Java標準、Kryo、MessagePack、Protocol Buffers、JBoss Marshalling) - CLOVER🍀

    少しシリアライズ関係のライブラリを目にする機会がありまして、そういえばこういうまとめ記事あったなぁということを思い出しました。 MessagePack、Kryo、Protocol Buffersなどのシリアライザーのパフォーマンス比較 http://blog.katty.in/4567 気にはなっていたものの、実際にこれらのライブラリを使ってコードを書いたことはなかったので(Protocol Buffersは除く)、いい機会だなと思い試してみました。 今回は、以下について書いていきます。 Java標準 Kryo MassagePack Protocol Buffers JBoss Marshalling 最後の方にかなり個人的な趣向が入っていますが、気にしない方向で…。Java標準が入っているのは、とりあえずといった感じで。 ここから、簡単にシリアライザーごとにシリアライズ対象のクラスと、

    Javaのシリアライザーをいろいろ試してみる(Java標準、Kryo、MessagePack、Protocol Buffers、JBoss Marshalling) - CLOVER🍀
  • Scalaで書く、高信頼型(Reliable)UDP Echoクライアント/サーバ - CLOVER

    これまで、Clojureを中心にUDPを使ったプログラミングをしていましたが、今回はちょっとScalaのみにします。 お題は、高信頼型(Reliable)UDP。 UDPは、データグラムが正しい順序で到着することを保証しませんし、パケットロスも検出できません。これを克服するために、 すべてのデータグラムにシーケンス番号を付ける 送信側は、(受信側からの)確認にタイムアウトを設け、確認が時間以内に来なかったらリクエストを再送する ということで信頼性を付与します。 タイムアウトと再送については、単に一定のタイムアウト時間を使うやり方ではなく、ネットワークの性質や状態、負荷などを考慮する必要があります。ここで、TCPに習い パケットが送信者から受信者に到着して再び戻るまでの往復時間(Round-Trip Time:ラウンドトリップタイム)の現時点の推計値を統計的に求め、維持する。この推計値を元に

    Scalaで書く、高信頼型(Reliable)UDP Echoクライアント/サーバ - CLOVER
  • HttpClientとConnectionManagerとCLOSE_WAITと - CLOVER🍀

    JavaでHTTP通信をやろうとすると、必ずと言っていいほど登場する、Apache HttpClient4(以前は、Jakarta Commons HttpClient3)ですが、これでちょっとハマっていた事象を見かけたので、軽くメモを。 あ、その時に使われていたのは、Jakarta Commons HttpClient3の方です。んで、ソケットのクローズ漏れでハマってました。 これ、チュートリアルだけを信じて実装すると、ハマるんですよねぇ…。 http://hc.apache.org/httpclient-3.x/tutorial.html チュートリアルの中に // Release the connection. method.releaseConnection(); みたいなことが書いてあって、いかにもコネクションをクローズしてくれそうな雰囲気がありますが、これは意味が違います。Ht

    HttpClientとConnectionManagerとCLOSE_WAITと - CLOVER🍀
  • JDK付属、Undertowを使ったGroovy&Clojure、Perlでの簡単なHTTPサーバ - CLOVER🍀

    なんとなく、時々ちょっとしたテストとかで使っているダミーのHTTPサーバ用のスクリプトをまとめたくなりまして。 で、せっかくなのでプラスアルファも入れて。 ホントに簡単なものなので、以下のスペックで。 リクエストの内容を解析することは、必須としない 起動時にはポート番号を指定できる。しなかった場合は、8080で起動 ヘッダ、ボディに何か出力する サーバの終了は、Ctrl-cなどで できれば並行処理可能に ターゲットは、GroovyとClojureでJDK付属のものを使った版、Undertowを使った版を、あとはPerlで1書きました。 実行結果は、いずれもこんな感じになります。 $ curl -i http://localhost:8080/test HTTP/1.1 200 OK Date: Sat, 12 Apr 2014 08:46:39 GMT Content-type: tex

    JDK付属、Undertowを使ったGroovy&Clojure、Perlでの簡単なHTTPサーバ - CLOVER🍀
  • バイトコード操作ツール、Bytemanを試す - CLOVER🍀

    前々から気になっていたのと、少し前に購入したこちらのにも紹介されていたので、JBoss ProjectsのBytemanを試してみることにしました。 JBoss Enterprise Application Platform6 構築・運用パーフェクトガイド 作者: NTTオープンソースソフトウェアセンタ,レッドハット株式会社出版社/メーカー: 技術評論社発売日: 2013/06/22メディア: 大型この商品を含むブログ (10件) を見る そもそもBytemanってなんですか?ってところですが、javaagentを使用してバイトコードの変更を行うツールです。これを利用して、アプリケーションの動作を変更したりできます。 Byteman https://www.jboss.org/byteman 使い方としては、 対象のJavaアプリケーションにByteman用の設定を仕込んで起動する 起

    バイトコード操作ツール、Bytemanを試す - CLOVER🍀
  • JDK 6から同梱されている、簡易HTTPサーバを使う - CLOVER🍀

    ちょっと試したいことがあって、HTTPサーバを用意したかったのですがApacheとかをインストールするのも面倒だったので、JDK 6から同梱されている簡易HTTPサーバを使ってみることにしました。 が、実際に書いたのはJavaも面倒で、Groovyですが(笑)。 参考にしたのは、このサイトです。 http://www.techscore.com/tech/Java/JavaSE/JavaSE6/8/#mustang8-5 APIドキュメントは、こちら。 http://docs.oracle.com/javase/jp/6/jre/api/net/httpserver/spec/index.html Jerseyと組み合わせ使うこともできるみたいですよ。 http://news.mynavi.jp/column/jsr/018/index.html で、書いたコードはこちら。 LightHt

    JDK 6から同梱されている、簡易HTTPサーバを使う - CLOVER🍀
  • 1