SlideShare ist ein Scribd-Unternehmen logo
1 von 67
© 2022 NTT DATA Corporation
Open Source Conference 2022 Online / Hiroshima
Apache Bigtop 3.2 (仮)
2022/10/01
関 堅吾・岩崎 正剛
日本Hadoopユーザ会/株式会社NTTデータ
© 2022 NTT DATA Corporation
© 2022 NTT DATA Corporation 2
Apache Bigtopの概要
© 2022 NTT DATA Corporation
• 公式サイト (https://bigtop.apache.org/) より:
• "Bigtop is an Apache Foundation project for Infrastructure
Engineers and Data Scientists looking for comprehensive
packaging, testing, and configuration of the leading open source
big data components."
• 『Bigtopは、先進的なビッグデータ関連OSSのパッケージングやテスト、
設定を求めているインフラエンジニアやデータサイエンティストのための
Apacheソフトウェア財団のプロジェクトです。』
• 一言で言うと「Hadoop・Spark を中心としたデータ基盤を容易に構築する
ための OSS」です。
Apache Bigtopとは何か
© 2022 NTT DATA Corporation
Apache Bigtop の歴史
2020
2019
2018
2017
2016
2015
2012
2011
Cloudera社からApacheソフトウェア財団(以下ASF)に、incubatorプロジェクトとして寄贈される
Apache incubator プロジェクトからトップレベルプロジェクトに昇格
Components 1.0.0 1.1.0 1.2.1 1.3.0 1.4.0 1.5.0
Ambari 2.5.0 2.6.1 2.6.1 2.6.1
Flink 1.1.3 1.4.2 1.6.4 1.6.4
Hadoop 2.6.0 2.7.1 2.7.3 2.8.4 2.8.5 2.10.1
HBase 0.98.12 0.98.12 1.1.9 1.3.2 1.3.2 1.5.0
Hive 1.0.0 1.2.1 1.2.1 2.3.3 2.3.3 2.3.6
Kafka 0.8.1.1 0.8.1.1 0.10.1.1 0.10.2.2 0.10.2.2 2.4.0
Spark 1.3.1 1.5.1 2.1.1 2.2.1 2.2.3 2.4.5
Zeppelin 0.5.6 0.7.2 0.7.3 0.7.3 0.8.2
Zookeeper 3.4.6 3.4.6 3.4.6 3.4.6 3.4.6 3.4.13
© 2022 NTT DATA Corporation
Apache Bigtop の歴史
2022
2021
Components 3.0.0 3.0.1 3.1.0 3.1.1 3.2.0
Ambari 2.7.5 2.7.5 2.7.5 2.7.5 2.7.5
Flink 1.11.3 1.11.6 1.11.6 1.11.6 1.15.0
Hadoop 3.2.2 3.2.2 3.2.3 3.2.4 3.3.4
HBase 2.2.6 2.2.6 2.4.8 2.4.8 2.4.13
Hive 3.1.2 3.1.2 3.1.2 3.1.2 3.1.3
Kafka 2.4.1 2.4.1 2.8.1 2.8.1 2.8.1
Spark 3.0.1 3.0.1 3.1.2 3.1.2 3.2.1
Zeppelin 0.9.0 0.10.0 0.10.0 0.10.0 0.10.1
Zookeeper 3.4.14 3.4.14 3.5.9 3.5.9 3.5.9
Log4Shell対応のパッチバージョンアップ
2022/10現在、
活発に開発中
© 2022 NTT DATA Corporation
Bigtop 3.1.1のソフトウェアスタック
コンポーネント バージョン 説明
Alluxio 2.4.1 ストレージ仮想化
Ambari 2.7.5 クラスタ構築・管理
Elasticsearch 5.6.14 全文検索エンジン
Flink 1.11.6 ストリーム処理系
GPDB 5.28.5 MPP
Hadoop 3.2.4
分散ファイルシステム・
並列分散処理基盤
HBase 2.4.8 分散KVS
Hive 3.1.2 Hadoop用クエリ処理系
Kafka 2.8.1 分散メッセージブローカ
Kibana 5.4.1 検索フロントエンド・データ可視化
Livy 0.7.1 Spark用RESTゲートウェイ
コンポーネント バージョン 説明
Logstash 5.4.1 ログ転送
Oozie 5.2.1 ジョブスケジューラ
Phoenix 5.1.0 HBase用クエリ処理系
Solr 8.11.1 全文検索エンジン
Spark 3.1.2
並列分散処理エンジン・
ストリーム処理系
Sqoop 1.4.7 バルクローダ
Tez 0.10.1 並列分散処理エンジン
YCSB 0.17.0 ベンチマークツール
Zeppelin 0.10.0 ノートブック
Zookeeper 3.5.9 分散コーディネーション
© 2022 NTT DATA Corporation
Bigtop 3.2のソフトウェアスタック(仮)
コンポーネント バージョン 説明
Alluxio 2.8.0 ストレージ仮想化
Ambari 2.7.5 クラスタ構築・管理
Elasticsearch dropped 全文検索エンジン
Flink 1.15.0 ストリーム処理系
GPDB 5.28.5 MPP
Hadoop 3.3.4
分散ファイルシステム・
並列分散処理基盤
HBase 2.4.13 分散KVS
Hive 3.1.3 Hadoop用クエリ処理系
Kafka 2.8.1 分散メッセージブローカ
Kibana dropped 検索フロントエンド・データ可視化
Livy 0.7.1 Spark用RESTゲートウェイ
コンポーネント バージョン 説明
Logstash dropped ログ転送
Oozie 5.2.1 ジョブスケジューラ
Phoenix 5.1.2 HBase用クエリ処理系
Ranger 2.3.0 セキュリティ
Solr 8.11.1 全文検索エンジン
Spark 3.2.1
並列分散処理エンジン・
ストリーム処理系
Sqoop dropped バルクローダ
Tez 0.10.1 並列分散処理エンジン
YCSB 0.17.0 ベンチマークツール
Zeppelin 0.10.1 ノートブック
Zookeeper 3.5.9 分散コーディネーション
※3.2 で削除されたコンポーネント
Elasticsearch, Logstash, Kibana, Sqoop
© 2022 NTT DATA Corporation
• ELKの削除:Elastic社のライセンス変更に伴い、ASFの配布物に最近のバージョンの
ElasticsearchやKibanaを含めることができなくなったため
• Apache Software License v2で定められている内容に加えて、さらに大きな制約を
課すようなライセンスはASFの配布物に含めることができない
(https://www.apache.org/legal/resolved.html#category-x)
• Sqoopの削除:バージョン1.4.7を最後に、2021年6月に開発を終了したため
• 開発が終了したASF傘下のプロジェクトは Apache Attic (https://attic.apache.org/)
にアーカイブされる
• Rangerの追加(予定)
• HDFS, YARN, Hive, HBase, Kafka などに対して粒度の細かい認証ルールを設定・一元
管理できる
• 2022/10時点ではrpmのみの対応なので、Bigtop 3.2に入るためにはdebパッケージへ
の対応や、デプロイ用のpuppet manifest, スモークテストの開発が必要 (鋭意開発中)
Bigtop 3.2 のソフトウェアスタックにおける主な変更点
© 2022 NTT DATA Corporation
• 2022/9時点ではまだ流動的
• Fedora 36のサポートを追加するか、追加する場合35のサポートを打ち切るか
• Ubuntu 22.04のサポートを追加するか、追加する場合18.04のサポートを打ち切るか
Bigtop 3.2の対応プラットフォーム
Linux distro Bigtop 3.1.x Bigtop 3.2.0
CentOS 7 7
Rocky Linux 8 8
Fedora 35 35, 36
Debian 10, 11 10, 11
Ubuntu
18.04, 20.04 18.04, 20.04,
22.04
CPU
アーキテクチャ
Bigtop 3.1.x Bigtop 3.2.0
x86_64 〇 〇
aarch64 〇 〇
ppc64le 〇(Rocky8を除く) 〇(Rocky8を除く)
© 2022 NTT DATA Corporation
© 2022 NTT DATA Corporation 10
Apache Bigtopの使い方
© 2022 NTT DATA Corporation
1. 要件を満たすソフトウェアの選定と、それらの間の相互運用性の確認
2. 選定したソフトウェアを(場合によっては大量の)サーバ群にインストールし、
それらのサーバ上で各製品を適切に設定
3. 設定を施したサーバ群が、クラスタとして正しく動作していることを確認
4. 必要に応じ、上記の手順をローカル環境やステージング環境で事前に確認
データ基盤構築の流れ
© 2022 NTT DATA Corporation
1. 要件を満たすソフトウェアの選定と、それらの間の相互運用性の確認
→相互運用性を確認済みの幅広いビッグデータ関連ソフトウェアを、debやrpmと
いったパッケージとして提供
2. 選定したソフトウェアを(場合によっては大量の)サーバ群にインストールし、
それらのサーバ上で各製品を適切に設定
→各ソフトウェアのデプロイを自動化するための Puppet マニフェストを提供
3. 設定を施したサーバ群が、クラスタとして正しく動作していることを確認
→各ソフトウェアの主要な機能が問題なく動作していることを確認するための、
スモークテストを提供
4. 必要に応じ、上記の手順をローカル環境やステージング環境で事前に確認
→Dockerコンテナにソフトウェアをデプロイし、スモークテストや試用が行える
Provisionerを提供
データ基盤構築のためにBigtopが提供する機能
© 2022 NTT DATA Corporation
1. 要件を満たすソフトウェアの選定と、それらの間の相互運用性の確認
→相互運用性を確認済みの幅広いビッグデータ関連ソフトウェアを、debやrpmと
いったパッケージとして提供
2. 選定したソフトウェアを(場合によっては大量の)サーバ群にインストールし、
それらのサーバ上で各製品を適切に設定
→各ソフトウェアのデプロイを自動化するための Puppet マニフェストを提供
3. 設定を施したサーバ群が、クラスタとして正しく動作していることを確認
→各ソフトウェアの主要な機能が問題なく動作していることを確認するための、
スモークテストを提供
4. 必要に応じ、上記の手順をローカル環境やステージング環境で事前に確認
→Dockerコンテナにソフトウェアをデプロイし、スモークテストや試用が行える
Provisionerを提供
データ基盤構築のためにBigtopが提供する機能
© 2022 NTT DATA Corporation
• Bigtop はコンポーネント間の相互運用性が確認されたバージョン同士の組合せを、deb/rpm形式の
パッケージとして提供している。これにより、以下のメリットがある。
• ユーザ側で、問題なく動作するバージョンの組合せを検証・特定しなくて済む
• Linux ディストリビューション標準のパッケージマネージャ (yum/dnf/apt) が使えることで、
• 標準化された手順でインストール・アンインストールを実施できる
• 依存しているソフトウェアも自動でインストールしてくれる
• インストールしたソフトを一元管理できる
• Bigtop では、以下の Linux ディストリビューション と CPU アーキテクチャをサポートしている
1. ビッグデータ関連OSSをパッケージとして提供
Linux ディストリ
ビューション
Bigtop 3.0.x Bigtop 3.1.x
CentOS 7, 8 7
Rocky Linux - 8
Fedora 33 35
Debian 9, 10 10, 11
Ubuntu 18.04, 20.04 18.04, 20.04
CPU
アーキテクチャ
Bigtop 3.0.x Bigtop 3.1.x
x86_64 〇 〇
aarch64 〇 〇
ppc64le 〇 〇(Rocky8を除く)
© 2022 NTT DATA Corporation
Bigtop の公式サイト (https://bigtop.apache.org/) から、以下のリンクを辿って取得
パッケージを公開しているリポジトリを利用するための設定ファイル
Linux ディストリビューション別に、
rpm 用の .repo ファイルや
deb 用の .list ファイルが
ダウンロード可能
© 2022 NTT DATA Corporation
• RPMパッケージを用いたコンポーネントのインストールは以下の3ステップ
パッケージのインストール手順 (CentOS/Fedora の場合)
$ sudo wget -P /etc/yum.repos.d -q ¥
https://dlcdn.apache.org/bigtop/bigtop-3.1.1/repos/centos-7/bigtop.repo
$ sudo rpm --import ¥
https://dlcdn.apache.org/bigtop/bigtop-3.1.1/repos/GPG-KEY-bigtop
$ sudo yum install hadoop
$ hadoop version
Hadoop 3.2.4
1. リポジトリ設定ファイルをダウンロード・配置
2. GPG キーをインポート
3. リポジトリ情報のアップデート・コンポーネントのインストール
© 2022 NTT DATA Corporation
$ sudo wget -P /etc/apt/sources.list.d -q ¥
https://dlcdn.apache.org/bigtop/bigtop-3.1.1/repos/ubuntu-20.04/bigtop.list
$ curl -s https://dlcdn.apache.org/bigtop/bigtop-3.1.1/repos/GPG-KEY-bigtop | ¥
sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install hadoop
$ hadoop version
Hadoop 3.2.4
• debパッケージを用いたコンポーネントのインストール手順も同様
パッケージのインストール手順 (Debian/Ubuntu の場合)
1. リポジトリ設定ファイルをダウンロード・配置
2. GPG キーをインポート
3. リポジトリ情報のアップデート・コンポーネントのインストール
© 2022 NTT DATA Corporation
1. 要件を満たすソフトウェアの選定と、それらの間の相互運用性の確認
→相互運用性を確認済みの幅広いビッグデータ関連ソフトウェアを、debやrpmと
いったパッケージとして提供
2. 選定したソフトウェアを(場合によっては大量の)サーバ群にインストールし、
それらのサーバ上で各製品を適切に設定
→各ソフトウェアのデプロイを自動化するための Puppet マニフェストを提供
3. 設定を施したサーバ群が、クラスタとして正しく動作していることを確認
→各ソフトウェアの主要な機能が問題なく動作していることを確認するための、
スモークテストを提供
4. 必要に応じ、上記の手順をローカル環境やステージング環境で事前に確認
→Dockerコンテナにソフトウェアをデプロイし、スモークテストや試用が行える
Provisionerを提供
データ基盤構築のためにBigtopが提供する機能
© 2022 NTT DATA Corporation
• パッケージの導入でインストール作業は省力化できたが、以下の問題は解決されていない
• サーバの台数が多い場合、1台1台インストールのコマンドを投入するのは大変
• パッケージのインストール後も、各ソフトウェアに適切な設定を施したり、サービスを
起動したりといった作業が必要
• Bigtop は Puppet マニフェストを提供することで、これらの作業を自動化
• Puppet (https://puppet.com/open-source/) はRubyで記述されたOSSの構成管理
ツールで、2005年から開発されており十分な実績がある
• Puppet manifest はシステムの「あるべき姿」を記述した設定ファイルで、この定義
に従って Puppet がパッケージのインストールや設定、サービスの起動などを行う
• Puppet は Hiera (https://puppet.com/docs/puppet/latest/hiera.html) というキー
バリュー型の設定管理システムを備える
• ユーザが Hiera ファイルに適切な値を設定して Puppet を実行することで、Puppet
が設定ファイルの対応する箇所に指定した値を設定してくれる
2. デプロイを自動化するための Puppet マニフェストの提供
© 2022 NTT DATA Corporation
• Bigtop の公式サイト (https://bigtop.apache.org/) から、以下のリンクを辿って取得
• apt・yumリポジトリの設定ファイルとは別に配布されている
• 後述するスモークテスト関連のファイルなども本ファイルに含まれる
Puppet マニフェストのダウンロード
© 2022 NTT DATA Corporation
• Puppet マニフェストを用いたコンポーネントのデプロイは、以下の4ステップ (次ページに続く)
Puppet マニフェストを用いたコンポーネントのデプロイ手順
$ curl -sLO https://dlcdn.apache.org/bigtop/bigtop-3.1.1/bigtop-3.1.1-project.tar.gz
$ tar xf bigtop-3.1.1-project.tar.gz
$ cd bigtop-3.1.1
$ sudo bigtop_toolchain/bin/puppetize.sh
$ vi bigtop-deploy/puppet/hieradata/site.yaml
$ cat bigtop-deploy/puppet/hieradata/site.yaml
---
bigtop::hadoop_head_node: "fqdn.of.head.node"
hadoop::hadoop_storage_dirs:
- /data
hadoop_cluster_node::cluster_components:
- hdfs
- yarn
- mapreduce
1. Bigtop の tarball をダウンロードし展開
2. 中に含まれるスクリプトを実行して Puppet をインストール
3. Hiera ファイルを編集。最低限必要な設定は左記の3つだが、
インストールするコンポーネントに応じて必要な設定を記述する。
• bigtop::hadoop_head_node: Hadoop のマスターノードの
FQDN
• hadoop::hadoop_storage_dirs: Hadoop のデータ格納
先ファイルパス
• hadoop_cluster_node::cluster_components:
インストールするコンポーネントのリスト。例では HDFS,
YARN, MapReduceをインストールしている。
© 2022 NTT DATA Corporation
Puppet マニフェストを用いたコンポーネントのデプロイ手順 (続き)
$ sudo cp -r bigtop-deploy/puppet/hiera* /etc/puppet
$ sudo puppet apply --parser future ¥
--modulepath=bigtop-deploy/puppet/modules:/etc/puppet/modules ¥
bigtop-deploy/puppet/manifests
(略)
Notice: Finished catalog run in 65.99 seconds
$ echo $?
0
$ sudo jps
7873 ResourceManager
8722 DataNode
8486 NodeManager
8922 Jps
8251 NameNode
7775 WebAppProxyServer
8159 JobHistoryServer
4. Hiera ファイル群を所定のパスにコピーし、Puppet を実行
※"--parser future"オプションはCentOS 7にのみ付与
※--modulepathオプションに指定している"/etc/puppet/modules"の部分は
ディストリビューションによって異なる(puppet moduleのインストール先を指定する)
※一連の手順を parallel-ssh (http://code.google.com/p/parallel-ssh/)
などを用いて実行することで、クラスタ内の全サーバでデプロイを行うことが可能
© 2022 NTT DATA Corporation
1. 要件を満たすソフトウェアの選定と、それらの間の相互運用性の確認
→相互運用性を確認済みの幅広いビッグデータ関連ソフトウェアを、debやrpmと
いったパッケージとして提供
2. 選定したソフトウェアを(場合によっては大量の)サーバ群にインストールし、
それらのサーバ上で各製品を適切に設定
→各ソフトウェアのデプロイを自動化するための Puppet マニフェストを提供
3. 設定を施したサーバ群が、クラスタとして正しく動作していることを確認
→各ソフトウェアの主要な機能が問題なく動作していることを確認するための、
スモークテストを提供
4. 必要に応じ、上記の手順をローカル環境やステージング環境で事前に確認
→Dockerコンテナにソフトウェアをデプロイし、スモークテストや試用が行える
Provisionerを提供
データ基盤構築のためにBigtopが提供する機能
© 2022 NTT DATA Corporation
• コンポーネントのデプロイが完了したら、それらの主要な機能が問題なく動作していること
を確かめたい
• そのために Bigtop は、各コンポーネントのスモークテストを提供している
3. 各コンポーネントの動作確認のためのスモークテストの提供
© 2022 NTT DATA Corporation
スモークテストの実行方法
• スモークテストの実行は以下の3ステップ。
$ curl -sLO https://downloads.apache.org/bigtop/bigtop-3.1.1/bigtop-3.1.1-project.tar.gz
$ tar xf bigtop-3.1.1-project.tar.gz
$ cd bigtop-3.1.1
$ . /usr/lib/bigtop-utils/bigtop-detect-javahome
$ export HADOOP_CONF_DIR=/etc/hadoop/conf
$ ./gradlew bigtop-tests:smoke-tests:yarn:test -Psmoke.tests --info
org.apache.bigtop.itest.hadoop.yarn.TestNode > testNodeBasic STANDARD_OUT
-list
-status
org.apache.bigtop.itest.hadoop.yarn.TestRmAdmin > testRmAdminBasic STANDARD_OUT
-help
-getGroups
...
1. Bigtop の tarball をダウンロードし展開
(前の節で使用したものと同じファイル)
2. JAVA_HOME, およびテストの実行に必要な環境変数の
定義. (コンポーネントごとに必要な環境変数は異なる。確認
するには展開したファイルの bigtop-tests/smoke-tests/
コンポーネント名/build.gradle の doFirst メソッドを参照)
3. Gradle wrapper からスモークテストを実行。
ここでは YARN のテストを行っている。
© 2022 NTT DATA Corporation
スモークテストの実行方法 (続き)
Gradle Test Executor 2 finished executing tests.
> Task :bigtop-tests:smoke-tests:yarn:test
Finished generating test XML results (0.009 secs) into: /home/vagrant/bigtop-
3.1.1/bigtop-tests/smoke-tests/yarn/build/test-results/test
Generating HTML test report...
Finished generating test html results (0.02 secs) into: /home/vagrant/bigtop-
3.1.1/bigtop-tests/smoke-tests/yarn/build/reports/tests/test
Now testing...
:bigtop-tests:smoke-tests:yarn:test (Thread[Execution worker for ':',5,main])
completed. Took 7.453 secs.
BUILD SUCCESSFUL in 53s
スモークテストに成功
テストの詳細な結果を知りたい場合は
これらのファイルを参照
© 2022 NTT DATA Corporation
スモークテスト実行結果のサンプル
© 2022 NTT DATA Corporation
1. 要件を満たすソフトウェアの選定と、それらの間の相互運用性の確認
→相互運用性を確認済みの幅広いビッグデータ関連ソフトウェアを、debやrpmと
いったパッケージとして提供
2. 選定したソフトウェアを(場合によっては大量の)サーバ群にインストールし、
それらのサーバ上で各製品を適切に設定
→各ソフトウェアのデプロイを自動化するための Puppet マニフェストを提供
3. 設定を施したサーバ群が、クラスタとして正しく動作していることを確認
→各ソフトウェアの主要な機能が問題なく動作していることを確認するための、
スモークテストを提供
4. 必要に応じ、上記の手順をローカル環境やステージング環境で事前に確認
→Dockerコンテナにソフトウェアをデプロイし、スモークテストや試用が行える
Provisionerを提供
データ基盤構築のためにBigtopが提供する機能
© 2022 NTT DATA Corporation
• いきなり商用環境にデータ基盤を構築する前に、ローカルやステージング環境で
確認したいケースは多々ある
• Bigtop に含まれるコンポーネントで業務上・システム上の要件を満たせるか、
事前に検証したい
• 構築手順が正しいことを事前に確認したい
• ソフトウェアをバージョンアップすることで、既存のアプリケーションが問題
なく動作するか確認したい、など
• このため、Bigtop は Docker コンテナ上にコンポーネントをデプロイできる
Provisioner と呼ばれる機能を提供している
• 事前に Docker, Docker Compose がインストールされ、Gradle wrapper を
実行するユーザから使えるよう設定されている必要がある
4. Docker コンテナ上でデプロイやテストを行うための Provisioner の提供
© 2022 NTT DATA Corporation
Docker provisioner の使用方法
$ ./gradlew docker-provisioner -Pnum_instances=3 -POS=centos-7 -Pprefix=3.1.1 -Pstack=hdfs,yarn
...
Pulling bigtop (bigtop/puppet:3.1.1-centos-7)...
3.1.1-centos-7: Pulling from bigtop/puppet
Digest: sha256:42f20509d1b9460b753b70f6e21882699de3a488f93af28375c466181bc8727a
Status: Downloaded newer image for bigtop/puppet:3.1.1-centos-7
Creating 20220929_115113_r20838_bigtop_1 ... done
Creating 20220929_115113_r20838_bigtop_2 ... done
Creating 20220929_115113_r20838_bigtop_3 ... done
...
Notice: Roles to deploy: [resourcemanager, nodemanager, mapred-app, hadoop-client, namenode, datanode]
Notice: Roles to deploy: [nodemanager, mapred-app, datanode]
Notice: Roles to deploy: [nodemanager, mapred-app, datanode]
...
Notice: Finished catalog run in 231.67 seconds
BUILD SUCCESSFUL in 4m 39s
3台の Docker コンテナ上 (OS は CentOS 7) に Bigtop
3.1.1 の HDFS, YARN をインストールするコマンドを実行
(ローカルに存在しなければ) Bigtop 3.1.1 の
CentOS 7 イメージが pull され、そのイメージから
コンテナが作成される
指定したコンポーネントの Puppet マニフェストを
使って、コンテナ上へのデプロイが実行される
© 2022 NTT DATA Corporation
Docker provisioner の使用方法 (続き)
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6df7279c442e bigtop/puppet:3.1.1-centos-7 "/sbin/init" 4 minutes ago Up 4 minutes
20220929_115113_r20838_bigtop_3
a37ba6399273 bigtop/puppet:3.1.1-centos-7 "/sbin/init" 4 minutes ago Up 4 minutes
20220929_115113_r20838_bigtop_2
850c8ce4785a bigtop/puppet:3.1.1-centos-7 "/sbin/init" 4 minutes ago Up 4 minutes
20220929_115113_r20838_bigtop_1
$ docker exec -it 20220929_115113_r20838_bigtop_1 bash
[root@850c8ce4785a /]# jps
2416 Jps
1528 JobHistoryServer
1676 NodeManager
1212 ResourceManager
2156 DataNode
1086 WebAppProxyServer
1951 NameNode
[root@850c8ce4785a /]# exit
$ ./gradlew docker-provision-destroy
...
BUILD SUCCESSFUL in 14s
1 actionable task: 1 executed
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
`docker exec` で任意のコマンドをコンテナ上で実行可能
プロビジョニングしたコンテナは、通常通り
`docker ps` コマンドで確認できる
別のクラスタを起動する前には、既存のクラスタを破棄する必要がある
© 2022 NTT DATA Corporation
• あ
Docker provisioner の使用方法 (続き)
$ ./gradlew tasks
...
Deployment tasks
----------------
docker-provisioner -
Provision a Bigtop stack cluster on Docker container(s). Default to CentOS and 1 node.
Properties:
-Pconfig=[CONFIG_FILE] (located under provisioner/docker/)
-Penable_local_repo
-Pimage=[DOCKER_IMAGE] (overwrites -POS and -Pprefix)
-Pmemory=[4g|8g|...]
-Pnum_instances=[NUM_INSTANCES]
-Pnexus=[NEXUS_URL] (NEXUS_URL is optional)
-POS=[centos-7|fedora-35|debian-10|ubuntu-18.04|opensuse-42.3]
-Pprefix=[trunk|1.2.1|1.2.0|1.1.0|...]
-Prepository=[REPO_URL]
-Prun_smoke_tests (run test components defined in config file)
-Psmoke_tests=[COMPONENTS]
-Pstack=[COMPONENTS]
...
Docker provisioner はオプションが多いため
`./gradlew tasks` コマンドで一覧を確認
© 2022 NTT DATA Corporation
© 2022 NTT DATA Corporation 33
プラットフォームと互換性
© 2022 NTT DATA Corporation
BigtopがサポートするのはLinuxの主要ディストリビューション
Hadoopは(実態上/実用上)Linux前提
主要部分はJava: 多くのプラットフォームで動く
CLIはbash (>=3.0): 多くのプラットフォームで動く
Windows用のhadoop.cmdも存在するがもうメンテされていない
libhadoop.so: Cで実装 (JNI経由で呼び出される)
オプショナルな機能や性能向上を提供
Linuxのシステムコール前提
Hadoopの開発者はUbuntu on x86_64が多数派(という印象)
HadoopのCI環境のDockerイメージもUbuntu on x86_64
それ以外のプラットフォーム(RHEL系、aarch、ppc64le)の問題は見落とされがち
Linux
© 2022 NTT DATA Corporation
Hadoopプロジェクト配布版binary tarballにもlibhadoop.soは入っている
どのLinuxでも動くわけではない
# ASFの正式なリリースはあくまでsource tarball
# binary tarballはある環境でビルドしたものをおまけ的に提供
# Hadoop 3.2.2の場合Ubuntu 16.04でビルドしたもの
nativeライブラリのポータビリティ
$ hadoop checknative
Native library checking:
hadoop: false
zlib: false
...
$ ldd libhadoop.so
./libhadoop.so: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./libhadoop.so)
linux-vdso.so.1 => (0x00007ffc0959f000)
...
nativeライブラリが使えない状態:
© 2022 NTT DATA Corporation
パッケージング対象プロダクトの大半はJava/JVM言語で実装
Bigtop(3.2)は各種Linuxディストリビューション提供のOpenJDK 8を利用
Hadoop >= 3.3.0 は実行環境としてJava 11に対応
Hadoop開発環境のJava 11への(完全)移行は難航...
Jerseyのupgradeがblocker(HADOOP-15984)
Java
© 2022 NTT DATA Corporation
公開APIと内部向けAPIの分離が不完全
モジュール間で参照するためにpublicなクラス/メソッド
下流のプロダクトがテストのために内部APIを利用
Hadoopのソースツリーから分離独立したプロダクトの存在
各プロダクトの開発者は、他のプロダクトを意識しきれない
プロダクトXの内部APIを変更すると、Xに依存するプロダクトYのビルドが壊れたりしがち
公開APIを示すためのアノテーションはある(が強制力はない)
@InterfaceAudience.PublicなものだけJavadocが出力される
@InterfaceAudience.Privateだとマイナーバージョンアップでも変更されうる
JavaのAPI
@InterfaceAudience.LimitedPrivate({ "MapReduce", "HBase" })
@InterfaceStability.Unstable
public class DistributedFileSystem extends FileSystem
implements KeyProviderTokenIssuer, BatchListingOperations {
InterfaceAudienceアノテーションの例:
© 2022 NTT DATA Corporation
同一パッケージ名、同一クラス名のライブラリを複数バージョン混在させることは不可能
ダメなパターンの例:
プロダクトXがプロダクトYに依存
プロダクトXがhoge-1.0に依存し、hoge-1.5に無いAPIを利用
プロダクトYがhoge-1.5に依存し、hoge-1.0に無いAPIを利用
汎用的なライブラリは特にプロダクト間で競合しがち
SLF4J, Log4j
commons-logging, commons-cli, commons-httpclient
Jackson
Guava
Netty, Jetty, Jersey
protobuf-java
ZooKeeper, Curator
脆弱性対応のために依存ライブラリをアップグレードすると、非互換な変更が入ることも
Javaライブラリの依存関係
© 2022 NTT DATA Corporation
ちゃんと機能するプロダクトのバージョンの組み合わせは限られる
Bigtopは「機能するバージョンの組み合わせ」を選定
場合によってはパッチをあてて辻褄を合わせる
CPUアーキテクチャ、OSディストリビューションごとの調整も必要
Bigtopはそれぞれの環境でビルドしてパッケージングしてテストする仕組みを提供
Bigtopの役割
© 2022 NTT DATA Corporation
© 2022 NTT DATA Corporation 40
Bigtopの基本素材
© 2022 NTT DATA Corporation
ソースコードはGitHubにある
ASF(Apache Software Foundation)のプロジェクト全般
# 2019年4月から
# https://blogs.apache.org/foundation/entry/the-apache-software-foundation-expands
開発の管理はJIRA
https://issues.apache.org/jira/projects/BIGTOP
issueを作ってパッチを添付するかpull requestのリンクを貼る
Bigtopのソースコード
$ git clone https://github.com/apache/bigtop
$ cd bigtop
Bigtopのソースコードの取得:
© 2022 NTT DATA Corporation
Gradleを利用して各種処理を実行する
Bigtopのタスク
$ ./gradlew tasks
> Task :tasks
------------------------------------------------------------
Tasks runnable from root project - Bigtop
------------------------------------------------------------
Apache Creadur tasks
--------------------
rat - Runs Apache Rat checks
Build tasks
-----------
assemble - Assembles the outputs of this project.
...
タスク一覧の表示:
© 2022 NTT DATA Corporation
部品表: 対象プロダクトとそのバージョンなどが記述されている
GroovyのConfigSlurperの書式
Bigtop BOM
$ cat bigtop.bom
bigtop { // *the name should be change: the parsing code depends on it*
version = "STACK-VERSION" // *required*
stack { // *required* Fundamental properties of the Stack: JDK, SDK, GDK, etc
'jdk' { version = '1.8'; version_base = version }
'scala' { version = '2.10.4'; version_base = version }
}
...
components {
'hadoop' {
name = 'hadoop'
relNotes = 'Apache Hadoop'
version { base = '3.2.2'; pkg = base; release = 1 }
tarball { destination = "${name}-${version.base}.tar.gz"
source = "${name}-${version.base}-src.tar.gz" }
url { download_path = "/$name/common/$name-${version.base}"
site = "${apache.APACHE_MIRROR}/${download_path}"
archive = "${apache.APACHE_ARCHIVE}/${download_path}" }
}
© 2022 NTT DATA Corporation
© 2022 NTT DATA Corporation 44
Bigtop toolchain
© 2022 NTT DATA Corporation
プロダクト群をビルドするための環境をセットアップする資材
Puppetをインストールするスクリプト
ビルドツール群をインストールPuppetマニフェスト
JDK, Maven, GCC, CMake, Protocol Buffers, lib*-devel, ...
OS提供パッケージだとバージョンが合わないものは個別にセットアップ
プラットフォーム差分に対応するためのワークアラウンドも提供
例) aarch64対応のバックポートパッチを当ててprotobuf-2.5.0をビルド
bigtop_toolchain
$ sudo bigtop_toolchain/bin/puppetize.sh
$ ./gradlew toolchain
bigtop_toolchainによるビルド環境のセットアップ:
© 2022 NTT DATA Corporation
最近のHadoopやHBaseはprotobuf-maven-pluginを利用
protocのバイナリが自動的にダウンロードされる
バイナリが未提供のプラットフォーム/バージョンではうまくいかない
com.google.protobuf:protoc < 3.5.0 ではaarch64用バイナリが未提供
com.google.protobuf:protoc < 3.7.0 ではppcle64バイナリが未提供
Hadoop 3.3.0でprotobuf-2.5.0からprotobuf-3.7.1に移行
だがしかしTezはまだprotobuf-2.5.0を利用
protobuf-maven-plugin
if [ $HOSTTYPE = "powerpc64le" ] ; then
mvn install:install-file -DgroupId=com.google.protobuf -DartifactId=protoc -Dversion=2.5.0 ¥
-Dclassifier=linux-ppcle_64 -Dpackaging=exe -Dfile=/usr/local/bin/protoc
mvn install:install-file -DgroupId=com.google.protobuf -DartifactId=protoc -Dversion=3.5.1-1 ¥
-Dclassifier=linux-ppcle_64 -Dpackaging=exe -Dfile=/usr/local/protobuf-3.5.1.1/bin/protoc
fi
if [ $HOSTTYPE = "aarch64" ] ; then
mvn install:install-file -DgroupId=com.google.protobuf -DartifactId=protoc -Dversion=2.5.0 ¥
-Dclassifier=linux-aarch_64 -Dpackaging=exe -Dfile=/usr/local/bin/protoc
fi
do-component-build内でローカルビルドしたprotocからアーティファクトをインストール:
© 2022 NTT DATA Corporation
© 2022 NTT DATA Corporation 47
Bigtop packaging
© 2022 NTT DATA Corporation
プロダクトをビルドしてパッケージングする
「プロダクト名-pkg」というGradleタスクで実行
.rpmと.debの2種類に対応
その環境に応じたパッケージが作られる
Red Hat系なら.rpm
Debian系なら.deb
bigtop-package
$ ./gradlew hadoop-pkg
$ ./gradlew zookeeper-pkg
$ ./gradlew bigtop-jsvc-pkg bigtop-utils-pkg bigtop-groovy-pkg
パッケージングタスクの実行例:
© 2022 NTT DATA Corporation
共通のビルド手順とインストール手順を.debと.rpm用の資材から呼び出して使う
ビルド手順: do-component-build
インストール手順: install_プロダクト名.sh
パッケージング資材
bigtop-packages
├── src
│ ├── common
│ │ ├── hadoop
│ │ │ ├── do-component-build
│ │ │ ├── install_hadoop.sh
│ │
│ ├── deb
│ │ ├── hadoop
│ │ │ ├── control
│ │ │ ├── rules
│ │
│ ├── rpm
│ │ ├── hadoop
│ │ │ ├── SPECS
│ │ │ │ ├── hadoop.spec
パッケージング資材の配置:
© 2022 NTT DATA Corporation
パッケージング時にpatch.*diffという名前のパッチファイルを適用
各プロダクトのリリース版そのままでは解決できない問題に対応
特定プラットフォームでビルドが失敗する問題への対処
パッケージング対象バージョンに含まれない修正のバックポート
互換性を壊す変更のrevert
プロダクト間のdependenciesのつじつま合わせ
patchを書いたらなるべく本家にfeedback
Bigtopパッケージングにおけるパッチ適用
$ find bigtop-packages/src/common/hadoop -name 'patch*.diff' | sort
bigtop-packages/src/common/hadoop/patch0-revert-HADOOP-16598.diff
bigtop-packages/src/common/hadoop/patch1-HADOOP-15939.diff
bigtop-packages/src/common/hadoop/patch2-exclude-spotbugs-annotations.diff
bigtop-packages/src/common/hadoop/patch3-fix-broken-dir-detection.diff
Bigtopが適用するpatchの例:
© 2022 NTT DATA Corporation
$BIGTOP_HOME/output 下に出力されるパッケージファイルでリポジトリを作成する
repoタスクで実行
その環境に応じたリポジトリが作られる (Red Hat系ならYumの、Debian系ならAptの)
パッケージリポジトリの作成
$ ./gradlew repo
$ tree output
...
├── hadoop
│ ├── hadoop-3.2.2-1.el8.src.rpm
│ └── x86_64
│ ├── hadoop-3.2.2-1.el8.x86_64.rpm
│ ├── hadoop-client-3.2.2-1.el8.x86_64.rpm
│ ├── hadoop-conf-pseudo-3.2.2-1.el8.x86_64.rpm
...
│ ├── hadoop-hdfs-3.2.2-1.el8.x86_64.rpm
...
├── repodata
...
│ ├── aa0ff69b812187315d6825fcf7d862c326ac1ba42bf9625e57b826cd6462a68c-filelists.xml.gz
│ ├── cb8d35ada5c22a89e1f65a62229acde45b4175d5281a513fc6e1190d0ce4544c-filelists.sqlite.bz2
│ ├── f2077b7afd203a11428c21ca3c41f02a786fc2f514888274f12f514673d4f88f-primary.xml.gz
│ └── repomd.xml
リポジトリの作成(CentOS 8で実行した場合の例):
© 2022 NTT DATA Corporation
「プロダクト名-pkg-ind」というGradleタスクで実行(in Docker container)
ひとつの環境で全OSディストリビューションのパッケージをビルドできる
Docker Hubのbigtop/slavesのイメージを利用
-POS=centos-7 -Pprefix=trunkだとtrunk-centos-7タグになる(x86_64の場合)
CPUアーキテクチャはホスト環境に応じて決まる
aarch64のマシン上でやるとtrunk-centos-7-aarch64タグ
毎回ライブラリをすべてダウンロードすると遅い(BIGTOP-3801)
-Pmvn-cache-volume=trueでローカルリポジトリをvolumeに保存して再利用
repo-indタスクは、repoタスクをDockerコンテナで実行
Docker provisioner(後述)と組み合わせてテストに利用
Dockerコンテナを利用したパッケージング
$ ./gradlew hadoop-pkg-ind -POS=centos-7 -Pprefix=trunk -Pmvn-cache-volume=true
$ ./gradlew repo-ind -POS=centos-7 -Pprefix=trunk
パッケージングタスクの実行例:
© 2022 NTT DATA Corporation
© 2022 NTT DATA Corporation 53
Bigtop provisioning
© 2022 NTT DATA Corporation
Dockerコンテナを起動してPuppetでクラスタを構築するスクリプト
事前にDockerとdocker-composeのセットアップが必要
./gradlew docker-provisionerで実行できる(がスクリプトを直接使った方が微妙に便利..)
Docker provisioner
$ cd provisioner/docker
$ ./docker-hadoop.sh ¥
--create 3 ¥
--image bigtop/puppet:trunk-centos-8 ¥
--memory 8g ¥
--stack hdfs,yarn,mapreduce ¥
--repo file:///bigtop-home/output ¥
--disable-gpg-check
$ ./docker-hadoop.sh --list
Name Command State Ports
------------------------------------------------------------
20210124_122554_r12819_bigtop_1 /sbin/init Up
20210124_122554_r12819_bigtop_2 /sbin/init Up
20210124_122554_r12819_bigtop_3 /sbin/init Up
$ ./docker-hadoop.sh --exec 1 /bin/bash
...
Dockerコンテナを利用したデプロイの例:
© 2022 NTT DATA Corporation
docker-hadoop.sh --createで出力されたファイルを見ると参考になる
Bigtopのソースツリーを/bigtop-homeにマウント
Hieraの設定を生成してpuppet apply
Docker provisionerの仕組み
$ cat docker-compose.yml
bigtop:
...
volumes:
- ../../:/bigtop-home
- ./config/hiera.yaml:/etc/puppet/hiera.yaml
- ./config/hieradata:/etc/puppet/hieradata
- ./config/hosts:/etc/hosts
- /sys/fs/cgroup:/sys/fs/cgroup:ro
$ cat config/hieradata/site.yaml
bigtop::hadoop_head_node: b2d614be6039.bigtop.apache.org
hadoop::hadoop_storage_dirs: [/data/1, /data/2]
bigtop::bigtop_repo_uri: file:///bigtop-home/output
bigtop::bigtop_repo_gpg_check: false
hadoop_cluster_node::cluster_components: [hdfs,yarn,mapreduce]
hadoop_cluster_node::cluster_nodes: [172.17.0.3, 172.17.0.4, 172.17.0.2]
...
Docker provisionerの設定ファイル(の一部):
© 2022 NTT DATA Corporation
Hadoopクラスタを構築するためのPuppetマニフェスト
Docker provisioner抜きで使うこともできる
bigtop-deploy
$ tree bigtop-deploy/puppet
bigtop-deploy/puppet
├── hieradata
│ ├── bigtop
│ │ ├── cluster.yaml
...
│ └── site.yaml
├── hiera.yaml
├── manifests
│ ├── bigtop_repo.pp
│ ├── cluster.pp
...
│ ├── hadoop
...
│ │ ├── manifests
│ │ │ └── init.pp
│ │ └── templates
│ │ ├── container-executor.cfg
│ │ ├── core-site.xml
...
Puppetマニフェストのファイルツリー:
© 2022 NTT DATA Corporation
スクリプト経由でコンテナ停止と、一時ファイル等の削除
クラスタ起動中の問題などでやり直す場合も、まず一度--destroyしてから
Dockerクラスタの終了
$ ./docker-hadoop.sh --destroy
Dockerコンテナクラスタの停止:
© 2022 NTT DATA Corporation
© 2022 NTT DATA Corporation 58
Bigtop tests
© 2022 NTT DATA Corporation
パッケージをデプロイした状態で動くかざっくり確認するためのテスト
おもにGroovyで書かれている
CLIを実行して期待する出力が得られるかを確認というパターンが多い
smoke-tests
$ cat bigtop-tests/test-artifacts/hadoop/src/main/groovy/.../hdfs/TestTextSnappy.groovy
...
@Test
void testTextSnappy() {
String cmd = "hadoop fs -text ${testDir}/${snappyFileName}"
System.out.println(cmd)
sh.exec(cmd)
String output = sh.getOut().join("¥n")
logError(sh)
String expected = "1¥trafferty¥t31¥n2¥tjones¥t33¥n3¥tsteinberg¥t33"
System.out.println("Expected output:¥n${expected}")
System.out.println("Actual output:¥n${output}")
assertEquals("Incorrect output", expected, output)
}
smoke-testsのテストケースの例:
© 2022 NTT DATA Corporation
Docker provisionerで起動したクラスタ上でテストを実行できる
やっていることはgradleタスクの実行
--smoke-test hdfs だと bigtop-tests:smoke-tests:hdfs:test タスク
Docker provisionerでtestを実行
$ ./docker-hadoop.sh --smoke-tests hdfs,yarn,mapreduce
起動済みのDockerコンテナを利用してsmoke testsを実行:
© 2022 NTT DATA Corporation
© 2022 NTT DATA Corporation 61
開発コミュニティの動向
© 2022 NTT DATA Corporation
Bigtop 3.0のリリース以降、Contributorは増えた印象
Bigtop 3.1のリリース後に深刻な問題の報告(BIGTOP-3714)があり、3.1.1をリリースした
Committer/PMC memberは微増
Apache Ambari(後述)の活動停止と活動再開が大きなトピック
Bigtopの開発コミュニティ
© 2022 NTT DATA Corporation
Hadoopエコシステムのプロビジョニング/運用管理ツール
旧Hortonworks社が開発を主導
旧Hortonworks社のHadoopディストリビューション(HDP)が前提
BigtopはAmbariをパッケージングしているが、mpackは(ほとんど)未提供
Cloudera社とHortonworks社との合併(2019)以降、開発は停止
Cloudera Managerと競合/重複するプロダクトのため
HDPのパッケージやソースコードも非公開化 (有償サブスクリプションが必須)
ASFの開発プロジェクトはAtticに移動(2022/01): https://attic.apache.org
活動休止したプロジェクトの情報を提供
過去のリリース等の資材やWebサイトは残り、ソースコードはリードオンリー化
Ambari利用企業の開発者が参加し活動再開(2022/09)
デフォルトスタックをHDPからBigtopに変更
Bigtopの既存mpack定義はAmbari側に移行
Apache Ambari
© 2022 NTT DATA Corporation
3.3系(branch-3.3)、3.2系(branch-3.2)、2.10系(branch-2.10)を維持
3.3.4、3.2.4、2.10.2がそれぞれの最新版
3.3系はセキュリティfixのみを取り込んだリリースを時々出す方向
3.2系、2.10系へのバックポートは減少傾向
3.4.0(trunk)のリリース時期は未だ未定
1000以上の(fixed in 3.4.0 onlyな)修正がある
transitive dependenciesの変更が大きい
downstream productsに影響する可能性が高い
Java 11への(完全)移行は難航
Hadoopの開発コミュニティ
© 2022 NTT DATA Corporation
© 2022 NTT DATA Corporation 65
おわりに
© 2022 NTT DATA Corporation
BigtopはHadoopエコシステムのプロダクトの「使える組み合わせ」を提供
Bigtop 3.2はHadoop 3.3系をパッケージングする最初のリリース
Bigto 3.2の主要プロダクトのバージョンアップ作業は(だいたい)完了
BigtopはAmbariのデフォルトスタックになる予定
おわりに
© 2022 NTT DATA Corporation
本資料に記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です。

Weitere ähnliche Inhalte

Was ist angesagt?

大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...NTT DATA Technology & Innovation
 
Cassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlCassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlYutuki r
 
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)NTT DATA OSS Professional Services
 
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...NTT DATA Technology & Innovation
 
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料) 40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料) hamaken
 
Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-Yuki Gonda
 
Hadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイントHadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイントCloudera Japan
 
RDB開発者のためのApache Cassandra データモデリング入門
RDB開発者のためのApache Cassandra データモデリング入門RDB開発者のためのApache Cassandra データモデリング入門
RDB開発者のためのApache Cassandra データモデリング入門Yuki Morishita
 
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)NTT DATA Technology & Innovation
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界Yoshinori Nakanishi
 
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説Masahiko Sawada
 
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~NTT DATA OSS Professional Services
 
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Yuki Morishita
 

Was ist angesagt? (20)

大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
 
Oracle Data Guard による高可用性
Oracle Data Guard による高可用性Oracle Data Guard による高可用性
Oracle Data Guard による高可用性
 
Cassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlCassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sql
 
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦
 
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
 
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
Hadoop/Spark を使うなら Bigtop を使い熟そう! ~並列分散処理基盤のいま、から Bigtop の最近の取り組みまで一挙ご紹介~(Ope...
 
Apache Hadoopの未来 3系になって何が変わるのか?
Apache Hadoopの未来 3系になって何が変わるのか?Apache Hadoopの未来 3系になって何が変わるのか?
Apache Hadoopの未来 3系になって何が変わるのか?
 
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料) 40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
 
Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-
 
Hadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイントHadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイント
 
RDB開発者のためのApache Cassandra データモデリング入門
RDB開発者のためのApache Cassandra データモデリング入門RDB開発者のためのApache Cassandra データモデリング入門
RDB開発者のためのApache Cassandra データモデリング入門
 
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
 
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説
 
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
 
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編
 
Hive on Tezのベストプラクティス
Hive on TezのベストプラクティスHive on Tezのベストプラクティス
Hive on Tezのベストプラクティス
 

Ähnlich wie Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)

Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osakaNaotaka Jay HOTTA
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)NTT DATA Technology & Innovation
 
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...Insight Technology, Inc.
 
Prometheus超基礎公開用.pdf
Prometheus超基礎公開用.pdfPrometheus超基礎公開用.pdf
Prometheus超基礎公開用.pdf勇 黒沢
 
DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)
DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)
DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)VirtualTech Japan Inc.
 
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座Masahito Zembutsu
 
Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)Yasuhiro Arai
 
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC EnterpriseYusukeKuramata
 
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)日本マイクロソフト株式会社
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストールYasuhiro Arai
 
20190516_DLC10_PGStrom
20190516_DLC10_PGStrom20190516_DLC10_PGStrom
20190516_DLC10_PGStromKohei KaiGai
 
Hadoopの紹介
Hadoopの紹介Hadoopの紹介
Hadoopの紹介bigt23
 
【ウェブセミナー】マネージドな 100% OSS アナリティクス プラットフォーム HDInsight の最新事情
【ウェブセミナー】マネージドな 100% OSS アナリティクス プラットフォーム HDInsight の最新事情【ウェブセミナー】マネージドな 100% OSS アナリティクス プラットフォーム HDInsight の最新事情
【ウェブセミナー】マネージドな 100% OSS アナリティクス プラットフォーム HDInsight の最新事情Hideo Takagi
 
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)NTT DATA Technology & Innovation
 
Data Factory V2 新機能徹底活用入門
Data Factory V2 新機能徹底活用入門Data Factory V2 新機能徹底活用入門
Data Factory V2 新機能徹底活用入門Keisuke Fujikawa
 
[db tech showcase Tokyo 2015] D13:PCIeフラッシュで、高可用性高性能データベースシステム?! by 株式会社HGSTジ...
[db tech showcase Tokyo 2015] D13:PCIeフラッシュで、高可用性高性能データベースシステム?! by 株式会社HGSTジ...[db tech showcase Tokyo 2015] D13:PCIeフラッシュで、高可用性高性能データベースシステム?! by 株式会社HGSTジ...
[db tech showcase Tokyo 2015] D13:PCIeフラッシュで、高可用性高性能データベースシステム?! by 株式会社HGSTジ...Insight Technology, Inc.
 
20210731_OSC_Kyoto_PGStrom3.0
20210731_OSC_Kyoto_PGStrom3.020210731_OSC_Kyoto_PGStrom3.0
20210731_OSC_Kyoto_PGStrom3.0Kohei KaiGai
 
Lagopus Router v19.07.1
Lagopus Router v19.07.1Lagopus Router v19.07.1
Lagopus Router v19.07.1Tomoya Hibi
 

Ähnlich wie Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料) (20)

Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osaka
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...
[db tech showcase OSS 2017] A24: マイクロソフトと OSS Database - Azure Database for M...
 
Prometheus超基礎公開用.pdf
Prometheus超基礎公開用.pdfPrometheus超基礎公開用.pdf
Prometheus超基礎公開用.pdf
 
DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)
DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)
DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)
 
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
 
Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)
 
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
 
コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -
 
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(後編)
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストール
 
20190516_DLC10_PGStrom
20190516_DLC10_PGStrom20190516_DLC10_PGStrom
20190516_DLC10_PGStrom
 
Hadoopの紹介
Hadoopの紹介Hadoopの紹介
Hadoopの紹介
 
【ウェブセミナー】マネージドな 100% OSS アナリティクス プラットフォーム HDInsight の最新事情
【ウェブセミナー】マネージドな 100% OSS アナリティクス プラットフォーム HDInsight の最新事情【ウェブセミナー】マネージドな 100% OSS アナリティクス プラットフォーム HDInsight の最新事情
【ウェブセミナー】マネージドな 100% OSS アナリティクス プラットフォーム HDInsight の最新事情
 
141030ceph
141030ceph141030ceph
141030ceph
 
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
 
Data Factory V2 新機能徹底活用入門
Data Factory V2 新機能徹底活用入門Data Factory V2 新機能徹底活用入門
Data Factory V2 新機能徹底活用入門
 
[db tech showcase Tokyo 2015] D13:PCIeフラッシュで、高可用性高性能データベースシステム?! by 株式会社HGSTジ...
[db tech showcase Tokyo 2015] D13:PCIeフラッシュで、高可用性高性能データベースシステム?! by 株式会社HGSTジ...[db tech showcase Tokyo 2015] D13:PCIeフラッシュで、高可用性高性能データベースシステム?! by 株式会社HGSTジ...
[db tech showcase Tokyo 2015] D13:PCIeフラッシュで、高可用性高性能データベースシステム?! by 株式会社HGSTジ...
 
20210731_OSC_Kyoto_PGStrom3.0
20210731_OSC_Kyoto_PGStrom3.020210731_OSC_Kyoto_PGStrom3.0
20210731_OSC_Kyoto_PGStrom3.0
 
Lagopus Router v19.07.1
Lagopus Router v19.07.1Lagopus Router v19.07.1
Lagopus Router v19.07.1
 

Mehr von NTT DATA Technology & Innovation

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)NTT DATA Technology & Innovation
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方NTT DATA Technology & Innovation
 
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...NTT DATA Technology & Innovation
 
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)NTT DATA Technology & Innovation
 
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)NTT DATA Technology & Innovation
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...NTT DATA Technology & Innovation
 
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...NTT DATA Technology & Innovation
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)NTT DATA Technology & Innovation
 
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)NTT DATA Technology & Innovation
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...NTT DATA Technology & Innovation
 
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)NTT DATA Technology & Innovation
 
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)NTT DATA Technology & Innovation
 
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 

Mehr von NTT DATA Technology & Innovation (20)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
 
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
 
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
 
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
 
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
 
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
 
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
 
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
 
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
 
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
 

Kürzlich hochgeladen

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 

Kürzlich hochgeladen (6)

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 

Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)

  • 1. © 2022 NTT DATA Corporation Open Source Conference 2022 Online / Hiroshima Apache Bigtop 3.2 (仮) 2022/10/01 関 堅吾・岩崎 正剛 日本Hadoopユーザ会/株式会社NTTデータ
  • 2. © 2022 NTT DATA Corporation © 2022 NTT DATA Corporation 2 Apache Bigtopの概要
  • 3. © 2022 NTT DATA Corporation • 公式サイト (https://bigtop.apache.org/) より: • "Bigtop is an Apache Foundation project for Infrastructure Engineers and Data Scientists looking for comprehensive packaging, testing, and configuration of the leading open source big data components." • 『Bigtopは、先進的なビッグデータ関連OSSのパッケージングやテスト、 設定を求めているインフラエンジニアやデータサイエンティストのための Apacheソフトウェア財団のプロジェクトです。』 • 一言で言うと「Hadoop・Spark を中心としたデータ基盤を容易に構築する ための OSS」です。 Apache Bigtopとは何か
  • 4. © 2022 NTT DATA Corporation Apache Bigtop の歴史 2020 2019 2018 2017 2016 2015 2012 2011 Cloudera社からApacheソフトウェア財団(以下ASF)に、incubatorプロジェクトとして寄贈される Apache incubator プロジェクトからトップレベルプロジェクトに昇格 Components 1.0.0 1.1.0 1.2.1 1.3.0 1.4.0 1.5.0 Ambari 2.5.0 2.6.1 2.6.1 2.6.1 Flink 1.1.3 1.4.2 1.6.4 1.6.4 Hadoop 2.6.0 2.7.1 2.7.3 2.8.4 2.8.5 2.10.1 HBase 0.98.12 0.98.12 1.1.9 1.3.2 1.3.2 1.5.0 Hive 1.0.0 1.2.1 1.2.1 2.3.3 2.3.3 2.3.6 Kafka 0.8.1.1 0.8.1.1 0.10.1.1 0.10.2.2 0.10.2.2 2.4.0 Spark 1.3.1 1.5.1 2.1.1 2.2.1 2.2.3 2.4.5 Zeppelin 0.5.6 0.7.2 0.7.3 0.7.3 0.8.2 Zookeeper 3.4.6 3.4.6 3.4.6 3.4.6 3.4.6 3.4.13
  • 5. © 2022 NTT DATA Corporation Apache Bigtop の歴史 2022 2021 Components 3.0.0 3.0.1 3.1.0 3.1.1 3.2.0 Ambari 2.7.5 2.7.5 2.7.5 2.7.5 2.7.5 Flink 1.11.3 1.11.6 1.11.6 1.11.6 1.15.0 Hadoop 3.2.2 3.2.2 3.2.3 3.2.4 3.3.4 HBase 2.2.6 2.2.6 2.4.8 2.4.8 2.4.13 Hive 3.1.2 3.1.2 3.1.2 3.1.2 3.1.3 Kafka 2.4.1 2.4.1 2.8.1 2.8.1 2.8.1 Spark 3.0.1 3.0.1 3.1.2 3.1.2 3.2.1 Zeppelin 0.9.0 0.10.0 0.10.0 0.10.0 0.10.1 Zookeeper 3.4.14 3.4.14 3.5.9 3.5.9 3.5.9 Log4Shell対応のパッチバージョンアップ 2022/10現在、 活発に開発中
  • 6. © 2022 NTT DATA Corporation Bigtop 3.1.1のソフトウェアスタック コンポーネント バージョン 説明 Alluxio 2.4.1 ストレージ仮想化 Ambari 2.7.5 クラスタ構築・管理 Elasticsearch 5.6.14 全文検索エンジン Flink 1.11.6 ストリーム処理系 GPDB 5.28.5 MPP Hadoop 3.2.4 分散ファイルシステム・ 並列分散処理基盤 HBase 2.4.8 分散KVS Hive 3.1.2 Hadoop用クエリ処理系 Kafka 2.8.1 分散メッセージブローカ Kibana 5.4.1 検索フロントエンド・データ可視化 Livy 0.7.1 Spark用RESTゲートウェイ コンポーネント バージョン 説明 Logstash 5.4.1 ログ転送 Oozie 5.2.1 ジョブスケジューラ Phoenix 5.1.0 HBase用クエリ処理系 Solr 8.11.1 全文検索エンジン Spark 3.1.2 並列分散処理エンジン・ ストリーム処理系 Sqoop 1.4.7 バルクローダ Tez 0.10.1 並列分散処理エンジン YCSB 0.17.0 ベンチマークツール Zeppelin 0.10.0 ノートブック Zookeeper 3.5.9 分散コーディネーション
  • 7. © 2022 NTT DATA Corporation Bigtop 3.2のソフトウェアスタック(仮) コンポーネント バージョン 説明 Alluxio 2.8.0 ストレージ仮想化 Ambari 2.7.5 クラスタ構築・管理 Elasticsearch dropped 全文検索エンジン Flink 1.15.0 ストリーム処理系 GPDB 5.28.5 MPP Hadoop 3.3.4 分散ファイルシステム・ 並列分散処理基盤 HBase 2.4.13 分散KVS Hive 3.1.3 Hadoop用クエリ処理系 Kafka 2.8.1 分散メッセージブローカ Kibana dropped 検索フロントエンド・データ可視化 Livy 0.7.1 Spark用RESTゲートウェイ コンポーネント バージョン 説明 Logstash dropped ログ転送 Oozie 5.2.1 ジョブスケジューラ Phoenix 5.1.2 HBase用クエリ処理系 Ranger 2.3.0 セキュリティ Solr 8.11.1 全文検索エンジン Spark 3.2.1 並列分散処理エンジン・ ストリーム処理系 Sqoop dropped バルクローダ Tez 0.10.1 並列分散処理エンジン YCSB 0.17.0 ベンチマークツール Zeppelin 0.10.1 ノートブック Zookeeper 3.5.9 分散コーディネーション ※3.2 で削除されたコンポーネント Elasticsearch, Logstash, Kibana, Sqoop
  • 8. © 2022 NTT DATA Corporation • ELKの削除:Elastic社のライセンス変更に伴い、ASFの配布物に最近のバージョンの ElasticsearchやKibanaを含めることができなくなったため • Apache Software License v2で定められている内容に加えて、さらに大きな制約を 課すようなライセンスはASFの配布物に含めることができない (https://www.apache.org/legal/resolved.html#category-x) • Sqoopの削除:バージョン1.4.7を最後に、2021年6月に開発を終了したため • 開発が終了したASF傘下のプロジェクトは Apache Attic (https://attic.apache.org/) にアーカイブされる • Rangerの追加(予定) • HDFS, YARN, Hive, HBase, Kafka などに対して粒度の細かい認証ルールを設定・一元 管理できる • 2022/10時点ではrpmのみの対応なので、Bigtop 3.2に入るためにはdebパッケージへ の対応や、デプロイ用のpuppet manifest, スモークテストの開発が必要 (鋭意開発中) Bigtop 3.2 のソフトウェアスタックにおける主な変更点
  • 9. © 2022 NTT DATA Corporation • 2022/9時点ではまだ流動的 • Fedora 36のサポートを追加するか、追加する場合35のサポートを打ち切るか • Ubuntu 22.04のサポートを追加するか、追加する場合18.04のサポートを打ち切るか Bigtop 3.2の対応プラットフォーム Linux distro Bigtop 3.1.x Bigtop 3.2.0 CentOS 7 7 Rocky Linux 8 8 Fedora 35 35, 36 Debian 10, 11 10, 11 Ubuntu 18.04, 20.04 18.04, 20.04, 22.04 CPU アーキテクチャ Bigtop 3.1.x Bigtop 3.2.0 x86_64 〇 〇 aarch64 〇 〇 ppc64le 〇(Rocky8を除く) 〇(Rocky8を除く)
  • 10. © 2022 NTT DATA Corporation © 2022 NTT DATA Corporation 10 Apache Bigtopの使い方
  • 11. © 2022 NTT DATA Corporation 1. 要件を満たすソフトウェアの選定と、それらの間の相互運用性の確認 2. 選定したソフトウェアを(場合によっては大量の)サーバ群にインストールし、 それらのサーバ上で各製品を適切に設定 3. 設定を施したサーバ群が、クラスタとして正しく動作していることを確認 4. 必要に応じ、上記の手順をローカル環境やステージング環境で事前に確認 データ基盤構築の流れ
  • 12. © 2022 NTT DATA Corporation 1. 要件を満たすソフトウェアの選定と、それらの間の相互運用性の確認 →相互運用性を確認済みの幅広いビッグデータ関連ソフトウェアを、debやrpmと いったパッケージとして提供 2. 選定したソフトウェアを(場合によっては大量の)サーバ群にインストールし、 それらのサーバ上で各製品を適切に設定 →各ソフトウェアのデプロイを自動化するための Puppet マニフェストを提供 3. 設定を施したサーバ群が、クラスタとして正しく動作していることを確認 →各ソフトウェアの主要な機能が問題なく動作していることを確認するための、 スモークテストを提供 4. 必要に応じ、上記の手順をローカル環境やステージング環境で事前に確認 →Dockerコンテナにソフトウェアをデプロイし、スモークテストや試用が行える Provisionerを提供 データ基盤構築のためにBigtopが提供する機能
  • 13. © 2022 NTT DATA Corporation 1. 要件を満たすソフトウェアの選定と、それらの間の相互運用性の確認 →相互運用性を確認済みの幅広いビッグデータ関連ソフトウェアを、debやrpmと いったパッケージとして提供 2. 選定したソフトウェアを(場合によっては大量の)サーバ群にインストールし、 それらのサーバ上で各製品を適切に設定 →各ソフトウェアのデプロイを自動化するための Puppet マニフェストを提供 3. 設定を施したサーバ群が、クラスタとして正しく動作していることを確認 →各ソフトウェアの主要な機能が問題なく動作していることを確認するための、 スモークテストを提供 4. 必要に応じ、上記の手順をローカル環境やステージング環境で事前に確認 →Dockerコンテナにソフトウェアをデプロイし、スモークテストや試用が行える Provisionerを提供 データ基盤構築のためにBigtopが提供する機能
  • 14. © 2022 NTT DATA Corporation • Bigtop はコンポーネント間の相互運用性が確認されたバージョン同士の組合せを、deb/rpm形式の パッケージとして提供している。これにより、以下のメリットがある。 • ユーザ側で、問題なく動作するバージョンの組合せを検証・特定しなくて済む • Linux ディストリビューション標準のパッケージマネージャ (yum/dnf/apt) が使えることで、 • 標準化された手順でインストール・アンインストールを実施できる • 依存しているソフトウェアも自動でインストールしてくれる • インストールしたソフトを一元管理できる • Bigtop では、以下の Linux ディストリビューション と CPU アーキテクチャをサポートしている 1. ビッグデータ関連OSSをパッケージとして提供 Linux ディストリ ビューション Bigtop 3.0.x Bigtop 3.1.x CentOS 7, 8 7 Rocky Linux - 8 Fedora 33 35 Debian 9, 10 10, 11 Ubuntu 18.04, 20.04 18.04, 20.04 CPU アーキテクチャ Bigtop 3.0.x Bigtop 3.1.x x86_64 〇 〇 aarch64 〇 〇 ppc64le 〇 〇(Rocky8を除く)
  • 15. © 2022 NTT DATA Corporation Bigtop の公式サイト (https://bigtop.apache.org/) から、以下のリンクを辿って取得 パッケージを公開しているリポジトリを利用するための設定ファイル Linux ディストリビューション別に、 rpm 用の .repo ファイルや deb 用の .list ファイルが ダウンロード可能
  • 16. © 2022 NTT DATA Corporation • RPMパッケージを用いたコンポーネントのインストールは以下の3ステップ パッケージのインストール手順 (CentOS/Fedora の場合) $ sudo wget -P /etc/yum.repos.d -q ¥ https://dlcdn.apache.org/bigtop/bigtop-3.1.1/repos/centos-7/bigtop.repo $ sudo rpm --import ¥ https://dlcdn.apache.org/bigtop/bigtop-3.1.1/repos/GPG-KEY-bigtop $ sudo yum install hadoop $ hadoop version Hadoop 3.2.4 1. リポジトリ設定ファイルをダウンロード・配置 2. GPG キーをインポート 3. リポジトリ情報のアップデート・コンポーネントのインストール
  • 17. © 2022 NTT DATA Corporation $ sudo wget -P /etc/apt/sources.list.d -q ¥ https://dlcdn.apache.org/bigtop/bigtop-3.1.1/repos/ubuntu-20.04/bigtop.list $ curl -s https://dlcdn.apache.org/bigtop/bigtop-3.1.1/repos/GPG-KEY-bigtop | ¥ sudo apt-key add - $ sudo apt-get update $ sudo apt-get install hadoop $ hadoop version Hadoop 3.2.4 • debパッケージを用いたコンポーネントのインストール手順も同様 パッケージのインストール手順 (Debian/Ubuntu の場合) 1. リポジトリ設定ファイルをダウンロード・配置 2. GPG キーをインポート 3. リポジトリ情報のアップデート・コンポーネントのインストール
  • 18. © 2022 NTT DATA Corporation 1. 要件を満たすソフトウェアの選定と、それらの間の相互運用性の確認 →相互運用性を確認済みの幅広いビッグデータ関連ソフトウェアを、debやrpmと いったパッケージとして提供 2. 選定したソフトウェアを(場合によっては大量の)サーバ群にインストールし、 それらのサーバ上で各製品を適切に設定 →各ソフトウェアのデプロイを自動化するための Puppet マニフェストを提供 3. 設定を施したサーバ群が、クラスタとして正しく動作していることを確認 →各ソフトウェアの主要な機能が問題なく動作していることを確認するための、 スモークテストを提供 4. 必要に応じ、上記の手順をローカル環境やステージング環境で事前に確認 →Dockerコンテナにソフトウェアをデプロイし、スモークテストや試用が行える Provisionerを提供 データ基盤構築のためにBigtopが提供する機能
  • 19. © 2022 NTT DATA Corporation • パッケージの導入でインストール作業は省力化できたが、以下の問題は解決されていない • サーバの台数が多い場合、1台1台インストールのコマンドを投入するのは大変 • パッケージのインストール後も、各ソフトウェアに適切な設定を施したり、サービスを 起動したりといった作業が必要 • Bigtop は Puppet マニフェストを提供することで、これらの作業を自動化 • Puppet (https://puppet.com/open-source/) はRubyで記述されたOSSの構成管理 ツールで、2005年から開発されており十分な実績がある • Puppet manifest はシステムの「あるべき姿」を記述した設定ファイルで、この定義 に従って Puppet がパッケージのインストールや設定、サービスの起動などを行う • Puppet は Hiera (https://puppet.com/docs/puppet/latest/hiera.html) というキー バリュー型の設定管理システムを備える • ユーザが Hiera ファイルに適切な値を設定して Puppet を実行することで、Puppet が設定ファイルの対応する箇所に指定した値を設定してくれる 2. デプロイを自動化するための Puppet マニフェストの提供
  • 20. © 2022 NTT DATA Corporation • Bigtop の公式サイト (https://bigtop.apache.org/) から、以下のリンクを辿って取得 • apt・yumリポジトリの設定ファイルとは別に配布されている • 後述するスモークテスト関連のファイルなども本ファイルに含まれる Puppet マニフェストのダウンロード
  • 21. © 2022 NTT DATA Corporation • Puppet マニフェストを用いたコンポーネントのデプロイは、以下の4ステップ (次ページに続く) Puppet マニフェストを用いたコンポーネントのデプロイ手順 $ curl -sLO https://dlcdn.apache.org/bigtop/bigtop-3.1.1/bigtop-3.1.1-project.tar.gz $ tar xf bigtop-3.1.1-project.tar.gz $ cd bigtop-3.1.1 $ sudo bigtop_toolchain/bin/puppetize.sh $ vi bigtop-deploy/puppet/hieradata/site.yaml $ cat bigtop-deploy/puppet/hieradata/site.yaml --- bigtop::hadoop_head_node: "fqdn.of.head.node" hadoop::hadoop_storage_dirs: - /data hadoop_cluster_node::cluster_components: - hdfs - yarn - mapreduce 1. Bigtop の tarball をダウンロードし展開 2. 中に含まれるスクリプトを実行して Puppet をインストール 3. Hiera ファイルを編集。最低限必要な設定は左記の3つだが、 インストールするコンポーネントに応じて必要な設定を記述する。 • bigtop::hadoop_head_node: Hadoop のマスターノードの FQDN • hadoop::hadoop_storage_dirs: Hadoop のデータ格納 先ファイルパス • hadoop_cluster_node::cluster_components: インストールするコンポーネントのリスト。例では HDFS, YARN, MapReduceをインストールしている。
  • 22. © 2022 NTT DATA Corporation Puppet マニフェストを用いたコンポーネントのデプロイ手順 (続き) $ sudo cp -r bigtop-deploy/puppet/hiera* /etc/puppet $ sudo puppet apply --parser future ¥ --modulepath=bigtop-deploy/puppet/modules:/etc/puppet/modules ¥ bigtop-deploy/puppet/manifests (略) Notice: Finished catalog run in 65.99 seconds $ echo $? 0 $ sudo jps 7873 ResourceManager 8722 DataNode 8486 NodeManager 8922 Jps 8251 NameNode 7775 WebAppProxyServer 8159 JobHistoryServer 4. Hiera ファイル群を所定のパスにコピーし、Puppet を実行 ※"--parser future"オプションはCentOS 7にのみ付与 ※--modulepathオプションに指定している"/etc/puppet/modules"の部分は ディストリビューションによって異なる(puppet moduleのインストール先を指定する) ※一連の手順を parallel-ssh (http://code.google.com/p/parallel-ssh/) などを用いて実行することで、クラスタ内の全サーバでデプロイを行うことが可能
  • 23. © 2022 NTT DATA Corporation 1. 要件を満たすソフトウェアの選定と、それらの間の相互運用性の確認 →相互運用性を確認済みの幅広いビッグデータ関連ソフトウェアを、debやrpmと いったパッケージとして提供 2. 選定したソフトウェアを(場合によっては大量の)サーバ群にインストールし、 それらのサーバ上で各製品を適切に設定 →各ソフトウェアのデプロイを自動化するための Puppet マニフェストを提供 3. 設定を施したサーバ群が、クラスタとして正しく動作していることを確認 →各ソフトウェアの主要な機能が問題なく動作していることを確認するための、 スモークテストを提供 4. 必要に応じ、上記の手順をローカル環境やステージング環境で事前に確認 →Dockerコンテナにソフトウェアをデプロイし、スモークテストや試用が行える Provisionerを提供 データ基盤構築のためにBigtopが提供する機能
  • 24. © 2022 NTT DATA Corporation • コンポーネントのデプロイが完了したら、それらの主要な機能が問題なく動作していること を確かめたい • そのために Bigtop は、各コンポーネントのスモークテストを提供している 3. 各コンポーネントの動作確認のためのスモークテストの提供
  • 25. © 2022 NTT DATA Corporation スモークテストの実行方法 • スモークテストの実行は以下の3ステップ。 $ curl -sLO https://downloads.apache.org/bigtop/bigtop-3.1.1/bigtop-3.1.1-project.tar.gz $ tar xf bigtop-3.1.1-project.tar.gz $ cd bigtop-3.1.1 $ . /usr/lib/bigtop-utils/bigtop-detect-javahome $ export HADOOP_CONF_DIR=/etc/hadoop/conf $ ./gradlew bigtop-tests:smoke-tests:yarn:test -Psmoke.tests --info org.apache.bigtop.itest.hadoop.yarn.TestNode > testNodeBasic STANDARD_OUT -list -status org.apache.bigtop.itest.hadoop.yarn.TestRmAdmin > testRmAdminBasic STANDARD_OUT -help -getGroups ... 1. Bigtop の tarball をダウンロードし展開 (前の節で使用したものと同じファイル) 2. JAVA_HOME, およびテストの実行に必要な環境変数の 定義. (コンポーネントごとに必要な環境変数は異なる。確認 するには展開したファイルの bigtop-tests/smoke-tests/ コンポーネント名/build.gradle の doFirst メソッドを参照) 3. Gradle wrapper からスモークテストを実行。 ここでは YARN のテストを行っている。
  • 26. © 2022 NTT DATA Corporation スモークテストの実行方法 (続き) Gradle Test Executor 2 finished executing tests. > Task :bigtop-tests:smoke-tests:yarn:test Finished generating test XML results (0.009 secs) into: /home/vagrant/bigtop- 3.1.1/bigtop-tests/smoke-tests/yarn/build/test-results/test Generating HTML test report... Finished generating test html results (0.02 secs) into: /home/vagrant/bigtop- 3.1.1/bigtop-tests/smoke-tests/yarn/build/reports/tests/test Now testing... :bigtop-tests:smoke-tests:yarn:test (Thread[Execution worker for ':',5,main]) completed. Took 7.453 secs. BUILD SUCCESSFUL in 53s スモークテストに成功 テストの詳細な結果を知りたい場合は これらのファイルを参照
  • 27. © 2022 NTT DATA Corporation スモークテスト実行結果のサンプル
  • 28. © 2022 NTT DATA Corporation 1. 要件を満たすソフトウェアの選定と、それらの間の相互運用性の確認 →相互運用性を確認済みの幅広いビッグデータ関連ソフトウェアを、debやrpmと いったパッケージとして提供 2. 選定したソフトウェアを(場合によっては大量の)サーバ群にインストールし、 それらのサーバ上で各製品を適切に設定 →各ソフトウェアのデプロイを自動化するための Puppet マニフェストを提供 3. 設定を施したサーバ群が、クラスタとして正しく動作していることを確認 →各ソフトウェアの主要な機能が問題なく動作していることを確認するための、 スモークテストを提供 4. 必要に応じ、上記の手順をローカル環境やステージング環境で事前に確認 →Dockerコンテナにソフトウェアをデプロイし、スモークテストや試用が行える Provisionerを提供 データ基盤構築のためにBigtopが提供する機能
  • 29. © 2022 NTT DATA Corporation • いきなり商用環境にデータ基盤を構築する前に、ローカルやステージング環境で 確認したいケースは多々ある • Bigtop に含まれるコンポーネントで業務上・システム上の要件を満たせるか、 事前に検証したい • 構築手順が正しいことを事前に確認したい • ソフトウェアをバージョンアップすることで、既存のアプリケーションが問題 なく動作するか確認したい、など • このため、Bigtop は Docker コンテナ上にコンポーネントをデプロイできる Provisioner と呼ばれる機能を提供している • 事前に Docker, Docker Compose がインストールされ、Gradle wrapper を 実行するユーザから使えるよう設定されている必要がある 4. Docker コンテナ上でデプロイやテストを行うための Provisioner の提供
  • 30. © 2022 NTT DATA Corporation Docker provisioner の使用方法 $ ./gradlew docker-provisioner -Pnum_instances=3 -POS=centos-7 -Pprefix=3.1.1 -Pstack=hdfs,yarn ... Pulling bigtop (bigtop/puppet:3.1.1-centos-7)... 3.1.1-centos-7: Pulling from bigtop/puppet Digest: sha256:42f20509d1b9460b753b70f6e21882699de3a488f93af28375c466181bc8727a Status: Downloaded newer image for bigtop/puppet:3.1.1-centos-7 Creating 20220929_115113_r20838_bigtop_1 ... done Creating 20220929_115113_r20838_bigtop_2 ... done Creating 20220929_115113_r20838_bigtop_3 ... done ... Notice: Roles to deploy: [resourcemanager, nodemanager, mapred-app, hadoop-client, namenode, datanode] Notice: Roles to deploy: [nodemanager, mapred-app, datanode] Notice: Roles to deploy: [nodemanager, mapred-app, datanode] ... Notice: Finished catalog run in 231.67 seconds BUILD SUCCESSFUL in 4m 39s 3台の Docker コンテナ上 (OS は CentOS 7) に Bigtop 3.1.1 の HDFS, YARN をインストールするコマンドを実行 (ローカルに存在しなければ) Bigtop 3.1.1 の CentOS 7 イメージが pull され、そのイメージから コンテナが作成される 指定したコンポーネントの Puppet マニフェストを 使って、コンテナ上へのデプロイが実行される
  • 31. © 2022 NTT DATA Corporation Docker provisioner の使用方法 (続き) $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6df7279c442e bigtop/puppet:3.1.1-centos-7 "/sbin/init" 4 minutes ago Up 4 minutes 20220929_115113_r20838_bigtop_3 a37ba6399273 bigtop/puppet:3.1.1-centos-7 "/sbin/init" 4 minutes ago Up 4 minutes 20220929_115113_r20838_bigtop_2 850c8ce4785a bigtop/puppet:3.1.1-centos-7 "/sbin/init" 4 minutes ago Up 4 minutes 20220929_115113_r20838_bigtop_1 $ docker exec -it 20220929_115113_r20838_bigtop_1 bash [root@850c8ce4785a /]# jps 2416 Jps 1528 JobHistoryServer 1676 NodeManager 1212 ResourceManager 2156 DataNode 1086 WebAppProxyServer 1951 NameNode [root@850c8ce4785a /]# exit $ ./gradlew docker-provision-destroy ... BUILD SUCCESSFUL in 14s 1 actionable task: 1 executed $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES `docker exec` で任意のコマンドをコンテナ上で実行可能 プロビジョニングしたコンテナは、通常通り `docker ps` コマンドで確認できる 別のクラスタを起動する前には、既存のクラスタを破棄する必要がある
  • 32. © 2022 NTT DATA Corporation • あ Docker provisioner の使用方法 (続き) $ ./gradlew tasks ... Deployment tasks ---------------- docker-provisioner - Provision a Bigtop stack cluster on Docker container(s). Default to CentOS and 1 node. Properties: -Pconfig=[CONFIG_FILE] (located under provisioner/docker/) -Penable_local_repo -Pimage=[DOCKER_IMAGE] (overwrites -POS and -Pprefix) -Pmemory=[4g|8g|...] -Pnum_instances=[NUM_INSTANCES] -Pnexus=[NEXUS_URL] (NEXUS_URL is optional) -POS=[centos-7|fedora-35|debian-10|ubuntu-18.04|opensuse-42.3] -Pprefix=[trunk|1.2.1|1.2.0|1.1.0|...] -Prepository=[REPO_URL] -Prun_smoke_tests (run test components defined in config file) -Psmoke_tests=[COMPONENTS] -Pstack=[COMPONENTS] ... Docker provisioner はオプションが多いため `./gradlew tasks` コマンドで一覧を確認
  • 33. © 2022 NTT DATA Corporation © 2022 NTT DATA Corporation 33 プラットフォームと互換性
  • 34. © 2022 NTT DATA Corporation BigtopがサポートするのはLinuxの主要ディストリビューション Hadoopは(実態上/実用上)Linux前提 主要部分はJava: 多くのプラットフォームで動く CLIはbash (>=3.0): 多くのプラットフォームで動く Windows用のhadoop.cmdも存在するがもうメンテされていない libhadoop.so: Cで実装 (JNI経由で呼び出される) オプショナルな機能や性能向上を提供 Linuxのシステムコール前提 Hadoopの開発者はUbuntu on x86_64が多数派(という印象) HadoopのCI環境のDockerイメージもUbuntu on x86_64 それ以外のプラットフォーム(RHEL系、aarch、ppc64le)の問題は見落とされがち Linux
  • 35. © 2022 NTT DATA Corporation Hadoopプロジェクト配布版binary tarballにもlibhadoop.soは入っている どのLinuxでも動くわけではない # ASFの正式なリリースはあくまでsource tarball # binary tarballはある環境でビルドしたものをおまけ的に提供 # Hadoop 3.2.2の場合Ubuntu 16.04でビルドしたもの nativeライブラリのポータビリティ $ hadoop checknative Native library checking: hadoop: false zlib: false ... $ ldd libhadoop.so ./libhadoop.so: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./libhadoop.so) linux-vdso.so.1 => (0x00007ffc0959f000) ... nativeライブラリが使えない状態:
  • 36. © 2022 NTT DATA Corporation パッケージング対象プロダクトの大半はJava/JVM言語で実装 Bigtop(3.2)は各種Linuxディストリビューション提供のOpenJDK 8を利用 Hadoop >= 3.3.0 は実行環境としてJava 11に対応 Hadoop開発環境のJava 11への(完全)移行は難航... Jerseyのupgradeがblocker(HADOOP-15984) Java
  • 37. © 2022 NTT DATA Corporation 公開APIと内部向けAPIの分離が不完全 モジュール間で参照するためにpublicなクラス/メソッド 下流のプロダクトがテストのために内部APIを利用 Hadoopのソースツリーから分離独立したプロダクトの存在 各プロダクトの開発者は、他のプロダクトを意識しきれない プロダクトXの内部APIを変更すると、Xに依存するプロダクトYのビルドが壊れたりしがち 公開APIを示すためのアノテーションはある(が強制力はない) @InterfaceAudience.PublicなものだけJavadocが出力される @InterfaceAudience.Privateだとマイナーバージョンアップでも変更されうる JavaのAPI @InterfaceAudience.LimitedPrivate({ "MapReduce", "HBase" }) @InterfaceStability.Unstable public class DistributedFileSystem extends FileSystem implements KeyProviderTokenIssuer, BatchListingOperations { InterfaceAudienceアノテーションの例:
  • 38. © 2022 NTT DATA Corporation 同一パッケージ名、同一クラス名のライブラリを複数バージョン混在させることは不可能 ダメなパターンの例: プロダクトXがプロダクトYに依存 プロダクトXがhoge-1.0に依存し、hoge-1.5に無いAPIを利用 プロダクトYがhoge-1.5に依存し、hoge-1.0に無いAPIを利用 汎用的なライブラリは特にプロダクト間で競合しがち SLF4J, Log4j commons-logging, commons-cli, commons-httpclient Jackson Guava Netty, Jetty, Jersey protobuf-java ZooKeeper, Curator 脆弱性対応のために依存ライブラリをアップグレードすると、非互換な変更が入ることも Javaライブラリの依存関係
  • 39. © 2022 NTT DATA Corporation ちゃんと機能するプロダクトのバージョンの組み合わせは限られる Bigtopは「機能するバージョンの組み合わせ」を選定 場合によってはパッチをあてて辻褄を合わせる CPUアーキテクチャ、OSディストリビューションごとの調整も必要 Bigtopはそれぞれの環境でビルドしてパッケージングしてテストする仕組みを提供 Bigtopの役割
  • 40. © 2022 NTT DATA Corporation © 2022 NTT DATA Corporation 40 Bigtopの基本素材
  • 41. © 2022 NTT DATA Corporation ソースコードはGitHubにある ASF(Apache Software Foundation)のプロジェクト全般 # 2019年4月から # https://blogs.apache.org/foundation/entry/the-apache-software-foundation-expands 開発の管理はJIRA https://issues.apache.org/jira/projects/BIGTOP issueを作ってパッチを添付するかpull requestのリンクを貼る Bigtopのソースコード $ git clone https://github.com/apache/bigtop $ cd bigtop Bigtopのソースコードの取得:
  • 42. © 2022 NTT DATA Corporation Gradleを利用して各種処理を実行する Bigtopのタスク $ ./gradlew tasks > Task :tasks ------------------------------------------------------------ Tasks runnable from root project - Bigtop ------------------------------------------------------------ Apache Creadur tasks -------------------- rat - Runs Apache Rat checks Build tasks ----------- assemble - Assembles the outputs of this project. ... タスク一覧の表示:
  • 43. © 2022 NTT DATA Corporation 部品表: 対象プロダクトとそのバージョンなどが記述されている GroovyのConfigSlurperの書式 Bigtop BOM $ cat bigtop.bom bigtop { // *the name should be change: the parsing code depends on it* version = "STACK-VERSION" // *required* stack { // *required* Fundamental properties of the Stack: JDK, SDK, GDK, etc 'jdk' { version = '1.8'; version_base = version } 'scala' { version = '2.10.4'; version_base = version } } ... components { 'hadoop' { name = 'hadoop' relNotes = 'Apache Hadoop' version { base = '3.2.2'; pkg = base; release = 1 } tarball { destination = "${name}-${version.base}.tar.gz" source = "${name}-${version.base}-src.tar.gz" } url { download_path = "/$name/common/$name-${version.base}" site = "${apache.APACHE_MIRROR}/${download_path}" archive = "${apache.APACHE_ARCHIVE}/${download_path}" } }
  • 44. © 2022 NTT DATA Corporation © 2022 NTT DATA Corporation 44 Bigtop toolchain
  • 45. © 2022 NTT DATA Corporation プロダクト群をビルドするための環境をセットアップする資材 Puppetをインストールするスクリプト ビルドツール群をインストールPuppetマニフェスト JDK, Maven, GCC, CMake, Protocol Buffers, lib*-devel, ... OS提供パッケージだとバージョンが合わないものは個別にセットアップ プラットフォーム差分に対応するためのワークアラウンドも提供 例) aarch64対応のバックポートパッチを当ててprotobuf-2.5.0をビルド bigtop_toolchain $ sudo bigtop_toolchain/bin/puppetize.sh $ ./gradlew toolchain bigtop_toolchainによるビルド環境のセットアップ:
  • 46. © 2022 NTT DATA Corporation 最近のHadoopやHBaseはprotobuf-maven-pluginを利用 protocのバイナリが自動的にダウンロードされる バイナリが未提供のプラットフォーム/バージョンではうまくいかない com.google.protobuf:protoc < 3.5.0 ではaarch64用バイナリが未提供 com.google.protobuf:protoc < 3.7.0 ではppcle64バイナリが未提供 Hadoop 3.3.0でprotobuf-2.5.0からprotobuf-3.7.1に移行 だがしかしTezはまだprotobuf-2.5.0を利用 protobuf-maven-plugin if [ $HOSTTYPE = "powerpc64le" ] ; then mvn install:install-file -DgroupId=com.google.protobuf -DartifactId=protoc -Dversion=2.5.0 ¥ -Dclassifier=linux-ppcle_64 -Dpackaging=exe -Dfile=/usr/local/bin/protoc mvn install:install-file -DgroupId=com.google.protobuf -DartifactId=protoc -Dversion=3.5.1-1 ¥ -Dclassifier=linux-ppcle_64 -Dpackaging=exe -Dfile=/usr/local/protobuf-3.5.1.1/bin/protoc fi if [ $HOSTTYPE = "aarch64" ] ; then mvn install:install-file -DgroupId=com.google.protobuf -DartifactId=protoc -Dversion=2.5.0 ¥ -Dclassifier=linux-aarch_64 -Dpackaging=exe -Dfile=/usr/local/bin/protoc fi do-component-build内でローカルビルドしたprotocからアーティファクトをインストール:
  • 47. © 2022 NTT DATA Corporation © 2022 NTT DATA Corporation 47 Bigtop packaging
  • 48. © 2022 NTT DATA Corporation プロダクトをビルドしてパッケージングする 「プロダクト名-pkg」というGradleタスクで実行 .rpmと.debの2種類に対応 その環境に応じたパッケージが作られる Red Hat系なら.rpm Debian系なら.deb bigtop-package $ ./gradlew hadoop-pkg $ ./gradlew zookeeper-pkg $ ./gradlew bigtop-jsvc-pkg bigtop-utils-pkg bigtop-groovy-pkg パッケージングタスクの実行例:
  • 49. © 2022 NTT DATA Corporation 共通のビルド手順とインストール手順を.debと.rpm用の資材から呼び出して使う ビルド手順: do-component-build インストール手順: install_プロダクト名.sh パッケージング資材 bigtop-packages ├── src │ ├── common │ │ ├── hadoop │ │ │ ├── do-component-build │ │ │ ├── install_hadoop.sh │ │ │ ├── deb │ │ ├── hadoop │ │ │ ├── control │ │ │ ├── rules │ │ │ ├── rpm │ │ ├── hadoop │ │ │ ├── SPECS │ │ │ │ ├── hadoop.spec パッケージング資材の配置:
  • 50. © 2022 NTT DATA Corporation パッケージング時にpatch.*diffという名前のパッチファイルを適用 各プロダクトのリリース版そのままでは解決できない問題に対応 特定プラットフォームでビルドが失敗する問題への対処 パッケージング対象バージョンに含まれない修正のバックポート 互換性を壊す変更のrevert プロダクト間のdependenciesのつじつま合わせ patchを書いたらなるべく本家にfeedback Bigtopパッケージングにおけるパッチ適用 $ find bigtop-packages/src/common/hadoop -name 'patch*.diff' | sort bigtop-packages/src/common/hadoop/patch0-revert-HADOOP-16598.diff bigtop-packages/src/common/hadoop/patch1-HADOOP-15939.diff bigtop-packages/src/common/hadoop/patch2-exclude-spotbugs-annotations.diff bigtop-packages/src/common/hadoop/patch3-fix-broken-dir-detection.diff Bigtopが適用するpatchの例:
  • 51. © 2022 NTT DATA Corporation $BIGTOP_HOME/output 下に出力されるパッケージファイルでリポジトリを作成する repoタスクで実行 その環境に応じたリポジトリが作られる (Red Hat系ならYumの、Debian系ならAptの) パッケージリポジトリの作成 $ ./gradlew repo $ tree output ... ├── hadoop │ ├── hadoop-3.2.2-1.el8.src.rpm │ └── x86_64 │ ├── hadoop-3.2.2-1.el8.x86_64.rpm │ ├── hadoop-client-3.2.2-1.el8.x86_64.rpm │ ├── hadoop-conf-pseudo-3.2.2-1.el8.x86_64.rpm ... │ ├── hadoop-hdfs-3.2.2-1.el8.x86_64.rpm ... ├── repodata ... │ ├── aa0ff69b812187315d6825fcf7d862c326ac1ba42bf9625e57b826cd6462a68c-filelists.xml.gz │ ├── cb8d35ada5c22a89e1f65a62229acde45b4175d5281a513fc6e1190d0ce4544c-filelists.sqlite.bz2 │ ├── f2077b7afd203a11428c21ca3c41f02a786fc2f514888274f12f514673d4f88f-primary.xml.gz │ └── repomd.xml リポジトリの作成(CentOS 8で実行した場合の例):
  • 52. © 2022 NTT DATA Corporation 「プロダクト名-pkg-ind」というGradleタスクで実行(in Docker container) ひとつの環境で全OSディストリビューションのパッケージをビルドできる Docker Hubのbigtop/slavesのイメージを利用 -POS=centos-7 -Pprefix=trunkだとtrunk-centos-7タグになる(x86_64の場合) CPUアーキテクチャはホスト環境に応じて決まる aarch64のマシン上でやるとtrunk-centos-7-aarch64タグ 毎回ライブラリをすべてダウンロードすると遅い(BIGTOP-3801) -Pmvn-cache-volume=trueでローカルリポジトリをvolumeに保存して再利用 repo-indタスクは、repoタスクをDockerコンテナで実行 Docker provisioner(後述)と組み合わせてテストに利用 Dockerコンテナを利用したパッケージング $ ./gradlew hadoop-pkg-ind -POS=centos-7 -Pprefix=trunk -Pmvn-cache-volume=true $ ./gradlew repo-ind -POS=centos-7 -Pprefix=trunk パッケージングタスクの実行例:
  • 53. © 2022 NTT DATA Corporation © 2022 NTT DATA Corporation 53 Bigtop provisioning
  • 54. © 2022 NTT DATA Corporation Dockerコンテナを起動してPuppetでクラスタを構築するスクリプト 事前にDockerとdocker-composeのセットアップが必要 ./gradlew docker-provisionerで実行できる(がスクリプトを直接使った方が微妙に便利..) Docker provisioner $ cd provisioner/docker $ ./docker-hadoop.sh ¥ --create 3 ¥ --image bigtop/puppet:trunk-centos-8 ¥ --memory 8g ¥ --stack hdfs,yarn,mapreduce ¥ --repo file:///bigtop-home/output ¥ --disable-gpg-check $ ./docker-hadoop.sh --list Name Command State Ports ------------------------------------------------------------ 20210124_122554_r12819_bigtop_1 /sbin/init Up 20210124_122554_r12819_bigtop_2 /sbin/init Up 20210124_122554_r12819_bigtop_3 /sbin/init Up $ ./docker-hadoop.sh --exec 1 /bin/bash ... Dockerコンテナを利用したデプロイの例:
  • 55. © 2022 NTT DATA Corporation docker-hadoop.sh --createで出力されたファイルを見ると参考になる Bigtopのソースツリーを/bigtop-homeにマウント Hieraの設定を生成してpuppet apply Docker provisionerの仕組み $ cat docker-compose.yml bigtop: ... volumes: - ../../:/bigtop-home - ./config/hiera.yaml:/etc/puppet/hiera.yaml - ./config/hieradata:/etc/puppet/hieradata - ./config/hosts:/etc/hosts - /sys/fs/cgroup:/sys/fs/cgroup:ro $ cat config/hieradata/site.yaml bigtop::hadoop_head_node: b2d614be6039.bigtop.apache.org hadoop::hadoop_storage_dirs: [/data/1, /data/2] bigtop::bigtop_repo_uri: file:///bigtop-home/output bigtop::bigtop_repo_gpg_check: false hadoop_cluster_node::cluster_components: [hdfs,yarn,mapreduce] hadoop_cluster_node::cluster_nodes: [172.17.0.3, 172.17.0.4, 172.17.0.2] ... Docker provisionerの設定ファイル(の一部):
  • 56. © 2022 NTT DATA Corporation Hadoopクラスタを構築するためのPuppetマニフェスト Docker provisioner抜きで使うこともできる bigtop-deploy $ tree bigtop-deploy/puppet bigtop-deploy/puppet ├── hieradata │ ├── bigtop │ │ ├── cluster.yaml ... │ └── site.yaml ├── hiera.yaml ├── manifests │ ├── bigtop_repo.pp │ ├── cluster.pp ... │ ├── hadoop ... │ │ ├── manifests │ │ │ └── init.pp │ │ └── templates │ │ ├── container-executor.cfg │ │ ├── core-site.xml ... Puppetマニフェストのファイルツリー:
  • 57. © 2022 NTT DATA Corporation スクリプト経由でコンテナ停止と、一時ファイル等の削除 クラスタ起動中の問題などでやり直す場合も、まず一度--destroyしてから Dockerクラスタの終了 $ ./docker-hadoop.sh --destroy Dockerコンテナクラスタの停止:
  • 58. © 2022 NTT DATA Corporation © 2022 NTT DATA Corporation 58 Bigtop tests
  • 59. © 2022 NTT DATA Corporation パッケージをデプロイした状態で動くかざっくり確認するためのテスト おもにGroovyで書かれている CLIを実行して期待する出力が得られるかを確認というパターンが多い smoke-tests $ cat bigtop-tests/test-artifacts/hadoop/src/main/groovy/.../hdfs/TestTextSnappy.groovy ... @Test void testTextSnappy() { String cmd = "hadoop fs -text ${testDir}/${snappyFileName}" System.out.println(cmd) sh.exec(cmd) String output = sh.getOut().join("¥n") logError(sh) String expected = "1¥trafferty¥t31¥n2¥tjones¥t33¥n3¥tsteinberg¥t33" System.out.println("Expected output:¥n${expected}") System.out.println("Actual output:¥n${output}") assertEquals("Incorrect output", expected, output) } smoke-testsのテストケースの例:
  • 60. © 2022 NTT DATA Corporation Docker provisionerで起動したクラスタ上でテストを実行できる やっていることはgradleタスクの実行 --smoke-test hdfs だと bigtop-tests:smoke-tests:hdfs:test タスク Docker provisionerでtestを実行 $ ./docker-hadoop.sh --smoke-tests hdfs,yarn,mapreduce 起動済みのDockerコンテナを利用してsmoke testsを実行:
  • 61. © 2022 NTT DATA Corporation © 2022 NTT DATA Corporation 61 開発コミュニティの動向
  • 62. © 2022 NTT DATA Corporation Bigtop 3.0のリリース以降、Contributorは増えた印象 Bigtop 3.1のリリース後に深刻な問題の報告(BIGTOP-3714)があり、3.1.1をリリースした Committer/PMC memberは微増 Apache Ambari(後述)の活動停止と活動再開が大きなトピック Bigtopの開発コミュニティ
  • 63. © 2022 NTT DATA Corporation Hadoopエコシステムのプロビジョニング/運用管理ツール 旧Hortonworks社が開発を主導 旧Hortonworks社のHadoopディストリビューション(HDP)が前提 BigtopはAmbariをパッケージングしているが、mpackは(ほとんど)未提供 Cloudera社とHortonworks社との合併(2019)以降、開発は停止 Cloudera Managerと競合/重複するプロダクトのため HDPのパッケージやソースコードも非公開化 (有償サブスクリプションが必須) ASFの開発プロジェクトはAtticに移動(2022/01): https://attic.apache.org 活動休止したプロジェクトの情報を提供 過去のリリース等の資材やWebサイトは残り、ソースコードはリードオンリー化 Ambari利用企業の開発者が参加し活動再開(2022/09) デフォルトスタックをHDPからBigtopに変更 Bigtopの既存mpack定義はAmbari側に移行 Apache Ambari
  • 64. © 2022 NTT DATA Corporation 3.3系(branch-3.3)、3.2系(branch-3.2)、2.10系(branch-2.10)を維持 3.3.4、3.2.4、2.10.2がそれぞれの最新版 3.3系はセキュリティfixのみを取り込んだリリースを時々出す方向 3.2系、2.10系へのバックポートは減少傾向 3.4.0(trunk)のリリース時期は未だ未定 1000以上の(fixed in 3.4.0 onlyな)修正がある transitive dependenciesの変更が大きい downstream productsに影響する可能性が高い Java 11への(完全)移行は難航 Hadoopの開発コミュニティ
  • 65. © 2022 NTT DATA Corporation © 2022 NTT DATA Corporation 65 おわりに
  • 66. © 2022 NTT DATA Corporation BigtopはHadoopエコシステムのプロダクトの「使える組み合わせ」を提供 Bigtop 3.2はHadoop 3.3系をパッケージングする最初のリリース Bigto 3.2の主要プロダクトのバージョンアップ作業は(だいたい)完了 BigtopはAmbariのデフォルトスタックになる予定 おわりに
  • 67. © 2022 NTT DATA Corporation 本資料に記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です。