タグ

ブックマーク / gihyo.jp (41)

  • スケールするメッセージングシステムを構築せよ ―チャットワークとNTTデータが挑んだKafkaベースの"土管"づくり | gihyo.jp

    スケールするメッセージングシステムを構築せよ ―チャットワークとNTTデータが挑んだKafkaベースの"土管"づくり クラウドコンピューティングが普及し、多くの企業が日常的に膨大で多様なデータを扱うようになるにともない、ITの世界では"スケール"という言葉がごく一般的に使われるようになりました。ニーズに応じて利用するコンピューティングリソースを柔軟に増減し、処理を分散してシステム全体の稼働力を上げる"スケール"というしくみは、いまや"あって当然"の概念となり、加えてここ数年はスケールにおいてもよりリアルタイムに近いパフォーマンスが求められるようになっています。 これはサーバやストレージといったハードウェアリソースだけではなく、データベースやミドルウェアにおいても同様で、スケールしやすい技術としてHadoopやPostgreSQLといったオープンソースプロダクトが選ばれるケースが飛躍的に増え

    スケールするメッセージングシステムを構築せよ ―チャットワークとNTTデータが挑んだKafkaベースの"土管"づくり | gihyo.jp
    kimutansk
    kimutansk 2017/07/12
    このシステムをまともに開発できるエンジニアなんて限られますし、依頼できる先はデータさんのこの方々の部署位しかいないというのも納得がいくところです。
  • 第1回 ニコ動/ニコ生 HTML5化への奮闘~ドワンゴ流動画配信サービスのつくりかた~ | gihyo.jp

    不動の人気を誇る動画配信サービス「ニコニコ動画」(⁠ニコ動)と「ニコニコ生放送」(⁠ニコ生)において、動画プレーヤのHTML5化、そしてバックエンドシステムの刷新が図られました。このプロジェクトの背景や使われた技術、苦労したポイントなどについて、ドワンゴのエンジニアである七田弘志氏(写真1⁠)⁠、後藤哲志氏(写真2⁠)⁠、三須健太郎氏(写真3)にお話を伺いました。 フロントエンドのみならず、バックエンドシステムも刷新 ─⁠─どのようなきっかけから、HTML5化プロジェクトが始まったのでしょうか。 七田:大きな要因となったのは、主要WebブラウザでFlashのサポートを打ち切るという方針が示されたことですね。今までもスマートフォンやテレビデバイスなどではHTML5プレーヤを実現できていたのですが、PC版のページは既存機能が大きく、プレーヤの作り変えが後手に回っていた部分が大きかったんです。そ

    第1回 ニコ動/ニコ生 HTML5化への奮闘~ドワンゴ流動画配信サービスのつくりかた~ | gihyo.jp
  • 第6回 Hiveでボトルネックとなってきたメタデータ、HBaseを使ってレイテンシの改善に挑む ―「Hadoop Summit 2016 San Jose」から | gihyo.jp

    IT Cutting Edge ─世界を変えるテクノロジの最前線 第6回Hiveでボトルネックとなってきたメタデータ、HBaseを使ってレイテンシの改善に挑む ―「Hadoop Summit 2016 San Jose」から 2016年6/28~6/30(米国時間)の3日間に渡って米サンノゼで開催された「Hadoop Summit 2016 San Jose」(⁠主催: Hortornworks/Yahoo!)では、2016年のHadoopトレンドを紹介する数多くの技術/事例セッションが行われました。稿ではそのひとつ、Hortonwokrsによるセッション「hive HBase Metastore - Improving Hive with a Big Data Metadata Storage」をもとに、HiveのメタデータをHBaseでストアすることでHiveの低レイテンシ化を図る技

    第6回 Hiveでボトルネックとなってきたメタデータ、HBaseを使ってレイテンシの改善に挑む ―「Hadoop Summit 2016 San Jose」から | gihyo.jp
    kimutansk
    kimutansk 2016/07/20
    ボトルネックになるのはわかりますが、これを果たしてHBaseでやる必要性があったのか。Hadoopファミリーで統一しようという意図はわかるのですが・・・
  • 第19回 Impalaの設計と実装[3] | gihyo.jp

    はじめに 今回は、ImpalaにおけるI/Oの高速化技法について説明します。 前回説明したように、Impalaの実行エンジンは可能な限りメモリ上で処理をすることでアドホッククエリのレイテンシを下げ、スループットを向上させる、という設計方針で開発されています。 しかし、データはストレージ(二次記憶装置)に格納されているため、当然、ストレージへのI/Oを回避することはできません。また、Impalaは実行時に十分なメモリを確保するべく、データをメモリ上に保持(キャッシュ)しないため、クエリを実行するたびにデータをストレージから読み出すことを前提として設計されています[1]⁠。 今回は、このようなユースケースを考慮しつつ、高速・高効率なアドホッククエリを実行するためのI/O処理方式とデータレイアウトについて解説します。 Short-Circuit Local ReadsによるI/Oの高効率化 Sh

    第19回 Impalaの設計と実装[3] | gihyo.jp
    kimutansk
    kimutansk 2016/04/13
    Impala on HDFS/Parquetと、Impala on Kudu、どちらがスキャンかけて集計する用途で早くなりますかね。比較図ですとHDFS側でしたが、実際はどうなのか。
  • 第18回 Impalaの設計と実装[2] | gihyo.jp

    はじめに 今回は、ImpalaのSQL処理の高速化において重要な役割を占めるクエリ処理について説明します。 Impalaのクエリ処理の特徴 Impalaは、MapReduceやSparkをはじめとする既存の手続き型のデータ処理エンジンを使用せず、アドホックなSQLクエリの処理の高効率化に焦点を置いた設計と実装が特徴です。たとえば、結合方法を見てみると、MapやReduceもしくはMapReduceジョブなどのブロッキングオペレータ(第16回)を組み合わせていく処理エンジンにおいては、Impalaにおけるパイプライン結合処理などを実現することは必ずしも容易ではありません(第8回「Impala/Prestoにおける結合処理」⁠)⁠。 また、MapReduceやSparkでは中間データをディスクに書き込むことにより高い耐障害性を実現しますが、Impalaでは耐障害性を多少犠牲にしてメモリ上で処理

    第18回 Impalaの設計と実装[2] | gihyo.jp
    kimutansk
    kimutansk 2016/03/23
    ここではPlanFlagmentは05Aggregateまで行って以後は別ホストというパターンですか。ホスト数も出るのはわかりやすい。
  • nginx実践入門 | Gihyo Digital Publishing … 技術評論社の電子書籍

    WEB+DB PRESS plus nginx実践入門 著者 久保達彦,道井俊介 著 発売日 2016年1月16日 更新日 2016年1月16日

    nginx実践入門 | Gihyo Digital Publishing … 技術評論社の電子書籍
    kimutansk
    kimutansk 2016/01/15
    こちらも買いますか。Gihyo Digital PublishingはepubもあるのでKindleにも一応突っ込みやすい・・・
  • ソフトウェアエンジニアのための ITインフラ監視[実践]入門 | Gihyo Digital Publishing … 技術評論社の電子書籍

    Software Design plus ソフトウェアエンジニアのための ITインフラ監視[実践]入門 著者 斎藤祐一郎 著 発売日 2016年1月16日 更新日 2016年1月16日

    ソフトウェアエンジニアのための ITインフラ監視[実践]入門 | Gihyo Digital Publishing … 技術評論社の電子書籍
    kimutansk
    kimutansk 2016/01/15
    インフラ監視をきちんとやりこんだことはなかったので買っておきますか。
  • コミッタが語る、HadoopやSpark、2016年はどうなる? | gihyo.jp

    あけまして、おめでとうございます。 例年、Apache Hadoopを中心に並列分散処理ミドルウェアの動向や展望についてご紹介しています。 今年は、NTTデータに所属する 鯵坂 明(Apache Hadoopコミッタ) 岩崎 正剛(Apache Hadoop開発者、HTraceコミッタ) 関 堅吾(Apache Yetusコミッタ) 猿田 浩輔(Apache Sparkコミッタ) の4名による対談からまとめた、HadoopとSparkを中心に2015年の振り返りと2016年の展望をご紹介します。 対談の模様(1)鯵坂 明氏(左)と岩崎 正剛氏 2015年を振り返る 2015年の新春特別企画では「TezやSparkなどの新しい処理基盤の活用が進むことになる」と紹介しました。実際に振り返ってみると、Apache Sparkはかなり盛り上がりました。 Apache Sparkは、年初にバージョン

    コミッタが語る、HadoopやSpark、2016年はどうなる? | gihyo.jp
    kimutansk
    kimutansk 2016/01/01
    徐々にHadoopといっても分化/乖離しつつあるのは確かに最近実感するところ。Spark1.6の次は2.0ですか。で、2/8のイベントは楽しみですね。
  • PHPの生みの親、ラスマス・ラードフ氏インタビュー | gihyo.jp

    PHPの生みの親⁠⁠、ラスマス⁠⁠・ラードフ氏インタビュー 2015年12月に無事公開されたPHP7。その公開に先立ってPHPの生みの親であるラスマス・ラードフ氏に話を伺う機会がありました。英語で行われた一時間のインタビューは長大ですがラスマス氏の思想がよく分かる話題が多く、可能な限りそのままの形でお伝えすべく、その模様すべてをお届けします。 なお、インタビューは10月に開催されたPHPカンファレンス2015の講演終了後に行われ、リリースに関する話題などはその時点でのものです。 現在の仕事と生い立ち ―――― まずは、PHPを作ってくださってありがとうございます。今日の基調講演もすばらしかったです。 ラスマス:ありがとうございます。 ―――― いきなりですが、個人的な質問から始めてもいいでしょうか。 ラスマス:どうぞ。 ―――― Etsyではどのようなお仕事をなさっているんですか? ラスマ

    PHPの生みの親、ラスマス・ラードフ氏インタビュー | gihyo.jp
    kimutansk
    kimutansk 2015/12/16
    プログラムは必要悪であり道具、あとは10%90%のくだりやアカデミックの話、PHPはハンマーのような単純な道具、考え面白いですね。
  • 第13回 Hadoopの設計と実装~並列データ処理系Hadoop MapReduce[1] | gihyo.jp

    はじめに 第一部では、Hadoopなどの並列データ処理系の基礎である並列データベース技術や分散システム技術を解説してきました。第二部では、実際の処理系により焦点を当て、それらの設計と実装を見ていきます。 第二部では、最初の4回を用いて、Apache Hadoopの並列データ処理系であるHadoop MapReduceを始めとし、当該処理系のリソース管理を行うYARNおよび、汎用的な並列データ処理系であるTezについて解説を行う予定です。 今回は、MapReduceにおける設計方針や特徴について解説します。 MapReduceとは MapReduceは、複数の計算機上で効率的に処理を行うためのデータ処理用のプログラミングモデルと、そのプログラミングモデルが動作する処理系の実装であり、GoogleのJeff Deanらにより開発が始められました。MapReduceの代表的なランタイム処理系には

    第13回 Hadoopの設計と実装~並列データ処理系Hadoop MapReduce[1] | gihyo.jp
    kimutansk
    kimutansk 2015/12/09
    HadoopMapReduce、YARN、Tezと。実装に落ちる次回以降が楽しみですね。
  • 第9回[最終回] データパイプラインのためのワークフロー管理 | gihyo.jp

    KPIや応用KPIが決まり、実際に、毎日の運用の中で定期的にデータを更新して、可視化するためには、一連の処理を自動化する必要があります。今回は、データパイプラインを扱うためのワークフロー管理ツールを紹介していきます。 データパイプラインとワークフロー管理 データパイプライン (⁠以下、パイプライン)とは、データ処理を行なう小さなタスク(1回のファイルコピーや、SQLの実行など)を順次実行することにより、最終的に求める結果を得るための一連のプロセスを指します。狭義には、単体のシステム内で完結するパイプラインを指します(SparkやGoogle Cloud Dataflow、など⁠)⁠。 また、広義には、複数のシステムを組み合わせて大きなパイプラインを構成することもあります(MySQLから取り出したデータをRedshiftで集計する、など⁠)⁠。今回、取り上げるパイプラインとは、広義のパイ

    第9回[最終回] データパイプラインのためのワークフロー管理 | gihyo.jp
    kimutansk
    kimutansk 2015/12/07
    プロダクト一覧は参考になります。データパイプラインを簡易にGUI定義する・・のはこの先来ないですかねぇ。
  • 第12回 複数のプロセスにおける協調動作のための仕組み─コーディネーション | gihyo.jp

    はじめに 前回は、分散システム技術を基とする耐障害性のための仕組みとして、レプリケーションとロギングについて述べました。今回は、分散システムにおいて複数のプロセスが協調して動作するための仕組みであるコーディネーションについて、その概要を説明します。 コーディネーションとは 並列データ処理系におけるコーディネーションは、複数のプロセス間において、協調して動作をする、または、同意を取るための技術です。すなわち、コーディネーションを行うことにより、並列データ処理系における複数のプロセスが同じ目的(もしくは値)を共有し、各々がその目的のもとで何らかの処理を実行できるようになります。当該技術は、たとえば、複数のプロセスにおける状態やレプリカ間の値の一貫性を保つために用いられます。 コーディネーションにおいては、多くの場合、次のことを前提として議論されるため、特に明示的に言及しない限り、連載におい

    第12回 複数のプロセスにおける協調動作のための仕組み─コーディネーション | gihyo.jp
    kimutansk
    kimutansk 2015/10/22
    概要がまとまっていていい感じです。ZABとRaft、Paxosがわかると同意の基本1パターンはわかる・・でいいんでしょうかね。
  • ITエンジニアのための機械学習理論入門 | Gihyo Digital Publishing … 技術評論社の電子書籍

    ITエンジニアのための機械学習理論入門 著者 中井悦司 著 発売日 2015年10月17日 更新日 2015年10月17日

    ITエンジニアのための機械学習理論入門 | Gihyo Digital Publishing … 技術評論社の電子書籍
    kimutansk
    kimutansk 2015/10/22
    大抵のムックレベルだと物足りず、専門書籍を買って読むとやたらと時間がかかって進まない・・というステータスなので、理論の入門は丁度いいのかも。というわけで購入
  • 第10回 データ処理の最適化 | gihyo.jp

    はじめに 前回は、これまで説明してきたアルゴリズムの性能を定量的に見積り、比較しました。今回は、これらの性能見積りを用いて行うデータ処理(問い合わせ)の最適化方法について説明します。 データ処理(問い合わせ)の最適化 第4回で述べたように、HadoopのSQL処理系であるHiveをはじめとし、ImpalaやPrestoなどの宣言型言語を用いるデータ処理系においては、利用者は何を(What)処理してほしいかを処理系に指示するのみであり、どのように(How)処理をしてほしいかは指定しません。すなわち、当該処理系においては、どのように処理をするかは処理系自体が決める必要があり、与えられた問い合わせ(クエリ)を最も良いと思われる方法で処理します。このように、問い合わせにおいて最良と思われるデータ処理の方法を見つけることを「⁠(⁠問い合わせ)最適化」と呼びます。 最適化においては、問い合わせを実行す

    第10回 データ処理の最適化 | gihyo.jp
    kimutansk
    kimutansk 2015/09/16
    実行計画最適化自体は昔からあるものですが、分散したデータでも基本は変わらずに適用可能と。
  • 第8回 データ処理における並列アルゴリズム[3] | gihyo.jp

    はじめに 前回は、結合処理の並列化における基戦略について説明し、ソートマージ結合における具体的な並列アルゴリズムを説明しました。今回は、ImpalaやPrestoに加えて、Apache SparkやHadoop MapReduceのMap Joinにおいても用いられているハッシュ結合における具体的な並列アルゴリズムを説明します。 ハッシュ結合における並列アルゴリズム ハッシュ結合は、2つのデータにおいて同一の属性値をもつレコードを見つける方法として、レコードのハッシュ値を用いるものです[1]⁠。すなわち、当該方法においては、一方のデータのすべてのレコードの結合キーに対してハッシュ関数を用いてハッシュ値を計算し、当該ハッシュ値からなるハッシュ表を事前に構築しておき、他方のデータのレコードの結合キーに対して同一のハッシュ関数から得られたハッシュ値を用いてハッシュ表を参照することにより、同一の

    第8回 データ処理における並列アルゴリズム[3] | gihyo.jp
    kimutansk
    kimutansk 2015/08/06
    ImpalaとPrestoのハッシュ結合にはこういう違いがありましたか。 スタンス的には納得がいく内容ではありますが。
  • 第8回(最終回) 定型作業を自動化するConsul Template | gihyo.jp

    Consul Template これまでの連載の応用として、最後にConsul Templateをご紹介します。SerfやConsulを使えば、複数台のサーバやLinuxコンテナ上で、様々な処理を同時に行うことができます(イベントハンドラ機能⁠)⁠。実行は任意のタイミングで行えるだけでなく、ノードの増減やサービスの増減に応じて自動的に実行できることが特徴です。 自動実行は、増減のタイミングでコマンドを実行するだけでなく、管理用のファイルやロードバランサ等の設定ファイルを書き換えにも利用できます。通常は、設定を書き換えるためのスクリプトやプログラムを準備する必要がありました。 この設定ファイルの自動書き換えに特化したプログラムがConsul Templateです。その名前の通り、Consulクラスタと連携します。あらかじめテンプレート元になるファイルを用意しておくことで、Consul上でのノ

    第8回(最終回) 定型作業を自動化するConsul Template | gihyo.jp
    kimutansk
    kimutansk 2015/07/18
    単にConsulの中身を設定にファイルに一度だけ反映して出力もできるので、何かと使いやすいですね。
  • 第7回 データ処理における並列アルゴリズム[2] | gihyo.jp

    はじめに 前回は、並列システムの性能指標について紹介し、また、データ処理におけるアルゴリズムと、選択処理の並列化方法を紹介しました。今回からは、結合処理の並列化方法について説明します。まずは、結合処理における基的な並列化方法について述べ、次に、ソートマージ結合の具体的な並列アルゴリズムを説明していきます。 結合処理の並列化方法 結合処理は、前回述べたとおり、複数のデータを、当該データを構成するレコード(タプル)における属性値を用いてある条件に基づいて連結することにより、1つのデータにする処理です。簡単のため、以降では、「⁠ある条件」は複数のデータの属性値が同一である、とします。すなわち、結合における最も一般的な方法である等結合を対象として話を進めていきます。また、特に断りがない限り、2つのデータを結合するものとします。 等結合処理における並列化の基的な方法は、次の2つのステップからなり

    第7回 データ処理における並列アルゴリズム[2] | gihyo.jp
    kimutansk
    kimutansk 2015/07/16
    毎回いい復習になりますね。データ分布に応じて負荷分散処理を動的に行うのは今度見てみますか。
  • 第2回 Serfのイベントハンドラで自動化を使いこなす | gihyo.jp

    イベントハンドラとは? 前回の記事で見たように、Serfエージェントをサーバ上で起動することで、簡単にネットワーク上にクラスタを構成できます。クラスタを構成後、Serfはネットワーク上で相互に死活監視するだけでなく、クラスタのメンバ管理(ホスト名・IPアドレス・タグ等を共有)を行えます。この監視状況やメンバの変化という「イベント」に応じて、シェルスクリプトやコマンドを実行する機能が「イベントハンドラ」です。 イベントハンドラは単純にコマンド実行するだけでなく、環境変数を通してSerfからスクリプトに様々なデータを渡せます。この仕組みを使い、コマンド実行時に動的に変わる引数(ホスト名・IPアドレス・タグ等)の指定や、動的に変わる環境に対する設定変更を行えます。 そのため、イベントハンドラの理解・習得が、Serfを使って自動化を進めるうえで欠かせません。とは言え、さほど難しい概念ではありません

    第2回 Serfのイベントハンドラで自動化を使いこなす | gihyo.jp
    kimutansk
    kimutansk 2015/07/05
    イベントやクエリの実行はクラスタに参加してなくても出来るんですね。純粋に外部からクエリ実行、も出来るわけですか。
  • 第2回 並列データ処理系の歴史と重要性 | gihyo.jp

    はじめに 前回は、連載の目的や、連載で扱う並列データ処理の定義について説明しました。今回は、並列データ処理系の歴史や重要性について見ていきます。技術を学ぶうえで、その技術歴史や重要性について理解しておくことはとても良いことですので、かんたんな読み物を読むつもりでお付き合いください。 並列データ処理系の進展 並列データ処理系における基的なアルゴリズムや処理方式は、並列データベースと称される並列化された[1]データベースシステムにおける技術に基づいています。 並列データベースに関する研究・開発は、1970年代からの並列データベースマシン(Parallel Database Machine)[⁠1、2、3]と称されるデータベース処理専用の並列計算機に遡ることができます。並列データベースマシンは、データ処理用途にカスタマイズされたプロセッサや記憶装置を用いていたため、必ずしも価格に見合った

    第2回 並列データ処理系の歴史と重要性 | gihyo.jp
    kimutansk
    kimutansk 2015/04/16
    並列データ処理が発展した背景としてCPUの周波数向上の停滞と、磁気ディスクへのアクセスレイテンシの低減の停滞があると。基本ですが重要。
  • 大人気「WEB+DB PRESS plus」シリーズを一斉電子化、先着500名様にオリジナルステッカーをプレゼント ──12月10日に20冊を同時刊行 | gihyo.jp

    大人気「WEB+DB PRESS plus」シリーズを一斉電子化、先着500名様にオリジナルステッカーをプレゼント ─⁠─12月10日に20冊を同時刊行 株式会社技術評論社は、大人気シリーズ「WEB+DB PRESS plus」を電子化し一斉刊行することを発表いたします。 すでに発売されている『関数プログラミング実践入門 ─⁠─簡潔で、正しいコードを書くために』に続き、一斉刊行第一弾として下記20冊を電子書籍化して、12月10日に発売いたします(EPUB版は2015年1月末配信。PDF版ご購入の方には無償提供⁠)⁠。 Googleを支える技術 ─⁠─巨大システムの内側の世界 [24時間365日]サーバ/インフラを支える技術 ─⁠─スケーラビリティ、ハイパフォーマンス、省力運用 プログラマのための文字コード技術入門 Webを支える技術 ─⁠─HTTP、URI、HTML、そしてREST [We

    大人気「WEB+DB PRESS plus」シリーズを一斉電子化、先着500名様にオリジナルステッカーをプレゼント ──12月10日に20冊を同時刊行 | gihyo.jp
    kimutansk
    kimutansk 2014/12/01
    ついに一斉電子化。ただ、最初の1回は物理本の方が嵩張るけど早いというのも悩みどころですね・・・