YandexがYTsaurusのソースコードを公開

Yツァウルス

YTsaurus は、MapReduce モデルをサポートする、ビッグ データ用の分散ストレージおよび処理プラットフォームです。

数日前、YandexはYTsauruプラットフォームのオープンソース化を発表しました。YTsauruは、大量のデータの分散ストレージと処理に使用され、MapReduceパラダイムを使用したデータ操作、SQLクエリエンジン、分散ファイルシステム、およびキーバリュー形式のNoSQLストレージをサポートしています。

YTsaurusは、 Yandexのインフラストラクチャにおいて、同社のスーパーコンピュータの計算能力を効率的に活用するために使用されています。このプラットフォームは、10万ノードを超えるクラスタまで拡張可能で、最大000万個のプロセッサと数千個のGPU(機械学習タスク用)をカバーできます。

物理サーバー上で実行される分離されたコンテナーは、クラスター ユニットとして使用できます。 ストレージには、ハード ドライブ、SSD、NVME、RAM などのさまざまなメディアにあるエクサバイト単位のデータが含まれる場合があります。

クラスターは、ノードの動的な追加と削除、冗長性 (単一障害点なし)、自動複製、アクティブなクラスター ソフトウェアのアップグレード、およびノー​​ド障害の場合の自動冗長性回復をサポートします。

サポートされているクラスターの種類は3つです。計算クラスター(MapReduce操作を使用したビッグデータの大規模並列処理用)、ピボットテーブルおよびキーバリューストレージ用のクラスター、そして地理的に分散されたクラスターです。

プラットフォームベースのサービスは、何万人ものユーザーのデータを保存および処理する手段を提供できます。 Yandex での典型的な YTsaurus アプリケーションには、広告ネットワーク ユーザーに関する情報の保存、機械学習モデルのトレーニング、検索インデックスの形成、Yandex Taxi などのサービス用のデータ ウェアハウスの構築が含まれます。

基本的な使用例のうち、言及されているのは次のとおりです。

  • バッチ処理: MapReduce および SPYT (YTsaurus のデータのコンピューティング エンジンとしての Apache Spark) は、構造化データおよび半構造化データ (記録または金融取引) を処理します。
  • アドホック分析: 別の分析システムにデータをコピーすることなく、CHYT (YTsaurus 計算ノード上の ClickHouse サーバーのグループ) を介した高速クエリ。 視覚化のために BI を接続する機能を備えた ODBC および JDBC。
  • OLTP タスク: ユーザー プロファイル ストレージ、広告表示、ストリーム処理など、キー値ストレージを使用したリアルタイムのトランザクション作業。
  • 機械学習: GPU クラスターを管理して、数十億のパラメーターでモデルをトレーニングします。
  • メタ情報ストレージ: メタ情報のトランザクション ストレージと分散ロックの信頼できるサービス。
  • 典型的なツール (Apache Spark、SQL、MapReduce) を使用した多層データ処理のためのデータ ウェアハウスと ETL の作成。

アーキテクチャの主要な要素の一部では、次のことが言及されています。

  • 分散ファイル システムとサイプレスのフォールト トレラントなツリーベースのメタ情報ストレージ。
  • MapReduce モデルと高度な基本操作をサポートする分散コンピューティング用のスケジューラ。
  • IT 運用の水平方向のスケーラビリティ。
  • コンピューティング リソースの分離と、特定のコンピューティング リソース (CPU、GPU、RAM) をさまざまな比率で割り当てる可能性。
  • OLTP ストレージを作成するためのピボットテーブル、MVCC ベースのストレージのサポート、トランザクション、期限切れ後にデータを削除する機能、およびピボットテーブルを介したストリーミング データ処理のためのメッセージ キュー。
  • プログラミング言語 C++、Python、Java、Go の API とライブラリ。
  • ツリー状のストレージを介したナビゲーションをサポートする、ユーザーおよび管理者用の Web インターフェイス。

最後に、さらに詳しく知りたい場合は、このプロジェクトのコードはC/C++で記述されており、Apache 2.0ライセンスの下でオープンソースとして公開されていることを知っておくと良いでしょう。詳細は以下のリンクをご覧ください。

GitHubリポジトリには、YTsaurusのサーバーコード、k8sを使用したデプロイメントインフラストラクチャ、システムのWebインターフェース、およびC++、Java、Go、Pythonなどの一般的なプログラミング言語用のクライアントSDKが含まれています。


Googleで優先ソースとして追加する