7/8に開催された Hadoop Conference Japan 2014に参加してきました(去年に引き続き2回目の参加)。こちらはその参加メモになります。
そもそもHadoop Conference Japanとは、並列分散処理フレームワーク Apache Hadoop および周辺のオープンソースソフトウェアに関するユーザカンファレンス。 日本Hadoopユーザー会の有志によって運営されており、今回で5回目の開催になる。
↓各種レポート記事へのリンク↓
- gihyo.jp
- ITpro
- Publickey
当日のタイムテーブルはこちら
午前のキーノートから始まり、昼食(無料!)を挟んで、午後はHadoopに関する技術トピックや活用事例を紹介する発表、という流れ。
以下は、自分が聞いた発表
【午前:キーノート】
- 米谷 修 (リクルートテクノロジーズ)、濱野 賢一朗 (日本Hadoopユーザー会, NTTデータ)
- Doug Cutting (Hadoop生みの親, Apache Software Foundation, Cloudera) 『The Future of Data』
- Patrick Wendell (Apache Spark主要開発者, Databricks) 『The Future of Spark』 [講演資料]
- 太田 一樹 (Treasure Data CTO) 『Hadoopエコシステムの変遷と、見えてきた使いどころ』
【午後】
- リクルート式Hadoopの使い方 3rd Edition : 石川 信行(リクルートテクノロジーズ)
- SQLによるバッチ処理とストリーム処理 : 田籠 聡 (LINE)
- A Deeper Understanding of Spark Internals : Patrick Wendell (Databricks)
- Spark1.0での動作検証 - Hadoopユーザ・デベロッパから見たSparkへの期待 : 土橋 昌 (NTTデータ)
- Treasure Data on The YARN : 小林 隆(Treasure Data)
- 並列SQLエンジンPresto - 大規模データセットを高速にグラフ化する方法 : 古橋 貞之(Treasure Data)
- 今回の参加者数は1296名。そのうち約65%が初参加とのこと。
- Hadoopは絶賛進化中。現在は2.X系の開発が中心
- その中心的なトピックは「YARN」(※)
- 日本におけるHadoopの利用ユーザは徐々に増えており、今回の参加者の44%以上が6ヶ月以上の利用経験を有する
- 利用しているエコシステムとしてはHive、HBaseが多い。Impala、Sparkなどの比較的新しいプロダクトについても利用ユーザは相当数いる。
※YARN(Yet Another Resource Negotiator)についての参考資料
- Apache Hadoop 2.4.1 - YARN http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html
- YARN の紹介 http://www.ibm.com/developerworks/jp/bigdata/library/bd-yarn-intro/
- ハードウェアの価格は更に安く、データの価値は更に高まる(よりハイレゾリューションに)、そのためのソフトウェアが必要になる
- そしてオープンソースが勝ち残る (luceneは 1999 から開発開始しているが、事実生き残っている)
- オープンソースは使う側から見てもリスクを低減する。プラットフォーム技術については特にOSSであることが必要とされる。
- Hadoopの機能はさらに向上し、Hadoopが当たり前になるだろう
- GoogleのSpannerのようにトランザクション処理をHadoop上でサポートするという話があった(※)
※この辺の参考記事
- Hadoop creator: 'Google is living a few years in the future and sending the rest of us messages' | ZDNet http://www.zdnet.com/hadoop-creator-google-is-living-a-few-years-in-the-future-and-sending-the-rest-of-us-messages-7000023160/
- Spark開発者の一週間の活動
-
- パッチの投稿や修正等:500件、JIRA/GitHub上でのコメント:200件、メール:140スレッド、マージされるパッチの数:80件
- Sparkはここ1年で急速に成長した
- APIの安定性を重視している。APIを破壊するようなパッチはビルドに失敗するようにしている
- 開発者にやさしいリリースサイクルでリリースを行っている。マイナーリリースは3ヶ月毎、必要に応じてメンテナンスリリースを行っている。
- Sparkの主要エコシステムはSpark SQL(SQL on Spark)、MLLib(機械学習ライブラリ)、GraphX(グラフDB)、Spark Streaming(ストリーム処理)
- そのうちSpark SQLは他のコンポーネントよりも早く成長している。MLLibがその次。
- SparkR といプロダクトもある。RでSparkを動かす。
- Databricks Cloudのデモ。Web UI上でSparkのプログラムが書ける。SQLも実行できる。その実行結果を簡単にグラフ表示ができる。すごい。
Apache Spark に関する参考資料
- Apache Spark の紹介(前半:Sparkのキホン) http://www.slideshare.net/hadoopxnttdata/apache-spark-spark
- Apache Sparkのご紹介 (後半:技術トピック) http://www.slideshare.net/hadoopxnttdata/apache-spark
- Spark: 高速なデータ分析のための新たな手段 http://www.ibm.com/developerworks/jp/opensource/library/os-spark/
『Hadoopエコシステムの変遷と、見えてきた使いどころ』(資料未公開)
-
ただ単に「安いストレージ的」に使うのであれば、GlusterFSやCephといったストレージ特化の様々なプロダクトがある。こちらのほうが優れてる。
-
Hadoop エコシステムの進化と混沌 4つの側面で様々なプロダクトが乱立している
- 1.Collect Any Types of data
- 様々なデータ収集ミドルウェアの開発が進んでいる
- Fluentd, Kafka, Flume, Sqoop
- 2.Store Any types of data economically
- Parquet, ORCFile (format)
- HDFS, HBase, Accumulo
- Ambali, HUE, Cluudera Maager 管理/運用の支援は大事
- Treasure Data, AWS EMR
- 3.Faster Use of Data
- いかに早くデータを扱うか?
- YARN
- Storm, Samza, Norikra
- Apache Tez, Spark
- HiveQL, Pig
- Java: Cascading, Apache Crunch
- 4.Better Use of Data
- いかにうまくデータを扱うか?
- SQL on Hadoop:Impala, SparkSQL, Presto, Drill
- 機械学習:Mahout, Spark MLlib, Hivemall
- 1.Collect Any Types of data
-
他の選択肢の進化
- Database の進化
- MPP(Massiely Parallel Processing) MPPデータベース(RedShiftやBigQueryなど) (※)
- Schema-on-Write (先にスキーマを決めないといけない) 。アドホックな解析をするためのデータベースとしては少し不向き。
- Oracle, DB2, SQLserver
- Teradata, Netezza, Vertica, ParAccel, Greenplum
- 多くのベンダーが Hadoop 対応を表明
- 基本的にはスキーマを決めないといけないが、Vertica Zonemap など Schema-on-Read 対応なども
- 現在の主流
- Hadoop に生データをすべて集約
- そこから集計集約したデータを MPP データベースに保存
- Hadoop は構造化データとの境界線に
- MPP データベースは非構造化データの領域に踏み込む
- 誰がマーケットリーダーになっていくのか注視していかないといけない
- 使用する側は一層の知識とトレンドの把握が必要。
- Database の進化
※参考資料 MPPの使い分けの話については、以下の記事が参考になる
- MPP on Hadoop, Redshift, BigQuery - Go ahead! http://repeatedly.github.io/ja/2014/07/mpp-on-hadoop-redshift-bigquery/
- リクルートグループのHadoop活用事例に関する発表
- 様々な利用用途でHadoop、およびHadoopのエコシステムを利用している。詳細は資料の通り。
- リクルートでは2010年からHadoopの研究開発、2011年から本格展開を始めた
- 2014年はアドホック分析基盤の導入等の活動を行っている
- 導入に際しては、既存サービスを生かしつつ、徐々に利用範囲を広げていっている(安く、早く提供)
- 本番提供しているサービスの他にも、現在も様々な技術検証を並行して実施している。
- 画像解析(スパースコーディングなど)
- テキスト解析(Skip-Gramなど)
- グラフ(Titanなど)
-
1.イントロ
- PrestoとはGBからPBのデータ分析を対話的に行う分散SQLクエリエンジン
- 2012秋からFacebookで開発された
- Prestoが解決しようとする問題は
- BIツールから直接HDFS上のデータを可視化できない
- 日次バッチでPostgreSQLやRedshiftにデータを入れる必要がある
- いくつかのデータはHDFS上にはない。そのため分析時にHDFS上にコピーが必要
- Prestoだとクエリをミリ秒から分で処理。ただしETLにはMapReduceやHiveは必要
- BIツールから接続可能。ODBC/JDBCコネクタ
- 複数のデータソースにまたがってクエリを実行可能
-
2.分散アーキテクチャ
-
Discovery Service
-
Coordinator
-
Worker
-
Connector Plugin : ConnectorはJavaで書かれており、ストレージとメタデータの実装。自作も可能。
- Hive Connector
- Cassandra Connector
- MySQL through JDBC Connector(prerelease)
-
Coordinator HA構成を組める
-
BIツールにはODBC/JDBCドライバが必要。ただ一から実装は大変。ということで“Prestogres”を作った
-
-
3.クエリ実行
- Presto自身はデータベースではない。データストアに対してSQLを発行するエンジン(MapReduceではない)
- 実行モデルはDAGベース
- 全てのタスクはパラレルに実行され、データはメモリからメモリに引き渡される
-
4.モニタリング・設定
- モニタリングが充実している。JMX HTTP APIで詳細な情報を取得できる。
-
5.ロードマップ
-
QA
- 同様なプロダクトであるImpalaとの性能比較
- 現状ではImpalaの方が速い
- Impalaとの違いは、クエリが落ちてもプロセスが落ちない
- ログが取りやすい。Prestoは運用周りがよく考慮されている
- 開発体制がオープン。pullreqもすぐに取り込まれる
- 同様なプロダクトであるImpalaとの性能比較
