9月4日、Yahoo! Japanの方でCassandra Meetup Tokyo 2015が行われました。
Cassandraは、NoSQLの技術になり、DynamoDB、Google BigTableの仲間に入ります。
Apache Sparkと組み合わせることで、強力な分析基盤を構築することも可能。
Cassandra Meetup Tokyo 2015, Summer with Apache Cassandra Chief Evangelist, Patrick McFadin
Cassandra は、マスターレス、peer-to-peerで稼働するので、SPOFになり得ない、耐障害性にも優れています。
Wather Stationから気象データを収集するユースケースを話されましたが、Cassandraは、IoT deviceのデータ収集にも使用可能。
Apache Sparkと組み合わせられる。Apache Sparkは、In-Memoryで高速でデータ分析が行える特徴を持っており、Spark Streaming、SQL、機械学習(Machine Learning)、GraphXのコンポーネントもあります。
data processingを聞くと、Google Dataflowが思い浮かんだ。ClouderaがGoogle DataflowをSparkに統合する計画も。
Partition and Token Range
Cassandra dataをスキャンするには、token ringを使って、マルチノードにアクセスする。
Cassndaraから抽出したデータをCassndaraに書き出すことも。
spanBy
groupByより効率良くグルーピングできる。
Cassandraとsparkを使った yahooの事例
50を超えるyahooのサービスで利用されていること。
StorageにSSDを利用することで、QPS 6倍、レイテンシ1/10と性能向上が図れる。
Sparkはデータの可視化に。Sparkは、In-memoryで高速ではあるが、hadoopオーバーヘッド、HDFSの点でも、hadoopより高速と言える。
MySQLで4,000万レコードの更新がある場合、レプリケーション遅延が発生していた。
RDB系だとトランザクション量が多いとレプリカ遅延(RepliaLag)が発生する。トランザクション量が多い場合、NoSQL系が。
BlockTransferServiceが現状SSLされていないことも。
CyberAgentでの事例
Cassandraの導入。
jenkins、ansible + SensuでCassandraを使った運用。Masterレスなので、SPOFがない、ノードを増やすことで、スケールアウトも。
cpu/mem/nw/latency/fd はもちろん、jvmのGC、Cassandra_Status、Cassandra clusterのheathの監視を行っている。
repair & cleanupを7日。NW断があった障害に関しても、データロストはなかった。
書き込みを一端止めて、snapshotを取得することで、PITRに近いこともできるのでは。組み込まれることを期待。
Cassandra Tools
EC2でCassandraを使う場合、Ec2MultiRegionSnitch、 Ec2Snitchを確認。
- cassandra-stress
- Cassandra負荷掛けツール。read/writeで負荷を掛けることが可能。
- cassandra-stressd
- 長時間負荷をかける場合は、こちら
- cassandra.in.sh
- json2sstable
- sstable2json
- deprecatedされており、Cassandra 3.0では廃止予定
- sstablelevelreset
- sstableofflinelevel
- sstablerepairreset
- sstablesplit
- token-generator
- 最適なtokenを算出してくれる
AWS上でCassandra環境構築する場合は、 cassandgo
参加者に、enterprise版のCassandraが入った2Gのusbメモリ。
http://www.infoq.com/jp/news/2014/11/netflix-cassandra
http://www.infoq.com/jp/news/2014/11/netflix-cassandra