計画

ビッグ・データ・サービスを使用してOCIにデータ・レイクを実装する複数ステップのワークフローがあります。

  1. 要件: OCIの新規環境の要件をリストします

  2. 評価:必要なOCIサービスおよびツールの評価

  3. 設計:ソリューション・アーキテクチャの設計とOCIのサイズ設定

  4. 計画:時間とリソースをマッピングする詳細な計画を作成します

  5. プロビジョニング: OCIで必要なリソースのプロビジョニングおよび構成

  6. 実装:データおよびアプリケーションのワークロードを実装します

  7. パイプラインの自動化:自動化のためにワークフロー・パイプラインを調整してスケジュールします

  8. テストおよび検証:ソリューションのエンドツーエンドの検証、機能テストおよびパフォーマンス・テストを実行します。

要件の決定

最初に行うべきことは、システムおよびアプリケーションの要件のカタログを作成することです。

次の表は、サンプル・テンプレートを示し、ユース・ケースに適応するための開始点として機能できます。

発見のトピック 現在の設定 OCIの要件 ノートとコメント
データサイズ - - -
増加率 - - -
ファイル形式 - - -
データ圧縮形式 - - -
データ・センターの詳細(ハイブリッド・アーキテクチャ用) - - -
VPN/FastConnect設定のネットワーク接続詳細 - - -
DR(RTO、RPO) - - -
HA SLA - - -
バックアップ計画 - - -
インフラストラクチャの管理とモニタリング - - -
通知とアラート - - -
保守およびアップグレード・プロセス - - -
サービスデスク/インシデント管理 - - -
認証方法 - - -
認証方法 - - -
暗号化の詳細(保存中および移動中) - - -
キーおよび証明書プロセス - - -
Kerberos詳細 - - -
コンプライアンス要件 - - -
各ソースのデータ・ソースと取込み技術 - - -
ETL要件 - - -
分析要件 - - -
データ問合せ要件 - - -
BI/ビジュアライゼーション、レポート要件 - - -
他のソリューションとの統合 - - -
ノートブックとデータ・サイエンス・ワークロードの詳細 - - -
ワークフロー、オーケストレーション、スケジュールの要件 - - -
バッチ・ワークロード-各ジョブおよびアプリケーションの詳細 - - -
対話型ワークロード-ユーザー数、各ジョブとアプリケーションの詳細 - - -
ストリーミング・ワークロード-各ジョブとアプリケーションの詳細 - - -
データ・レイクと統合された各アプリケーションの詳細 - - -
チームの詳細(システム管理者、開発者、アプリケーション所有者、エンド・ユーザー) - - -

評価

このフェーズでは、要件フェーズ中に収集したすべてのデータおよび情報を分析します。

その情報を使用して、OCIで必要なサービスおよびツールを決定します。評価の最後に、使用する各OCIデータ・サービスとそのサービスに実装される機能を示す高レベルのアーキテクチャが必要です。

次の図は、このフェーズで作成するアーキテクチャのタイプの例です。

Architecture-hadoop-datalake.pngの説明が続きます
図Architecture-hadoop-datalake.pngの説明

設計

このフェーズでは、Oracle Cloud Infrastructure (OCI)のソリューション・アーキテクチャと初期サイズ設定を決定します。

評価フェーズで作成した参照アーキテクチャを開始点として使用します。

OCIプラットフォームをよく理解し、OCIでアプリケーションを構築する方法が必要です。また、OCIのネットワークおよびIAMポリシーも設定する必要があります。

計画

このフェーズでは、時間およびリソース・マッピングを使用して詳細なプロジェクト・プランを作成します。

各アクティビティについて、タスク、利害関係者RACIおよびタイムラインの詳細を決定する必要があります。

プロジェクト・プラン

すべてのアクティビティ、それらのタイム・ラインおよびそれらの依存関係を含むプロジェクト・プランを作成します。

次の図は、高レベルのプロジェクト計画の例を示しています。

project-plan.pngの説明が続きます
図project-plan.pngの説明

部品構成表

評価と設計に基づいて、OCIのターゲット環境用のBOMを作成します

使用する各サービスを、そのサイズ設定および構成情報とともにリストします。次の表に、部品表に含めることができる品目の例を示します。

OCIサービス サイズ設定と構成
Big Data Service -
データ・サイエンス -
データ・カタログ -
仮想マシン -
ブロック・ストレージ -
オブジェクト・ストレージ -
Autonomous Data Warehouse -
仮想クラウド・ネットワーク -
アイデンティティおよびアクセス管理 -

ビッグ・データ・サービス・プランニング

この項では、ビッグ・データ・サービス(BDS)でクラスタを起動するために必要な重要な選択肢について説明します

BDS Hadoopクラスタは、OCIコンピュート・インスタンスで実行されます。使用するインスタンス・タイプを決定する必要があります。これらのインスタンスは、仮想クラウド・ネットワーク(VCN)サブネットで実行されます。クラスタを起動する前に構成する必要があります。また、クラスタ・ノードにアタッチされているブロック・ボリュームのストレージ要件を抑止する必要もあります。また、IAMポリシーを構成する必要があります。

ノードには次の2つのタイプがあります:

  • マスター・ノードとユーティリティ・ノード。これらのノードには、クラスタの操作および管理に必要なサービスが含まれています。データは保存または処理されません。

  • ワーカー・ノード:これらのノードは、データを格納および処理します。ワーカー・ノードが失われても、クラスタの操作には影響しませんが、パフォーマンスには影響することがあります。

クラスタは、セキュアで高可用性または最小(非HA)モードでデプロイできます。構成するHadoopコンポーネントのプランとそのサイズ設定も作成する必要があります。クラスタの構成とサイズ設定の詳細は、「詳細」セクションのBDSドキュメントのリンクを参照してください。

次の表を使用すると、BDSクラスタの計画を作成できます。

トピック サイズ設定と構成
セキュアで高可用性、または最小(非HA)構成 -
ワーカー・ノードの数 -
ノード当たりのストレージ -
マスター・ノードのコンピュート・インスタンスのタイプとシェイプ -
ワーカー・ノードのコンピュート・インスタンスのタイプとシェイプ -
マスター・ノード1 Hadoopサービスの構成 -
マスター・ノード2 Hadoopサービスの構成(該当する場合) -
ユーティリティ・ノード1 Hadoopサービスの構成 -
ユーティリティ・ノード2 Hadoopサービスの構成(該当する場合) -
ユーティリティ・ノード3 Hadoopサービスの構成(該当する場合) -
ワーカー・ノードHadoopサービスの構成 -
仮想クラウド・ネットワークの詳細 -
アイデンティティおよびアクセス管理ポリシーが適用されました -
Ambari構成 -
HDFS構成 -
Hive構成 -
HBase構成 -
Spark構成 -
Oozie構成 -
Sqoop構成 -
Tez構成 -
Zookeeper構成 -

アーキテクチャ内の他のサービスの構成とサイズを計画する場合は、同様の表を使用できます。

プロビジョニング

BOMの最終的な状態アーキテクチャの設計およびサイズ設定情報に基づいて、プロジェクト・プランにリストされているタスクに従って、OCIで必要なリソースをプロビジョニングおよび構成します。

ビッグ・データ・サービスのデプロイメント・ワークフロー

BDSクラスタを設定する前に、IAMで権限を構成してから、クラスタのVCNを構成する必要があります。

IAMの構成

BDSクラスタに対するアクセス権限を持つ追加のIAMグループを作成します。

BDSクラスタ管理タスクは、1人以上のBDS管理者に委任する必要があります。

グループ名がbds-admin-groupで、新しいクラスタがクラスタ・コンパートメントにある場合は、次のポリシーを作成します。

allow group bds-admin-group to manage virtual-network-family in compartment Cluster
 allow group bds-admin-group to manage bds-instance in compartment Cluster

次のポリシー・ステートメントを使用してポリシーも作成します:

allow service bdsprod to 
{VNIC_READ, VNIC_ATTACH, VNIC_DETACH, VNIC_CREATE, VNIC_DELETE,VNIC_ATTACHMENT_READ,
 SUBNET_READ, VCN_READ, SUBNET_ATTACH, SUBNET_DETACH, INSTANCE_ATTACH_SECONDARY_VNIC,
 INSTANCE_DETACH_SECONDARY_VNIC} in compartment Cluster

VCNの構成

少なくとも、パブリック・インターネットにアクセスできる単一のリージョンに1つのサブネットを持つ1つのVCNが必要です。

複雑な本番環境では、複数のサブネットや異なるセキュリティ・ルールを使用できます。VCNをオンプレミス・ネットワークまたは他のリージョン内の他のVCNに接続できます。OCIネットワーキングの詳細は、OCIドキュメントを参照してください。

BDSクラスタの作成

クラスタの名前、クラスタ管理パスワードおよびマスター・ノード、ユーティリティ・ノードおよびワーカー・ノードのサイズを選択します。

クラスタの作成時に、その名前、クラスタ管理パスワード、およびマスター・ノード、ユーティリティ・ノードおよびワーカー・ノードのサイズを選択します。セキュアで高可用性(HA)クラスタ構成を選択するチェック・ボックスもあります。HAでは、HA以外の最小構成で2つではなく4つのマスター・ノードとユーティリティ・ノードが提供されます。

クラスタを必要なコンパートメントと、そのクラスタを必要なVCNに作成してください。また、クラスタ・プライベート・ネットワークのCIDRブロックが、クラスタを含むサブネットのCIDRブロック範囲と重複しないようにしてください。

BDSクラスタへのアクセス

ビッグ・データ・サービス・ノードは、デフォルトでプライベートIPアドレスに割り当てられており、パブリック・インターネットからはアクセスできません。

次のいずれかの方法を使用して、クラスタ内のノードを使用可能にできます。

  • クラスタ内の選択したノードのプライベートIPアドレスをパブリックIPアドレスにマップして、インターネットでパブリックに使用できます。
  • 要塞ホストを使用してSSHトンネルを設定できます。要塞ホストのみがパブリック・インターネットに公開されます。要塞ホストは、パブリック・インターネットからクラスタのプライベート・ネットワークへのアクセスを提供します。
  • オンプレミス・ネットワークとVCN間にサイト間インターネット・プロトコル・セキュリティ(IPSec) VPNを提供するVPN接続を使用できます。また、OCI FastConnectを使用して、パブリック・インターネットを使用せずにOCIのサービスにアクセスすることもできます。FastConnectを使用する場合、トラフィックはプライベートな物理接続を経由します。

BDSクラスタの管理

Oracle Distribution (Apache Hadoop (ODH)を含むBDSの場合、Apache Ambariを使用してクラスタを管理できます。

クラスタのユーティリティ・ノードで実行されます。ノードでポート7183を開くには、ネットワーク・セキュリティ・リストにイングレス・ルールを構成する必要があります。

Ambariにアクセスするには、ブラウザ・ウィンドウを開き、ユーティリティ・ノードのIPアドレスを指定してURLを入力します。例: https://<ip_address_or_hostname>:7183

クラスタの作成時に入力したクラスタ管理ユーザー(デフォルト管理者)とパスワードを使用します。

Ambari-dDashboard-metrics.pngの説明が続きます
図Ambari-dDashboard-metrics.pngの説明

実装

各フェーズのアプリケーションとサービスの実装を開始します。特定のサービスを選択する前に考慮すべき条件が複数あります。

一部のサービスは複数のフェーズで使用できることに注意してください。たとえば、ビッグ・データ・サービスには、取込みフェーズ、ストア・フェーズおよび変換フェーズで使用できるコンポーネントがあります。

収集

  • Data Transfer Appliance: OCIに移行する場合、データ転送サービスを使用して、オフラインでオブジェクト・ストレージにデータを移行できます。

  • ビッグ・データ・サービス:ビッグ・データ・サービスは、Kafka、Flume、Sqoopなど、一般的なHadoopコンポーネントを提供しています。ユーザーは、要件に基づいてこれらのツールを構成できます。Kafkaは、イベントとデータのリアルタイム取込みに使用できます。たとえば、ユーザーがアプリケーションやサーバーから受信するイベントがあり、それらをリアルタイムで取り込みたい場合は、Kafkaを使用して、HDFSやObject Storageにデータを書き込むことができます。Flumeを使用して、ストリーミング・データをHDFSまたはKafkaトピックに取り込むことができます。Sqoopは、リレーショナル・データベースやデータ・ウェアハウスなどの構造化データ・ストアからデータを取り込むために使用される最も一般的なHadoopツールの1つです。

ストア

  • ビッグ・データ・サービス: BDSは、HDFSやHBaseなど、標準のHadoopコンポーネントを提供します。データは、Sparkストリーミング、Sparkバッチまたはその他のジョブからHDFSに書き込むことができます。HBaseは、HDFSの上部で実行される非リレーショナル分散データベースを提供します。キーと値のペアとして格納される大きいサイズのデータセットの格納に使用できます。データは、取込みまたは変換の一部として、SparkジョブからHBaseに読み取って書き込むことができます。

  • Object Storage: OCI Object Storageサービスは、信頼性が高くコスト効率の高いデータ耐久性を実現する、インターネット規模の高性能なストレージ・プラットフォームです。分析データ、およびイメージやビデオなどのリッチ・コンテンツを含む、あらゆるコンテンツ・タイプのデータを無制限に保存できます。このパターンでは、オブジェクト・ストレージを汎用ブロッブ・ストアとして使用できます。ビッグ・データ・サービスやその他のサービスは、Object Storageからのデータの読取りと書込みが可能です。

変革とサービスを実現

  • ビッグ・データ・サービス(BDS): BDSは、データの処理に使用できるSparkやHiveなどのHadoopコンポーネントを提供します。HiveおよびSpark SQLを使用して、HDFSおよびオブジェクト・ストレージ・データに対してSQL問合せを実行できます。データがHDFSまたはオブジェクト・ストレージに格納されると、データを指し示して表を作成し、ビジネス・インテリジェンス(BI)ツールまたはカスタム・アプリケーションをこれらのインタフェースに接続して、データに対する問合せを実行できます。ユーザーは、大容量データを処理している可能性があるスパークで複雑なバッチ・ジョブを記述することも、複数のステージで非常に複雑な変換を行うこともできます。Sparkは、HDFS、HBase、Object Storageを含む複数のソースから読取りおよび書込みを行うためのジョブの実装に使用できます。Oracle Cloud SQLは、HDFS、KafkaおよびOracle Object Storageのデータに対してOracle SQL問合せを開始できる、使用可能なアドオン・サービスです。

BI、ML、視覚化、ガバナンス

  • データ・カタログ: OCIデータ・カタログ・サービスを使用して、Oracle Cloud Infrastructureエコシステムとオンプレミスのデータ・ソースからメタデータを収集し、データ・アセットのインベントリを作成します。これを使用して、カテゴリ、サブカテゴリおよびビジネス用語を使用してエンタープライズ・用語集を作成および管理し、ユーザーが追加したタグを使用してビジネス概念の分類を構築して、検索の生産性を高めることができます。これはガバナンスを支援し、データ・コンシューマが分析に必要なデータを見つけやすくします。

  • データ・サイエンス:データ・サイエンスは、Oracle Can Infrastructureで機械学習モデルを作成、トレーニング、デプロイおよび管理するための、データ・サイエンス・チーム用の完全に管理されたサーバーレス・プラットフォームです。Jupyterノートブックおよびpython中心のツール、ライブラリおよびパッケージと、Oracle Accelerated Data Scienceライブラリとともにオープン・ソース・コミュニティによって開発されたコラボレーション可能なプロジェクト主導型のワークスペースをデータ・サイエンティストに提供します。データ・フロー、Autonomous Data Warehouseおよびオブジェクト・ストレージを含む残りのスタックと統合します。

  • Oracle Analytics Cloud (OAC): OACは、データの準備、検出およびビジュアライゼーション、インテリジェントな企業およびアドホック・レポート、および拡張分析と自然言語処理/生成のためのAI搭載のセルフサービス分析機能を提供します。

自動化

システムの実装後、個々のジョブをスケジュールするか、1つ以上のパイプラインを設定して自動化を追加します。

AirflowやOozieなどのワークフロー管理ツールを設定できます。Oozieは、ビッグ・データ・サービス・クラスタの設定時に追加および構成されます。