前回(Lucene Revolution 2012)に引き続きLucene/Solr Revolutionに遊びいってきたのでメモ
今年はSan Diego
- Day 1 : Training (Using Solr with Big Data)
- Day 2 : Training (Using Solr with Big Data), Welcome reception
- Day 3 : Conference, Conference party
- Day 4 : Conference, My talk
Day 1 : Training (Using Solr with Big Data)
今回のトレーナーはKen KruglerというTikaのcommitterやってる人
昔日本に住んでたことがあるそうで、ちょいちょい日本語で話しかけてくれました。
初日の内容はこんなカンジ
- Hadoop & Hadoop Eco-system Overview
- Map & Reduce hands-on
- Cascading & Workflows
いろんなとこからログ集めてきて、イケてるUIでReporting確認するって場合に、
全部Hadoopでやろうとすると、いちいちMap&Reduce書かなきゃいけないんで、切り口が限定されちゃう。
Hiveで柔軟にやるにしても、結果でるまでに数十秒かかるからユーザーとしては待ってらんないと
なんで、想定できるものはあらかじめHadoopで片付けといて、Reportingのとこは
SolrをNoSQL的にかましておけば、いろんなバリエーションの分析をinteractiveに提供できんじゃないかと。
で、TraineeのHadoop習熟度がバラバラなんで、説明とhands-onを通して前提知識そろえましょうと
その他の登場人物: Pig, Hive, Storm
Day 2 : Training (Using Solr with Big Data)
2日目の内容はこんなカンジ
- Workflow Design
- Solr Indexing hands-on
よくある話だけども、Workflow Designのときは、いきなり特異なflowを作るんじゃなくて、以下のように手順ふみましょーねと
Specifying Output -> Understanding Input -> Designing Workflow -> Writing Code
まぁSchema Designのときも一緒だね。で、
Map: Converting data, Filtering, Calculating values, Distributed tasks
Reduce: Sorting records by field values, Operations on group, Combining data sets
↑これらを組み合わせてデータ処理してきますょ
軽視されがちだけど、意外とメンドイのがHDFSと他のソース間のデータ移動
- hadoop fs command: いっちゃん簡単だけど、まぁねぇ
- From DB via JDBC, Sqoop: DB側(非分散)気をつけないとDBAに怒られるょ
- From NoSQL via TCP/IP, HTTP: Traffic気をつけないとSYSに怒られるょ
- from remote: Scribe, Flume, Kafka: 本番環境ではcoolだけど、setupメンドイ
本コースメイン、HDFSからのSolrIndexing
- Import Text Files: make CSV -> move CSV to Solr server -> CSVRequestHandler
HDFSからSolrへコピー。。。Solr Masterがボトルネックで、unscalable - HTTP to Solr server: HTTP requests via SolrJ to Solr server in Map or Reduce function
やっぱSolr Masterがボトルネック。sharding使えるけども、partitioningをconsistentに保つのは。。。
SolrJのfield定義とSolrのschemaを常にそろえておく必要がある。 - EmbeddedSolr: use EmbeddedSolr to write index locally
HadoopのnumReducersとSolrのshard数をそろえてあげて、各reducerごとにindex作成、古いindex置き換え
index再生成するには最速の方法 - HTTP to SolrCloud: multi-threaded HTTP requests via SolrJ to SolrCloud
shard managementだのconsistent partitioningだの、メンドイことはSolrCloudにおまかせしたうえで、NRT searchが実現できちゃう
Schema migrationとか、Cluster re-sizingとかはダルい(このindexingとゆ~より、SolrCloud自身の課題)
あとはひたすらMap&Reduce、SolrIndexingのhands-on、各DB、Softwareの得意領域説明
他の登場人物: Mahout, Avro, ElasticSearch, Hive, Drill, Impala, Druid, RedShift, Stinger
1 2 3 4 5 6 7 8 9 10 11 12 |
ゴリゴリ分散集計: Hadoop MR, Pig, Hive UI使ったReporting: Drill, Impala, Druid, RedShift, Stinger, Storm, Cassandra, Solr データやり取り: Flume, Fluentd, Scribe, Kafka と、BigData集計のツールが補完的にだいぶ成熟してきたなという印象 ただ、パラダイムが異なる2つの集計ごとにシステム用意して、データ移動してってのはアレなんで、 HBaseのように両方ともある程度イケるってのはやっぱり魅力だなぁ 全データの分散集計も、メタデータの集中検索もクライアントからは論理的に一箇所にアクセスすりゃよくって、 インスタンスの増減、データ(スキーマ)構造変更、ユースケース(アクセスキー)追加時のデータ再配置も 1つのソリューションがヨロシクやってくれないかなぁ まぁ手を動かしたくなかったら金払えってことですか 逆に言えばこの辺の特性と流れを理解しつつ、各サービスに対してサクッと集計基盤作る力がありゃ へっぽこエンジニアでも当分飯食えそう |
Welcome reception
I Had a great reception party on the roof terrace at the Westin hotel, met
- Yonik Seeley: Father of Solr
- Paul Doscher: CEO of LucidWorks
- Heather Phipps:
The most beautiful girl in the confSoftware Engineer of Basis Technology - and so many
Day 3 : Conference, Conference party
前回はSolr4ってどうなるの?ってのがあったけど、今回はコレといった目玉はなし。
ただ、参加人数は過去最高、Solrの使用経験が0~3年以内の人が半数を超えてて、裾野はどんどんひろがってる印象
日本からは13人と、USAの324人に次ぐ参加者の多さ
キーワードはSolr4, SolrCloud, NRT, Bigdataってカンジで前回と大差ないけど、
今回は本番環境での実用例がわんさかあって、具体的な関連ツールとかKPIまで踏み込んだ話が多かった
また、NRTに関してはSolr4のIndexing部分だけでなく、log collector & processorまで含んだ事例がいくつか
(Kafkaが流行のようで、コレ系の発表では必ず登場してた: Apache Kafka)
Language support and linguistics in Lucene/Solr and its eco-system
Christian Moen: Founder, CEO, Software Engineer of Atilika
Gaute Lambertsen: Partner Software Engineer at Atilika
Christianは前回BostonでJapanese linguistics (pdf)について発表してたけど、
今回は日本語に限らず、多くの非英語をどうやってLucene/Solrで扱うかってところ
時間が長くとられてて、Demoもがっつり: Lucene Revolution 2013 – linguistics-demo
(language detectについては、TikaのよりJapanese versionの方が出来がいいそうな)
Batch Indexing and Near Real Time, keeping things fast
Marc Sturlese: Architect, Backend engineer of Trovit
バッチ集計とNRTの両方を実現するmixed architectureについて
Batch: Hadoop job & Hive
NRT: Kafka, Zookeeper, HBase, Storm
イケてるなぁ。。。
How to make a simple cheap high-availability self-healing Solr cluster
Stephane Gamard: CTO of Searchbox
題名の通りだけども、↓を適切にsizingしつつ、どうやってHAなSolr Clusterを運用するかというお話
- collection: interaction & config
- shard: scaling factor for collection size (numshards)
- core: scaling factor for QPS (repllication factor)
- node: scaling factor for cluster
SolrCloudをDesignするにあたってKey metricsはこんなところかなと
- Collection size & complexity
- JVM requirement
- Node requirement
一つ一つのトピックはどうってことないかもだけど、こうもうまくまとまってると圧巻
自分が一番求めてるような内容だったので、発表がupされ次第要チェック
Building a Near Real-time Search Engine and Analytics for logs using Solr
Rahul Jain: System Analyst (Software Engineer) of IVY Comptech Pvt Ltd
NRTログ集計と検索について、architectureだけでなく随所にサイズや時間等の具体的な数値がちりばめられてて、
かなり参考になる話だったと思うのだけれども、いかんせんマシンガントーク(インドの方?)についていけず。。。orz
(XMLをMarshalling & Unmarshallingして経由させてんのなんで?とか。。。)
これまた後で要チェック
Stump The Chump
Chris Hostetter: Lucene/Solr Committer, Solr developer of LucidWorks
恒例企画、来場者orメールからの質問にコミッター達が答えてくれる。いい質問には関連書籍プレゼント
前回同様Chris Hostetterが仕切ってて、会場は爆笑の渦にw
Yonikも回答者の一人だったけど、酒飲んでふざけてるだけだったような。。。
Conference Party @ The Tipsy Crow
The Tipsy Crowを貸しきってパ~チ~
Pep rally @ Hooters
池さんに景気づけしてもらいましたとさ
Day 4 : Conference, My talk
最終日。ドキドキ。。。
Solr Powered Libraries: A survey of the world’s knowledge bases
Erik Hatcher: Lucene/Solr Committer, Co-founder of LucidWorks
Erik Hatcherによる、図書館をはじめとするpublicなとこのSolr適用事例紹介
ちなみにEricは前回のトレーニング講師の一人
UIの組み方まで出てきてそれなりに面白かったけど、イマイチ全体で何?だったたのかわからず。。。
Using Solr/Lucene to Build Advertising Systems
Hideharu Hatayama: Application Engineer of Rakuten, Inc.
ゲロゲロ。。。
Heather kindly came to hear my talk. Thank you very much.
Living with Garbage
Gregg Donovan: Senior Software Engineer of Etsy.com, Inc.
Garbageだとかメモリだとかの話。Etsyは去年も別の人が発表してたなぁ
GCの種類とか何ちゃら世代とか頭に入ってなく聞いたもんだから途中から。。。
ハイ、後で復習しましょう。
メモ①: GCに??秒かかるとして。request投げる側にtimeoutを設定しといて、もし超えたら、他のノードにリトライ
メモ②: Achieving Rapid Response Times in Large Online Services