Upgrade to Pro — share decks privately, control downloads, hide ads and more …

@cosmeにおけるビッグデータのこれまでとこれから

 @cosmeにおけるビッグデータのこれまでとこれから

データ分析基盤
Developers Night #3 発表資料

grassy-48

July 31, 2019
Tweet

Other Decks in Technology

Transcript

  1. 使った技術 • Spark ◦ 巨大なデータに対して高速に分散処理を行う ためのフレームワーク ◦ Resilient Distributed Datasetsによって分

    散共有メモリを実現し、インメモリでデータ にアクセスする ◦ Hadoop上のYARNによってSparkのリソースを 管理している
  2. 使った技術 • Apache Kafka ◦ 分散メッセージキューを行うミドル ウェア ◦ リアルタイムアプリケーションとマ イクロサービスを実現する

    ◦ スケーラブルでユースケース規模に よらず高い耐障害性で利用可能 ◦ 個別の処理用クラスタが不要 ◦ Java、Scalaアプリケーションの作成 ができれば誰でも使える
  3. 得られた効果 • 飛躍的な効果はまだ見られない ◦ クリック率向上 → × ◦ 回遊率の向上 → × • 原因として考えられる内容 ◦

    コンテンツの表示方法? ◦ 表示件数? ◦ レコメンデーションとしての精度の低さ 今後の課題となる POINT
  4. 運用を開始して… • ファイルフォーマットの変更 ◦ 開発初期はログフォーマットとしてAvroを採用 ▪ 理由 • スキーマ定義が必要だったためJSONは除外 •

    ORCも使えるソフトウェアが限られるため除外 • kafka streamsとの高い互換性によってAvroを採用 ◦ 中盤で標準をParquetに変更 ▪ 理由 • Spark2.2ではAvroの読み込みにパッケージインポートが必要で あり保守が困難であった • 今後追加されていく予定の大量なデータを見据えてカラムナ フォーマットに変更したかった
  5. 運用を開始して… • ログ収集が一時停止した ◦ 原因 ▪ 設定変更の反映のためHDFS再起動が必要となった ▪ Kafka connectorを停止せずに再起動したため、

    connectorのログファイルが破損 ▪ Kafka側エラーが発生しログの取得が停止 ◦ 解決方法 ▪ HDFS再起動時は接続するKafka connectorの停止をして から実施
  6. 実現までに苦労したこと • 学習コスト ◦ 開発開始時、ほぼ全員ビッグデータ運用未経験 • 初期基盤構築 ◦ 構築時の情報が社内ナレッジに残されていない ◦

    物はあるのに使えない状態からのスタート それぞれが学んだ内容をレビューや ディスカッションで共有していく 知識の定着もかねてナレッジへの文書化
  7. 実現までに苦労したこと • 適切な設定値が分からない ◦ リソースの割当 ◦ 実行メモリ ◦ パーティション設定 •

    ファイルブロック数の肥大化 調査しながらトライ・アンド・エラーで 設定していく ファイル作成頻度の見直し・ 定期的なコンパクションの実行
  8. 理想の実現に向けての課題 • 取得データの多様化 ◦ 既存サービスとの連携 ◦ これまでの過去のデータの発掘 ◦ 今後必要となるデータの選別 •

    リソース ◦ 人・時間・サーバーの十分な確保 • ナレッジの充足 ◦ 技術知識の吸収と社内エンジニアへの展開
  9. 今日お話したこと • istyleとは ◦ 事業紹介、これまでのistyleについて • istyleにおけるビッグデータ基盤 ◦ データ集約基盤と使った技術について •

    istyleにおけるビッグデータ活用例 ◦ レコメンデーションシステムのための機械学習による データ活用について • これからのビッグデータ活用 ◦ 今後のVisionについて