Transcript スライド 1
1 Hadoopのご紹介 Hadoopのご紹介 目次 1. 背景 ・ ビッグデータ時代の到来 ・ 膨大な情報から価値ある情報を抽出するニーズ 2. Hadoop ・ ・ ・ ・ ・ ・ ・ 概要 Hadoopの特徴 大規模データの処理 RDBMSの得意不得意 Hadoopの得意不得意 RDBMSとHadoopの技術比較 Hadoopの2大構成要素( HDFS環境構成、 MapReduce ) 3. 実績と効果 ・ ・ ・ ・ 某キャリア社システム、ログ分析基盤 某キャリア社システム、課金基盤 某キャリア社システム、債権基盤 YIDATECの強み、フレームワークの説明 4. Hadoop関連プロダクトのご紹介 ・ Hadoop関連プロダクト(一部)各機能・特徴 5. 分析基盤のアーキテクチャの中、Hadoopの位置づけ 2 1.背景 ■ Hadoopが注目された背景 大規模データの保管と大規模データの分析 1).ビッグデータ時代の到来 ・ バックアップできない ・ RDBMS処理できない 2).膨大な情報から価値ある情報を抽出するニーズ ・ 大規模データの各データ間の分析したい ・ マーケティングデータとして活用したい 3 1.背景 4 1).ビッグデータ時代の到来 ・ 時間の経過につれてデータ量が爆発 商品 売る! 規模により、 スケールアウト 年度 1.背景 5 2).膨大な情報から価値ある情報を抽出するニーズ ・ マーケティングデータとして活用したい 今後5年で50 倍の増加 大量なデータ 画像データ センサーデータ 交通データ 業務ログ 気象データ 販売データ Web/メール オフィス文書 SNS/Twitter 非構造化デー タは顕著に増 加 1.背景 ■ 中国での導入事例 ・ 百度(中国の検索大手) 検索ログ分析、WEBアクセスログ分析 ・ 淘宝網(タオバオワン) アジア最大の ショッピング サイト、電子マネーなど購入 情報の蓄積、分析 ・ 中国移動(5億ユーザのキャリア会社) Hadoopのシステム(BigCloud)、データ分析および 通話料問い合わせのサービス提供 6 2.Hadoop 1).概要 ■ 大規模なデータをバッチ処理するための 並列分散処理基盤。 並列分散処理とは、ある1つの処理を 分割して、同時に処理を行うことを指す。 並列分散処理することで処理時間を 短縮することができる。 7 2.Hadoop 2).特徴 8 2.Hadoop 3).大規模データの処理 ■ ディスク容量の向上、CPUパワーの向上 ・ データを処理しきれない ・ CPUを使いきれない ⇒ディスクアクセス性能の向上 ■ データを分散 ・ 障害発生への対応が必要 ・ データの同期、統合が困難 ⇒ディスクI/Oを分散、CPUの有効利用 9 2.Hadoop 10 4).RDBMSの得意不得意 RDBMS 得意 不得意 ・ 細かいデータのインデック ス高速検索 ・ 細かいデータの更新が得 意 ・ データ一貫性の保証 ・ 大規模処理(ディスクI/O以上の性能は 出せない) ・ スケールアウト(並列分散処理)が困難 ・ データ可用性を高めることが困難 ・ クラスタリングの運用が困難 2.Hadoop 11 5).Hadoopの得意不得意 Hadoop 得意 不得意 ・ ・ ・ ・ ・ RDBMSが得意なトランザクション一貫性保証 ・ データの更新 ・ OLTP処理のような”秒”以下のレイテンシが必 要な処理 (Hadoopの処理は”分”のオーダで処理が終 わる) 高スループット処理 高スケーラビリティ 高可用性 安価なサーバで構成可能 2.Hadoop 6).RDBMSとHadoopの技術比較 12 2.Hadoop 13 ●処理 RDBMS Hadoop 扱うデータサイズ ~数テラバイト ペタバイト 想定するデータ操作 小さなデータの参照/更新 大きなデータの挿入/参照。更新なし レスポンスタイム 速い 遅い 性能向上策 サーバの性能向上 サーバの台数向上 データの構造 構造化データ 準構造化データ ●DB 特徴 RDBMS NoSQL ・読み取り一貫性 ・更新処理が多く、トランザクショ ンを意識する処理に向く ・データ同士の関連性を定義でき る ・トランザクションがない(処理途中のデータが見 える) ・分散処理に向く ・リレーションがない ・拡張性、柔軟性が高い 2.Hadoop 7).Hadoopの2大構成要素 ■ HDFS ・ Hadoopのファイルシステム ・ 大規模分散ストレージ ■ MapReduce ・ Hadoopの分散処理フレームワーク 14 2.Hadoop 15 ① HDFS(Hadoopのファイルシステム)の構成 HDFS:Hadoop Distributed File System ファイル要求 NameNode 管理監視 操作者 データ 送受信 DataNodes DataNodes DataNodes DataNodes DataNodes 2.Hadoop 16 ② HDFSの耐障害性確保の仕組み 元ファイ ル 1 2 3 4 HDFS 1 2 1 3 1 2 3 4 3 2 4 4 Nodes Nodes Nodes Nodes Nodes Nodes 2.Hadoop 17 ③ MapReduce HDFS Map 処理 入力ファイル プログラム 入力ファイル プログラム Shuffle Reduce 処理 処理 HDFS 中間 データ 出力ファイル プログラム 入力ファイル プログラム 出力ファイル 入力ファイル プログラム 入力ファイル プログラム 入力ファイル プログラム プログラム 3.実績と効果 1) 某キャリア社システム、ログ分析基盤 2) 某キャリア社システム、課金基盤 3) 某キャリア社システム、債権基盤 4) 某キャリア社システム、DWH一部Hadoo化 5) YIDATECの強み 18 3.実績と効果 1) 某キャリア社システム、ログ分析基盤 【課題】 ・1日処理2T、現在データ総量40Tの処理、従来のRDBMSでは処理できない ・レコメンドエンジンコンポーネント導入に伴い、Hadoop処理でなければ難しい ・ビッグデータスペシャリストの育成 【解決策】 ・某キャリア社システム、ログ分析基盤コンポネントにて、他コンポネントから、 ユーザ契約情報、決済情報ならびに、トルカ、iスケジュール、Music、 Video、 Book、アニメ、ゲームサービスの利用履歴の収集、利用金額の計算、 必要な情報を集約して、他システムに提供する。 また、レコメンドエンジンコンポネントから各サービスの利用状況を分析して、 お勧め度を決めて、レコメンド情報を収集してオンラインシステムに提供す る。 19 3.実績と効果 20 1) 某キャリア社システム、ログ分析基盤 【概念図】 レコメンドエンジン 他コンポネント 契約ログファイル 他コンポネント オンライン コンポネント ログ分析基盤 履歴情報ファイル レコメンド情報 集約した 金額合計など YIDATEC CONFIDENTIAL 3.実績と効果 21 1) 某キャリア社システム、ログ分析基盤 【配置図】 L3SW NameNode 2台 2台 JobTracker 2台 運用監視 2台 エンジン L2SW L2SW L2SW L2SW L2SW L2SW スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC ラック ラック ラック YIDATEC CONFIDENTIAL ラック ラック ラック 3.実績と効果 22 1) 某キャリア社システム、ログ分析基盤 【性能比較】 YIDATEC CONFIDENTIAL 3.実績と効果 23 1) 某キャリア社システム、ログ分析基盤 【効果】 以前は、1ヶ月の利用履歴収集に、1回 2時間程度要していたため、1日2~3回 しか収集できなかった。 Hadoopの投入により、7ヶ月の利用履歴 収集が、1回10分程度で行えるようにな り、オンラインで随時実行できる。 YIDATEC CONFIDENTIAL 3.実績と効果 2) 某キャリア社システム、課金基盤 【課題】 ・業務データ量が増加していて、従来のRDBMS処理できない ・ロジック煩雑化、てんこ盛り状態 ・タリフ作業頻度大 【解決策】 ・Hadoop基盤による並列処理やスケールアウトで対応 ・データの整形/クレンジング処理をHadoop(MapReduce)で高速に実現 ・Hbaseへのデータ格納でREST APIに対応 24 3.実績と効果 25 2) 某キャリア社システム、課金基盤 【概念図】 ESB 外部 分散 リアルタイム処理 フォーマット変換 & 課金処理 Storm データストア 顧客 データ プラン 情報 大量データバッチ処理 分析 シミュレーション Hadoop YIDATEC CONFIDENTIAL 課金対象 データ 月次課金 計算 3.実績と効果 26 2) 某キャリア社システム、課金基盤 【配置図】 Node Node Node Node Node Node Strom + + Apache ZooKeeper YIDATEC CONFIDENTIAL 3.実績と効果 27 2) 某キャリア社システム、課金基盤 【性能比較】 YIDATEC CONFIDENTIAL 3.実績と効果 28 2) 某キャリア社システム、課金基盤 【効果】 After Before 加入者、通信料増加に伴い、処理時間も増加 分散処理、スケールアウトすることにより、 処理時間の増加を抑えることができる 処理時間 通信量(利用料) 加入者 YIDATEC CONFIDENTIAL 通信量(利用料) 処理時間 加入者 3.実績と効果 3) 某キャリア社システム、債権基盤 【課題】 ・現在のデータ総量が多すぎて、従来のRDBMS処理できない ・処理時間オーバー 【解決策】 ・Sqoopより、OracleデータベースのテーブルをHDFS上へ分散してImportする。 ・ Importされたファイルを業務にて、 編集処理を行う。(Hadoopで実装する) ・HadoopのMapReduce処理されたファイルを、SqoopでMySQLにExportする。 29 3.実績と効果 30 3) 某キャリア社システム、債権基盤 【概念図】 Import Oracle Sqoop Export Inputディレクト リ Workディレクト リ Hadoop Onputディレクト リ MySQL Nodes YIDATEC CONFIDENTIAL HDFS MapReduce 3.実績と効果 31 3) 某キャリア社システム、債権基盤 【配置図】 NameNode Oracle MySQL HDFS DataNode 1 DataNode 2 DataNode 3 YIDATEC CONFIDENTIAL DataNode 4 3.実績と効果 32 3) 某キャリア社システム、債権基盤 【性能比較】 YIDATEC CONFIDENTIAL 3.実績と効果 33 3) 某キャリア社システム、債権基盤 【効果】 RDBMS方式 安く!早く!速く! データ 更新3 Hadoop方式 Export Sqoop データ 更新2 Map Reduce データ 更新1 データ 挿入2 Import2 データ 挿入1 Import1 YIDATEC CONFIDENTIAL Hadoop Sqoop Sqoop 3.実績と効果 4) 某キャリア社システム、DWH一部Hadoop化 【課題】 ・通信履歴の種類、データ量の急激増加により、既存のDWH容量 ・日時の夜間バッチ時間、大幅オーバー、I/O、CPUの負荷が高い ・DWHのバージョンアップなど、保守費用が高い 【解決策】 ・現フェーズは、最もサイズが大きいのパケット履歴、MMSパケット履歴を Hadoop環境に載せる。 ※将来的に、DWHシステムをすべてHadoop環境に切り替わる。 ・既存のDWHバッチ処理のSQL文をHQL(HiveのSQL)に変更する。 34 3.実績と効果 35 4) 某キャリア社システム、DWH一部Hadoop化 【概念図】 受 信 フ ァ イ ル 展 開 ロ | ド 処 理 DWH 当月 当月新 既存 既存データ作成 新CDRデータ作成 データ洗い替え 先月新 先月 H D F S に 格 納 HDFS + HIVE 当月 既存 先月 当月新 既存データ作成 新CDRデータ作成 先月新 ア ク セ ス A P I サ | バ | 3.実績と効果 36 4) 某キャリア社システム、DWH一部Hadoop化 【配置図】 L3SW NameNode 2台 2台 JobTracker 2台 運用監視 2台 Hiveクライアント L2SW L2SW L2SW L2SW L2SW L2SW スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC スレーブPC ラック ラック ラック ラック ラック ラック 3.実績と効果 37 4) 某キャリア社システム、DWH一部Hadoop化 【効果】 ・ DHW容量の大幅削減 パケット履歴、MMSパケット履歴は18TのデータはHDFS上管理する ・ 日バッチ処理、I/O(Read)、CPU負荷の削減 ・ 日中時間帯の軽技Webによる Read I/O 負荷のオフロード YIDATEC CONFIDENTIAL 3.実績と効果 38 4) YIDATECの強み 調査 サポート 開発 グローバ ル開発サ ポート ⇒大連側 バックアッ プにもでき る Hadoop 精通技術者 4名 品質管理 セキュリティ 管理 Hadoopのフレームワークが持っている ⇒既存の複雑な業務処理に適応実績がある サービス YIDATEC CONFIDENTIAL 3.実績と効果 39 4) YIDATECの強み 大規模開発のオリジナルのフレームワークを持っている 日本側、業務適応実績、2件 中国側、適応実績、1件 Hadoopの特徴を活かして、業務実現に向かって、提案、設計できる データ量に応じて、サブジョブの投入など 各種障害時の対応、健全な商用システムなど各種知識 Hadoopの関連プロダクト商用経験がある Sqoop、Hbase、Hive 開発の流れ、チェックポイント箇所の抑え、失敗から得た経験などを 活かし、開発の効率向上 環境構築、JobCenterの構築、監視の使用経験がある 要員体制 商用まで経験者4名、大連側技術研究、技術サポート体制がある YIDATEC CONFIDENTIAL Hadoopフレームワーク位置づけ シームレス・データ連携 定型 JDBC RDB Strea m Socket 等 収集 参照 蓄積 ロケーション ライフサイクル 処理 RDB Storage Hadoop BI Access API Server File コンポーネント非依存 Enterprise Service Bus 非定型 HTTP FTP fluentd NFS 等 40 HTTP HTTPS 等 WebSocket ライフサイクル管理 情報分析基盤システム 認証・認可 Report Custo m セキュア・アクセスコントロール Hadoopフレームワーク位置づけ ■ 開発時 CDHのCore.jarファイルと同様、EclipseのLibに導入する。 ■ リリース 業務用のJarファイルと同時デプロィする。 ■ 主な機能 Storegeなど転送されているファイルをInputとして、フレームワークを 利用してMapReduce処理を行い、集約したファイルをAcess APIサー バに 提供する。 YIDATEC CONFIDENTIAL 41 フレームワークの処理フロー図 BaseMapReduce Controller Mapper 42 Reducer Reader 前処理 前処理のコールバック ・Mapper定義 ・Reducer定義 ・各種情報をconfに設定 ・入力ファイルんパス設定 ・入力ファイルをレ コード単位読み込み、 チェック処理 ・runningを呼び出しMapperを 実行 ・Hadoopのフレーム ワークに出力する Sufleに渡す partitioner、comparator Hadoopの振り分け、比較処 理 ・runningを呼び出し、 Reducerを実行 ・集約単位のデータ を読み込み 後処理 後処理のコールバック ・Mapper、Reducerのエラー検出 ・ファイルのマージ処理 ・キャバログ YIDATEC CONFIDENTIAL ・Hdfsにファイルを出 力 Writer フレームワーク概要 43 ■ Cloudera社のCDH3u6をラップして、大規模開発向けのフレームワーク ■データの取り扱いについて データの入力 データベースからエクスポートしたUTF-8にてエンコードされた CSVファイルをHDFS上に格納して、ジョブ実行中各スレーブ からHDFSを参照する データ処理の高速化 MapReducerの入出力、及び中間データはGzipを利用して、 圧縮解凍を行う。そのため、ローカルnativeライブラリが必要と する。 ■共通部品について hadoopクラスタ環境の管理や、開発を簡素化、迅速化 MapReducerジョブの定義、全処理、後処理 HDFS上ファイル、ディレクトリの操作 履歴の全件、差分に対応するため、ディレクトリを日付に定義 シーケンスファイル対応するため、Prefixを定義 YIDATEC CONFIDENTIAL フレームワークの概要 ■ログの出力について Pointing専用ロガーを利用する スレーブサーバ側log4jを利用してローカルに出力 ◆マスタサーバ側、ログの収集 ◆キャパシティログの収集 ■メッセージの出力について 通常のJava仕組み ■ジョブスケジューラーについて hadoop提供のキュー仕組みを利用すること。 キューに追加したジョブの実行順、優先順位など設定できる。 複数のキューを利用する時、Hadoop提供するsetQueueName を利用する ■単体テストについて ・MRUnitを利用する、各種ドライバを利用する ■本番運用ツールについて ・ジョブの状態(開始、実行中、終了)の監視 ・ジョブの強制終了 YIDATEC CONFIDENTIAL 44 4.Hadoop関連プロダクトのご紹介 1).Hadoop関連プロダクト一覧(一部) 2).Hadoop関連プロダクト(一部)各機能・特徴 45 4.Hadoop関連プロダクトのご紹介 1).Hadoop関連プロダクト一覧(一部) 46 4.Hadoop関連プロダクトのご紹介 47 2).Hadoop関連プロダクト(一部)各機能・特徴 No. プロダクト名 機能・特徴 備考 1 HBase オープンソースの、列指向、分散データベースであり、Googleの BigTableをモデルとし、Javaにより書かれている。 2 Pig Hadoop上のMapReduce処理をアドホックに実行できるツールである。 る。 MapReduceプログラミング 3 Hive Facebook社のメンバーが主体となって開発されているツールである。 Apache.orgのプロジェクトとして開発が進められ、HiveQLと呼ばれる処 る処理言語で、処理したい内容をSQLライクに定義できる。 MapReduceプログラミング 4 Sqoop Hadoopとリレーショナルデータベースなどの構造データストア間で大量 量の生データを効率的にやり取りするためのツールである。 RDBMSデータの利用 5 Oozie Javaサーブレットコンテナで動作するJavaのWebアプリケーションである ある。 ワークフロー管理 6 Thrift 「スケーラブルな言語間サービス開発」のためにFacebookにて開発され れたRPCフレームワークである。 7 ZooKeeper Apacheソフトウェア財団のオープンソースプロジェクトで、大l規模分散 散システムでよく利用される、設定情報の集中管理や名前付けなどの サービスを提供するソフトウェアである。 Hadoopのサブプロジェクトの一つである。 情報分析基盤システム構想:Cloudera Hadoopの実例 HDFS RDB Sqoop Hive HDFS API HBase KVS HDFS RPC Java Cloudera Hadoop Hadoop HiveQL HDFS Access API Server RDB HDF S Storage SQL HDFS Exadata 等 Impala fluentd Server fluentd Enterprise Service Bus Ftp Server Ftp Client ロケーション ライフサイクル Oracle Connector or JDBC 48 認証・認可 Hadoopのご紹介 ご清聴ありがとうございました 49