タグ

ブックマーク / acro-engineer.hatenablog.com (39)

  • Java Day Tokyoでマイクロサービスとかの話をしてきました #JavaDayTokyo - Taste of Tech Topics

    Hello world, タニモトです! っていうと、誰か分からない感じになりますが @cero_t です! なんだか怒濤のようにJavaな日々が過ぎていきました。 5/21(土)のJJUG CCCではイベントスタッフをこなしながら、後輩たちによるElasticsearchハンズオンを見守り、とにかく忙しくしていたら1日が過ぎ去っていきました。CCCの参加者は800人越えですってよ😳 そして、5/24(火)のJava Day Tokyoでは、自分自身の発表と、また英語でインタビューを受けるという貴重な機会をいただき、こちらも準備でバタバタしていたら、あっという間にイベントが終わっていました!😷 Java Day Tokyoは、1300人を越える参加があったそうです! これらのイベントに参加してくださった皆様、ありがとうございます。 日Javaコミュニティが少しでも盛り上がるよう力を

    Java Day Tokyoでマイクロサービスとかの話をしてきました #JavaDayTokyo - Taste of Tech Topics
  • Apache Storm 1.0.0の機能を使ってみる - Taste of Tech Topics

    お久しぶりです@kojiisd です。 このブログへの登場はかなり久しぶりです。昨年10月にミャンマーから日に帰ってきて、今は、IoTやら可視化などに関する仕事をしています さて、TwitterよりStormが公開されて以降、分散ストリーム処理フレームワークも、Flink、Spark Streaming、Samza、Beam、Gearpump、SensorBee等、さまざまなOSSプロダクトが公開されました。 世はまさに「大ストリーム時代」!?(ワンピース風) そのような中、4/12にApache Storm から正式メジャーバージョンとなる、1.0.0がリリースされました。このタイミングでどのような機能が盛り込まれるのか、興味を持っていましたが、これまでの課題を解消しつつ、他プロダクトよりも一歩先に行くような内容もリリースされました。 大きな変更点は12個 以下の公式サイトでも公表され

    Apache Storm 1.0.0の機能を使ってみる - Taste of Tech Topics
  • 思い切ってelasticのTimelionを取り入れてみた - Taste of Tech Topics

    こんにちは。 先日「elasticの新プロダクト「Beats」シリーズに震える!」 を投稿したPlNOKlOです! AcroquestではENdoSnipeBVDというサービスで経営の可視化を行っており、 私も2年目ながら可視化のお手伝いをさせてもらっています。 今回、とあるお客様から、 「稼働率を表現したい」という要望をいただきました。 見たいグラフを打ち合わせした結果、 線グラフとエリアグラフを同時に表示する必要がでてきました。 ですがご存知の通り、Kibanaでは 線グラフなら線グラフ、エリアグラフならエリアグラフと、 一つのグラフしか出力できないんです。 ではどうするか・・・ JavaOne2015に登壇し、 私のボスでもある、 @cero_t さんに相談したところ、 「試しにTimelion使ってみたら?」 とアドバイスをもらいました。 Timelion・・・? Timelion

  • elasticの新プロダクト「Beats」シリーズに震える! - Taste of Tech Topics

    初めてこのブログに投稿します、PlNOKlOです! 皆さんよろしくお願いします。 このエントリーは、Elasticsearch Advent Calendar 2015の15日目です。 さて、 今日紹介したいのは、elasticの新プロダクト「Beats」シリーズです。 社内で @cero_t さんが「みんなでBeatsのWebinarを見る夕会」なるイベントを 突発的に企画したので、よく分からないながらも参加してきたのですが、、、 震えました モニタリングツールとしてかなりよくできている感じで、 @cero_t さんが騒ぐ理由も分かる気がしました。 特にPacketbeatは想像以上にヤバかったですね。 皆さん、こいつは注目です! ということで、そんなBeatsシリーズのうち、 TopbeatとPacketbeatの2つについて、私の震えポイントを紹介します! 1. Beatsとは?

    elasticの新プロダクト「Beats」シリーズに震える! - Taste of Tech Topics
  • Impalaにファイルで投入したデータはいつから検索可能になるの? - Taste of Tech Topics

    こんにちは。kimukimu(@kimutansk)です。 このエントリはSpark, SQL on Hadoop etc. Advent Calendar 2014 - Qiitaの12/14分です。 多くの人がSQLなら書けるということで、 開発者でなくても自在に検索を定義可能なSQL on Hadoopが今非常に広まりつつあります。 私はそんなSQL on Hadoopの中でImpalaを今使用しているため、Impalaについて書かせていただきますね。 Impalaをデータの集計で使用しているのですが、 その際に「元々存在しているテーブルにデータをファイルで投入する」ことがあります。 ですが、ファイル投入後クエリを実行してみても投入した結果が表示されないことがありました。 かつ、Impalaのサイトを見てもどのタイミングでデータが検索可能になるか、は明確には見つからないんですよね・・

    Impalaにファイルで投入したデータはいつから検索可能になるの? - Taste of Tech Topics
  • Selenium IDEからJavaファイルを出力して実行。 - Taste of Tech Topics

    ども、toshiです。 Selenium話の続きです。 今回は、Selenium IDEで作ったパターンから Javaのコードを作ってみましょう。 まずは1パターン作ってみる。 以下のように、googleでseleniumを検索するパターンを作ってみます。 エクスポートしてみる。 Seleniumで1パターンできたら、Javaのコードをエクスポートしてみます。 エクスポートのメニューはこちら。 エクスポートして、javaファイルを作ります。 それがこちら package com.example.tests; import java.util.regex.Pattern; import java.util.concurrent.TimeUnit; import org.junit.*; import static org.junit.Assert.*; import static org.h

    Selenium IDEからJavaファイルを出力して実行。 - Taste of Tech Topics
  • StormのプロセスをDaemon化してみます(その1 - Taste of Tech Topics

    こんにちは。kimukimuです。 これまでStormの関連プロセス(ZooKeeper、Nimbus、Storm UI、Supervisor)は このブログにおいては手動で起動していましたが、 それだとプロセス管理等も出来ないですし、 ログアウトした時にプロセスが落ちる・・・等といった問題も残ります。 なので、今回からはStormの各プロセスをDaemon化する手順をまとめてみます。 1.Twitterにおいてはどういう風にプロセス管理されているの? storm-userメーリングリストにおいては「daemontools」を使用しているという情報がありました。 #メーリングリストの「stop/start all daemons」というスレッドにおいて。 ですが、この「daemontools」、下記のような事情があり微妙に不便です。 ソースコードで公開されているため、パッケージ管理配下に入

    nobusue
    nobusue 2014/06/08
    Monitよさそうですね
  • Stormって条件でBoltを分岐させることってできるの? - Taste of Tech Topics

    こんにちは。kimukimuです。 Stormの次バージョン(0.8.2)の開発を楽しみに待っていますが、 いつの間にか0.8.2の開発版のビルド番号が16まで行っていました(ーー; 0.8.2はGUIもパワーアップしているので楽しみです。 ・・・そんなわけで、どこかこのあたりで一度リリースしてくれることを期待する今日この頃です^^; とまぁ、それはさておき、今日のお題です。 1.StormのWikiに書いてありそうで書いていない肝心なこと これまで何回かStormについて投稿してきましたが、 肝心なことを書いていなかったことに気付きました。 それは・・・ 「Stormって条件でTupleを送信するBoltを分岐できるの?」 です。 StormのWikiを見てみても、下のようなSpoutとBoltの接続図は書いてありますが、 条件に関する記述はありません。 下の図からわかることは下記の2点

    nobusue
    nobusue 2014/06/08
    Streamを複数定義すればOK
  • StormでTopologyを素早く起動させる方法は? - Taste of Tech Topics

    こんにちは。kimukimuです。 最近花粉で駆逐される側に回っている今日この頃です。 アレグラFX、ザジテン等普通に薬局で買える薬も強力なものがそろってきているんですが、 それ以上に花粉の症状がひどく、例年になく苦しんでいる状態です。 ・・・ただ、マスクすると息が吸えずに苦しく、それはそれで問題なんですよね。 ともあれ、では題に入りましょう。 1.Topologyを起動するのには時間がかかります 実際にStormクラスタを扱ったことがある方であればわかるかと思いますが、 StormTopologyを起動する際には下記のように時間がかかります。 #当然、マシンの性能で変わりますがCorei7やXeon E3といったCPUを積んだエントリサーバクラスだと下記くらいです。 TopologyをSubmitするJavaコマンドを起動するのにかかる時間:3秒 TopologyをSubmitする時

    nobusue
    nobusue 2014/06/08
    運用時に必要なテクニック
  • メッセージを処理する度に共通処理を行う方法は? - Taste of Tech Topics

    こんにちは。kimukimuです。 少し宣伝を。 2013年5月18日発売のSoftware Design 2013年6月号に、 「春の嵐吹く,リアルタイム分散処理Storm」という形でStormの記事が掲載されています。 Stormの概要や実際に外部のプロセスと組み合わせてTopologyを動かす方法が載っていますので、 興味がある方はぜひ読んでみてください。 というわけで(?)、題に入ります。 1.StormのTuple処理に対して共通的に処理を行わせることは出来ないの? Stormを実際に動かしていて大変なこととして、「どのイベントがどう流れたかがわからない」というものがあります。 一応、Topologyを起動するときにパラメータを指定すればデバッグモードで起動して、 個々のイベントについてもログ出力がされます。 ・・・なのですが、Spout/Boltで処理した全イベントに対して一

    メッセージを処理する度に共通処理を行う方法は? - Taste of Tech Topics
    nobusue
    nobusue 2014/06/08
    Taskhookを使った選択的ログ出力
  • Storm0.9.0の新機能(Topology毎のログ出力)を試してみます - Taste of Tech Topics

    こんにちは。kimukimuです。 Storm0.9.0-rc系がリリースされてから正式版が出るのを待っている今日この頃ですが、 Storm0.9.0はApacheプロジェクトに入る前の最終リリースとなるということで、かなり大きなマイルストーンになりそうです。 そのため、検証のためまだ正式版が出るまでにはかかりそうです。 なので、正式版が出る前ですが、Storm0.9.0で追加/変更された機能を順に試してみることにします。 今回は、実際にStormを使っている方にとっては非常にありがたく感じる 「Topology毎のログ出力切り分け」について。 1.StormTopologyログ出力はわかりにくい? 実際にStormを使ったことがある方だとわかるかと思いますが、StormTopologyのログ出力先はわかりにくいです。 理由は、以下の2点。 どのTopologyがどのログに出力されている

    Storm0.9.0の新機能(Topology毎のログ出力)を試してみます - Taste of Tech Topics
    nobusue
    nobusue 2014/06/08
    これは地味に嬉しい
  • Storm関連本とオススメ電子書籍 - Taste of Tech Topics

    新年あけましておめでとうございます。ツカノ(@snuffkin)です。 今年最初のT3ブログですね。よろしくお願いします。 私はリアルタイム分散処理の仕事に携わっているため、昨年、こんな話題に興味を惹かれました。 CDHによるSparkのサポート AmazonからKinesisが登場 ImpalaやPrestoといった分散クエリの盛り上がり こういった傾向から、リアルタイム分散処理に関する機運の高まりを感じます。この調子だと、2014年はリアルタイム分散処理でアドベントカレンダーを立ち上げられるくらいの年になるのではと、期待しています。 さて、リアルタイム分散処理を行うプロダクトはSpark、Splunk、Storm等、様々あります。中でもStormは、このブログで特に取り上げてきました。そこで、今回はStorm関連についてまとめてみました。 あっ、私が知らないだけで、他にもオススメの

    Storm関連本とオススメ電子書籍 - Taste of Tech Topics
  • Spring BootによるWebアプリお手軽構築 - Taste of Tech Topics

    こんにちは、阪です。 Springのメジャーバージョンアップに伴い、Spring Bootも晴れて1.0となりました。 Spring Bootは、Spring周りの依存関係をシンプルに解決してくれるフレームワークですが、今流行りの(流行る予定の?)Dropwizardを意識した作りになっています。 どれだけシンプルにできるのか、見てみようと思います。 超シンプルなWebアプリの作成 では早速、Webアプリを作ってみましょう。 手始めに、サーバにアクセスすると固定文字列を返す(いわゆるHello World的な)アプリを作ってみます。 まず、下ごしらえとして、Mavenのpom.xmlを作成します。 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-i

    Spring BootによるWebアプリお手軽構築 - Taste of Tech Topics
  • もしもラムダの中で例外が発生したら(後編) - Taste of Tech Topics

    こんにちは。アキバです。 ゴールデンウィークですね! 皆さんいかがお過ごしですか? 今年は間に平日が多めなので、大型連休!というよりは2回連休があるというイメージの方が強いかもしれません。 cero-tの奥さんは11連休だとか さて、前回に続いて、ParallelStreamで動かしているラムダ内で、例外が発生した場合の挙動について調べていきます。 まずは、軽くおさらいします。 以下のようなコードを書きました。 try { List<String> strArray = Arrays.asList("abc", "def", "xxx", "ghi", "jkl", "xxx", "pqr", "stu"); strArray.parallelStream().forEach(s -> { System.out.println("ラムダ開始: id=" + Thread.currentTh

    もしもラムダの中で例外が発生したら(後編) - Taste of Tech Topics
  • Spring XMLでCamelを書いて、twitterとelasticsearchを連携(Apache Camel入門 その3 Spring XMLについて) - Taste of Tech Topics

    こんにちは、もっと多くのJava技術者がCamelで楽できるはずと信じているツカノ(@snuffkin)です。 前回は、発達したJavaのエコシステムの恩恵にあずかり、実質数行のJavaコードで、twitterとelasticsearchを連携させることができました。 今回は、Spring XMLでCamelを記述することで、twitterとelasticsearchを連携させてみましょう。 「Camelって何?」って人は、前回までの内容を確認しておきましょう。 Apache Camel入門(その1 OSSをつなぐOSS) - Taste of Tech Topics twitterとelasticsearchを簡単に連携させる(Apache Camel入門 その2 コンポーネントについて) - Taste of Tech Topics CamelのDSLについて これまで説明してきたCa

    Spring XMLでCamelを書いて、twitterとelasticsearchを連携(Apache Camel入門 その3 Spring XMLについて) - Taste of Tech Topics
  • もしもラムダの中で例外が発生したら(前編) - Taste of Tech Topics

    ある日、 id:cero-t がJJUGの重鎮たちと話している中で、とある宿題をもらいましたとさ。 「Java8のラムダの中で例外が発生したら、どうなるんだろう?」 こんにちは、アキバです。 もう皆さんはJava8を使ってみましたか? とりあえずインストールしてみた人! ・・はーい (おまえか という冗談はさておき、 今回は、id:cero-t に代わって私が冒頭のお題を調べてみました。 1. SerialStreamで動かしたラムダで例外が発生したら まずは、小手調べにシングルスレッドの場合を見てみましょう。 検査例外が発生するようなコードをラムダに書いてみると、コンパイルエラーになります。 こんなコードです。 try (BufferedWriter writer = Files.newBufferedWriter(Paths.get(W_FILENAME))) { // writer.

    もしもラムダの中で例外が発生したら(前編) - Taste of Tech Topics
  • Hadoopの環境にあると便利なツール(parallel-ssh) - Taste of Tech Topics

    こんばんは、はじめまして、 Skipperです。 今日は、Hadoopに関連して、 Hadoopの環境にあると便利なツールの1つを紹介します。 #他にもKickStart、puppet、WOLなどあるのですが、書ききれないので #1つに絞りました。 parallel-ssh Hadoopで性能出すためには、 マシンを最低10台必要だと言われています。 ですが、仮に10台のマシンを用意したとして、 1台1台ログインしてログ集めたり、Hadoopのサービスを再起動したり… というのは面倒ですよね。 このparallel-sshは、そんな面倒な操作をすべて1回でやってくれます。 私もこれで複数台のPCを一度にシャットダウンの画面にしたときは、 ちょっと感動しました。 使い方 使い方はいたって簡単。 一度に操作したいマシンのホスト名(IPアドレス)をファイルに書き出し、 [hostlist] ce

    Hadoopの環境にあると便利なツール(parallel-ssh) - Taste of Tech Topics
  • Stormデモでのコードを説明します - Taste of Tech Topics

    こんにちは。kimukimuです。 3月1日にAdvanced Tech Night No.4 BigDataの次のSTEP リアルタイム分散処理のイマドキを開催しました。 その際のデモのコードを説明します。 尚、どんなデモだったかについては下記のSlideを参照してください。 Twitterのリアルタイム分散処理システム「Storm」demo View more presentations from AdvancedTechNight 上記のデモに使用したコードを説明します。 尚、ソースコードは StormSample から取得してください。 まず、デモで使用したTopologyのソースは上記より、4つのソースからなります。 1.TwitterSingleSpout 2.HashTagFilterBolt 3.PrinterBolt 4.HashTagDetectTopology(トポロ

  • Stormの新機能、Trident APIって何?(その1 - Taste of Tech Topics

    こんにちは。kimukimuです。 前回はStorm環境構築用のRPMをまとめよう・・・ と考えていましたが、Stormの0.8.0が2012/08/03に正式リリースとなり、 Trident APIという新しいAPI群が追加されちゃいました^^; なので、今回以降はTrident APIについて調べて書いていこうと思います。 1.Trident とは? TridentはStormのリアルタイムコンピューティングの新たな抽象概念です。 Tridentを用いることにより、高スループット(百万イベント/秒オーバー)な処理と状態を持つストリーム処理を融合できます。 言うなれば、TridentはStorm上におけるPig or Cascadingと同じ位置づけで、コンセプトも共通しています。 Tridentはジョイン、統合、グルーピング、フィルタリング等をサポートします。 加えて、Tridentは

  • あなたのJavaコードをスッキリさせる、地味に便利な新API 10選(後編) - Taste of Tech Topics

    こんにちは。 アキバです。 日3/18、ついに、Java8が正式リリースされますね! もうダウンロードされましたか?ってまだですかね?私はまだです(だって公開前にエントリ書いてるんだもんね) 2014/03/19追記:Oracleのページが更新されました!→こちら さて、前回に続いて、Java8で追加された地味で便利なAPIを紹介していきます。 今回は、みんな大好きMapとConcurrent、あとちょびっとComparatorです。 3. Map操作編 (1) Map#getOrDefault() これまでは、Mapから値を取得してnullだったらデフォルト値を使用する、みたいなコードを以下のように書いていたと思います。 Map<String, String> map; // 何らかのMap String value = map.get("key"); if (value == nul

    あなたのJavaコードをスッキリさせる、地味に便利な新API 10選(後編) - Taste of Tech Topics