SlideShare a Scribd company logo
1 of 42
© 2021 NTT DATA Corporation
01/30/2021
Masatake Iwasaki
NTT DATA
Apache BigtopによるHadoopエコシステムのパッケージング
© 2021 NTT DATA Corporation 2
Apache Bigtopの取り組みを紹介します
Hadoopエコシステムのプロダクトのパッケージングをしています
多くのプロダクトはJavaで実装されていて、Java 8前提の話として聞いてください
ときどき出てくるBIGTOP-12345みたいなのはJIRAのissue keyです
はじめに
© 2021 NTT DATA Corporation 3
HadoopエコシステムとBigtop
© 2021 NTT DATA Corporation 4
大規模データ処理基盤
以下をセットで提供
分散ファイルシステム(HDFS)
計算リソース管理機構(YARN)
分散処理フレームワーク(MapReduce)
汎用的な(Linux)サーバ(〜10000台)でクラスタを構成する
大量のデータを格納し、並列分散処理する
2006年に登場
Googleが論文の形で紹介した技術を参考にして作られたOSS実装
Hadoopとは何か?
© 2021 NTT DATA Corporation 5
実用上、多種多様な周辺ミドルウェアと組み合わせて利用する
Spark: モダンな分散処理基盤/API (deprecating MapReduce)
Hive: SQL(ライクな)言語処理系
HBase: 分散KVS (like Bigtable)
Sqoop: データローダ
Oozie: ワークフロースケジューラ
Ranger: アクセス制御
...
プロダクト間の依存関係は複雑
バージョンアップで互換性に影響する変更がときどき入る
機能するバージョンの組み合わせを見つけるのは大変
Hadoopエコシステム
© 2021 NTT DATA Corporation 6
ディストリビューション: 機能する組み合わせでパッケージングしたもの
企業(ディストリビュータ)がビジネスとして提供する
パッケージング、継続的なupdate、テクニカルサポート
Linux(OS)の例として、Red Hat(IBM社)のRed Hat Enterprise Linux
ベースバージョンを(原則)固定してパッケージング
upstreamの機能追加やバグ修正をbackportしていく
互換性を壊す修正は入れないか、壊さないように直す
minor updateしても(原則)アプリケーションに影響を与えない
HadoopエコシステムではCloudera社がディストリビューションを提供
Red Hat同様のベースバージョン固定方式で互換性を維持
多種プロダクトの動く組み合わせをテストして提供
独自プロビジョニングツールによる運用が前提
(現在は)(CentOSのような)無償版はない
ディストリビューション
© 2021 NTT DATA Corporation 7
コミュニティベースの取り組み
Hadoopエコシステムのミドルウェアのパッケージングを提供
プロダクトとバージョンの組み合わせ選定
必要に応じてパッチ適用
.rpmおよび.debを作るための資材
# 過去に提供/公開されたCDH用の資材がベース
プロビジョニング資材
Dockerファイル/イメージ
クラスタ起動用docker-compose資材
Puppetマニフェスト
テストフレームワークとテストケース
以上をGradleタスクとして簡易に実行する枠組み
継続的なpatchのバックポートやminor updateは提供していない
テストはそれほど網羅的ではない
Apache Bigtop
© 2021 NTT DATA Corporation 8
Products:
Hadoop 2.10.1 # 次のバージョンでHadoop 3になる
HBase 1.5.0
Hive 2.3.6
Kafka 2.4.0
Phoenix 4.15.0-HBase-1.5
Spark 2.4.5
Zookeeper 3.4.13
...
Distros:
CentOS 7 and 8, Debian 9 and 10, Fedora 31, Ubuntu 16.04 and 18.04
Architectures:
x86_64, aarch64 # ppc64leは(マシンがなくて)テストされてない
Bigtop 1.5.0
© 2021 NTT DATA Corporation 9
Compatibility
© 2021 NTT DATA Corporation 10
HadoopはJavaで実装されている
Java部分は多くのプラットフォームで動く
性能向上等の目的で(Cで書かれた)nativeコードをJNI経由で利用
nativeコードがなければpure Java実装にフォールバック
実用上Linuxのシステムコール前提な部分が多い
サーバ側は実態としてLinux前提
コード上にWindows対応の名残はあるけどあまりメンテされてない
Microsoft AzureのHDInsightもUbuntuを利用
# Amazon EMRはAmazon Linux
BigtopもLinuxのみを対象にパッケージングを行なっている
プラットフォーム互換性
© 2021 NTT DATA Corporation 11
Javaではpublic, protected, privateのような修飾子で可視性を制御
publicなクラス/メソッドが外部から呼べるAPI
削除したりシグネチャ/仕様を変えると非互換な変更
呼び出している側が動かなくなったり、ビルドが通らなくなったりする
ユーザ向けではないが、モジュール間で参照する意図でpublicなクラス/メソッドも多い
(Hadoopは)それを示すためのInterfaceAudienceアノテーションを使っている
@InterfaceAudience.PublicなものだけJavadocが出力される
@InterfaceAudience.Privateだとマイナーバージョンアップでも変更されうる
アノテーションがついてるから外から呼べなくなるわけではない
歴史的経緯で外部から呼ばれていることもありがち
Java 9(以降)に移行するとモジュール機能(JPMS)で整理することもできるはずだけど...
JavaのAPI
@InterfaceAudience.LimitedPrivate({ "MapReduce", "HBase" })
@InterfaceStability.Unstable
public class DistributedFileSystem extends FileSystem
implements KeyProviderTokenIssuer, BatchListingOperations {
DistributedFileSystem.java:
© 2021 NTT DATA Corporation 12
Hadoopエコシステムのプロダクト(の多く)はMavenを利用
多くのプロダクトに依存し多くのプロダクトから依存される
ミドルウェア間で競合しがちなdependencies
SLF4J, Log4j
commons-logging, commons-cli, commons-httpclient
Jackson
Guava
Netty, Jetty, Jersey
protobuf-java
ZooKeeper, Curator
...
Mavenのdependency
© 2021 NTT DATA Corporation 13
https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Transitive_Dependencies
依存ライブラリの依存ライブラリも依存ライブラリ
同一クラスローダ上に同じクラスの異なるバージョンは並存できない
依存関係ツリー上に複数のバージョンがある場合、近いものが勝つ (dependency mediation)
mediationの結果、問題なくビルドできて動くという保証はない
Hadoopエコシステムのプロダクトの依存関係ツリーは、さらに深くなる
Transitive dependencies
$ mvn dependency:tree -Dmaven-dependency-plugin.version=2.10 -Dverbose
...
[INFO] org.apache.hadoop:hadoop-common:jar:3.4.0-SNAPSHOT
...
[INFO] +- org.apache.httpcomponents:httpclient:jar:4.5.13:compile
[INFO] | +- org.apache.httpcomponents:httpcore:jar:4.4.13:compile
[INFO] | +- (commons-logging:commons-logging:jar:1.1.3:compile - version managed from 1.2; omitted for duplicate)
...
[INFO] +- commons-logging:commons-logging:jar:1.1.3:compile
...
[INFO] +- commons-beanutils:commons-beanutils:jar:1.9.4:compile
[INFO] | +- (commons-logging:commons-logging:jar:1.1.3:compile - version managed from 1.2; omitted for duplicate)
[INFO] | - (commons-collections:commons-collections:jar:3.2.2:compile - omitted for duplicate)
[INFO] +- org.apache.commons:commons-configuration2:jar:2.1.1:compile
[INFO] | - (commons-logging:commons-logging:jar:1.1.3:compile - version managed from 1.2; omitted for duplicate)
hadoop-commonのcommon-loggingに関するdependency mediation:
© 2021 NTT DATA Corporation 14
Javaで実装された(主に運用用の)APIを呼び出すモジュールを実行するシェルスクリプト
dependentがAPIではなくCLIを実行し、出力をparseすることもある
出力のフォーマットの変更や、warning出力の追加が問題になりがち (HADOOP-11257)
bash-3.0以上が前提 (HADOOP-9902)
CLI
© 2021 NTT DATA Corporation 15
誰がどういう操作をしたかの記録
タブ区切りの独自フォーマット
いまならもっとよいフォーマットにできそうだが..
機械的に処理してチェックされがちなので積極的に変えない
監査ログ
ip=/x.x.x.x cmd=mkdirs src=/tmp dst=null perm=centos:supergroup:rwxr-xr-x proto=rpc
ip=/x.x.x.x cmd=setPermission src=/tmp dst=null perm=centos:supergroup:rwxrwxrwx proto=rpc
ip=/x.x.x.x cmd=create src=/tmp/README.txt._COPYING_ dst=null perm=centos:supergroup:rw-r--r-- proto=rpc
ip=/x.x.x.x cmd=rename src=/tmp/README.txt._COPYING_ dst=/tmp/README.txt perm=centos:supergroup:rw-r--r-- proto=rpc
ip=/x.x.x.x cmd=listStatus src=/tmp dst=null perm=null proto=rpc
ip=/x.x.x.x cmd=open src=/tmp/README.txt dst=null perm=null proto=rpc
...
HDFSのauditログ(の一部):
© 2021 NTT DATA Corporation 16
動作状態や性能を監視する上で有用な統計情報など
JMXで提供している
WebインタフェースからJSON形式で取得することもできる
項目の追加は問題なくできる
既存の項目の変更や削除はincompatible changeとして避けるべき
メトリクス
$ curl localhost:9870/jmx?qry=Hadoop:service=NameNode,name=ReplicatedBlocksState
{
"beans" : [ {
"name" : "Hadoop:service=NameNode,name=ReplicatedBlocksState",
"modelerType" : "org.apache.hadoop.hdfs.server.namenode.FSNamesystem",
"LowRedundancyReplicatedBlocks" : 0,
"CorruptReplicatedBlocks" : 0,
"MissingReplicatedBlocks" : 0,
"MissingReplicationOneBlocks" : 0,
"BytesInFutureReplicatedBlocks" : 0,
"PendingDeletionReplicatedBlocks" : 0,
"TotalReplicatedBlocks" : 1
} ]
}
JMXJsonServletを利用したメトリクス取得:
© 2021 NTT DATA Corporation 17
各プロダクトの開発者は(基本的には)それぞれ別の人
テストコードから外部向けではないAPIが使われがち
ライブラリを脆弱性起因でバージョンアップしたら非互換な変更もセットでついてきたり
互換性は意外とよく壊れる
© 2021 NTT DATA Corporation 18
Bigtop basics
© 2021 NTT DATA Corporation 19
ソースコードは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のソースコードの取得:
© 2021 NTT DATA Corporation 20
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.
...
タスク一覧の表示:
© 2021 NTT DATA Corporation 21
部品表
対象プロダクトとそのバージョンなどが記述されている
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}" }
}
...
BOMの内容:
© 2021 NTT DATA Corporation 22
Bigtop toolchain
© 2021 NTT DATA Corporation 23
プロダクト群をビルドするための環境をセットアップする資材
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によるビルド環境のセットアップ:
© 2021 NTT DATA Corporation 24
packaging
© 2021 NTT DATA Corporation 25
プロダクトをビルドしてパッケージングする
「プロダクト名-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
パッケージングタスクの実行例:
© 2021 NTT DATA Corporation 26
共通のビルド手順とインストール手順を.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
パッケージング資材の配置:
© 2021 NTT DATA Corporation 27
パッケージング時にpatch.*diffという名前のファイルをpatchとして適用
リリース版で解決できない問題に対応するため
特定プラットフォームでビルドが失敗する問題への対処
# Ubuntu, x86_64を暗黙に想定しているパターンが多いような
パッケージング対象バージョンに含まれない修正のバックポート
互換性を壊す変更のrevert
プロダクト間のdependencyのつじつま合わせ
プロダクトA, B, Cの3つが同時に動くバージョンの組み合わせが存在しないなど
独自に修正するとしてもpom.xmlぐらい
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:
© 2021 NTT DATA Corporation 28
$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で実行した場合の例):
© 2021 NTT DATA Corporation 29
「プロダクト名-pkg-ind」というGradleタスクで実行(in Docker container)
異なるOS用のパッケージをビルドできる
Docker Hubのbigtop/slavesのイメージを利用
-POS=centos-7 -Pprefix=trunkだとtrunk-centos-7タグになる(x86_64の場合)
aarch64のマシン上でやるとtrunk-centos-7-aarch64タグ
試行錯誤しつつbigtop-packageの資材を修正する場合には使いにくい(かも)
Dockerコンテナを利用したパッケージング
$ ./gradlew hadoop-pkg-ind -POS=centos-7 -Pprefix=trunk
パッケージングタスクの実行例:
© 2021 NTT DATA Corporation 30
provisioning
© 2021 NTT DATA Corporation 31
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コンテナを利用したデプロイの例:
© 2021 NTT DATA Corporation 32
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の設定ファイル(の一部):
© 2021 NTT DATA Corporation 33
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マニフェストのファイルツリー:
© 2021 NTT DATA Corporation 34
スクリプト経由でコンテナ停止と、一時ファイル等の削除
クラスタ起動中の問題などでやり直す場合も、まず一度--destroyしてから
Dockerクラスタの終了
$ ./docker-hadoop.sh --destroy
Dockerコンテナクラスタの停止:
© 2021 NTT DATA Corporation 35
tests
© 2021 NTT DATA Corporation 36
パッケージをデプロイした状態で動くかざっくり確認するためのテスト
おもに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 = "1traffertyt31n2tjonest33n3tsteinbergt33"
System.out.println("Expected output:n${expected}")
System.out.println("Actual output:n${output}")
assertEquals("Incorrect output", expected, output)
}
smoke-testsのテストケースの例:
© 2021 NTT DATA Corporation 37
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を実行:
© 2021 NTT DATA Corporation 38
Bigtop 3.0.0
© 2021 NTT DATA Corporation 39
https://issues.apache.org/jira/browse/BIGTOP-3471
Hadoop 3.x対応 (なのでBigtopのバージョンも分かりやすく3.0に)
付随してHBase 1.x -> 2.x, Hive 2.x -> 3.x
開発が止まったプロダクトをdrop
特にHadoop 3.x対応が行われていないもの
古いOSのサポートをやめる (Ubuntu 16.04とDebian 9)
新しいOSのサポート(Ubuntu 20.04とDebian 11?)
# CentOS 8は...?
BOM of Bigtop 3.0.0
© 2021 NTT DATA Corporation 40
Summary
© 2021 NTT DATA Corporation 41
Apache Bigtopがやってるのは泥臭い作業
Hadoopエコシステムを使う敷居を下げるには必要
いろいろ勉強にはなる
RedHat系とDebian系のOSいろいろ
Java/Mavenのdependency managementの仕組みと苦労
ネイティブライブラリにまつわるあれこれ
コンテナとプロビジョニングツールを利用したテストとCI
Amazon EMRやAzure HDInsightの理解にも役立つかも?
使ってみたり、パッチを投げてみたりしてください
まとめ
© 2021 NTT DATA Corporation
本資料に記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です。

More Related Content

What's hot

Hadoopの概念と基本的知識
Hadoopの概念と基本的知識Hadoopの概念と基本的知識
Hadoopの概念と基本的知識Ken SASAKI
 
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のキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)hamaken
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理NTT DATA Technology & Innovation
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)Hironobu Suzuki
 
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウトMasahiko Sawada
 
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)NTT DATA Technology & Innovation
 
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
コンテナを止めるな!  PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとはコンテナを止めるな!  PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとはksk_ha
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Etsuji Nakai
 
Unified JVM Logging
Unified JVM LoggingUnified JVM Logging
Unified JVM LoggingYuji Kubota
 
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
 
Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-Yuki Gonda
 
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)NTT DATA Technology & Innovation
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)NTT DATA Technology & Innovation
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションMasahiko Sawada
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーToru Makabe
 

What's hot (20)

Hadoopの概念と基本的知識
Hadoopの概念と基本的知識Hadoopの概念と基本的知識
Hadoopの概念と基本的知識
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
 
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
 
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウト
 
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
 
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
コンテナを止めるな!  PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとはコンテナを止めるな!  PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
 
Unified JVM Logging
Unified JVM LoggingUnified JVM Logging
Unified JVM Logging
 
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
 
Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-
 
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
 
Vacuum徹底解説
Vacuum徹底解説Vacuum徹底解説
Vacuum徹底解説
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
 
Apache Hadoopの新機能Ozoneの現状
Apache Hadoopの新機能Ozoneの現状Apache Hadoopの新機能Ozoneの現状
Apache Hadoopの新機能Ozoneの現状
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
 

Similar to Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka発表資料)

Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...
Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...
Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...NTT DATA Technology & Innovation
 
Apache Hadoopに見るJavaミドルウェアのcompatibility(Open Developers Conference 2020 Onli...
Apache Hadoopに見るJavaミドルウェアのcompatibility(Open Developers Conference 2020 Onli...Apache Hadoopに見るJavaミドルウェアのcompatibility(Open Developers Conference 2020 Onli...
Apache Hadoopに見るJavaミドルウェアのcompatibility(Open Developers Conference 2020 Onli...NTT DATA Technology & Innovation
 
Open stack reference architecture v1 2
Open stack reference architecture v1 2Open stack reference architecture v1 2
Open stack reference architecture v1 2Dell TechCenter Japan
 
Fluentdでログを集めてGlusterFSに保存してMapReduceで集計
Fluentdでログを集めてGlusterFSに保存してMapReduceで集計Fluentdでログを集めてGlusterFSに保存してMapReduceで集計
Fluentdでログを集めてGlusterFSに保存してMapReduceで集計maebashi
 
Hadoopの紹介
Hadoopの紹介Hadoopの紹介
Hadoopの紹介bigt23
 
CloudStackユーザ会 OSC.cloud
CloudStackユーザ会 OSC.cloudCloudStackユーザ会 OSC.cloud
CloudStackユーザ会 OSC.cloudsamemoon
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on dockerHiroshi Miura
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on dockerHiroshi Miura
 
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組みNTT DATA OSS Professional Services
 
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
 
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介Etsuji Nakai
 
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
 
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Masahito Zembutsu
 
Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud AutomationEtsuji Nakai
 
OpenStack QuickStart - Icehouse
OpenStack QuickStart - IcehouseOpenStack QuickStart - Icehouse
OpenStack QuickStart - IcehouseHideki Saito
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストールYasuhiro Arai
 
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方linzhixing
 
OpenStackでも重要な役割を果たすPacemakerを知ろう!
OpenStackでも重要な役割を果たすPacemakerを知ろう!OpenStackでも重要な役割を果たすPacemakerを知ろう!
OpenStackでも重要な役割を果たすPacemakerを知ろう!ksk_ha
 

Similar to Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka発表資料) (20)

Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...
Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...
Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...
 
Apache Hadoopに見るJavaミドルウェアのcompatibility(Open Developers Conference 2020 Onli...
Apache Hadoopに見るJavaミドルウェアのcompatibility(Open Developers Conference 2020 Onli...Apache Hadoopに見るJavaミドルウェアのcompatibility(Open Developers Conference 2020 Onli...
Apache Hadoopに見るJavaミドルウェアのcompatibility(Open Developers Conference 2020 Onli...
 
Open stack reference architecture v1 2
Open stack reference architecture v1 2Open stack reference architecture v1 2
Open stack reference architecture v1 2
 
Fluentdでログを集めてGlusterFSに保存してMapReduceで集計
Fluentdでログを集めてGlusterFSに保存してMapReduceで集計Fluentdでログを集めてGlusterFSに保存してMapReduceで集計
Fluentdでログを集めてGlusterFSに保存してMapReduceで集計
 
Hadoopの紹介
Hadoopの紹介Hadoopの紹介
Hadoopの紹介
 
CloudStackユーザ会 OSC.cloud
CloudStackユーザ会 OSC.cloudCloudStackユーザ会 OSC.cloud
CloudStackユーザ会 OSC.cloud
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on docker
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on docker
 
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み
 
Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)
 
Fig
FigFig
Fig
 
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osaka
 
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話
 
Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud Automation
 
OpenStack QuickStart - Icehouse
OpenStack QuickStart - IcehouseOpenStack QuickStart - Icehouse
OpenStack QuickStart - Icehouse
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストール
 
Hadoop on LXC
Hadoop on LXCHadoop on LXC
Hadoop on LXC
 
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
 
OpenStackでも重要な役割を果たすPacemakerを知ろう!
OpenStackでも重要な役割を果たすPacemakerを知ろう!OpenStackでも重要な役割を果たすPacemakerを知ろう!
OpenStackでも重要な役割を果たすPacemakerを知ろう!
 

More from 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
 

More from 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アンカンファレンス@オンライン 発表資料)
 

Recently uploaded

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 

Recently uploaded (8)

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 

Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka発表資料)

  • 1. © 2021 NTT DATA Corporation 01/30/2021 Masatake Iwasaki NTT DATA Apache BigtopによるHadoopエコシステムのパッケージング
  • 2. © 2021 NTT DATA Corporation 2 Apache Bigtopの取り組みを紹介します Hadoopエコシステムのプロダクトのパッケージングをしています 多くのプロダクトはJavaで実装されていて、Java 8前提の話として聞いてください ときどき出てくるBIGTOP-12345みたいなのはJIRAのissue keyです はじめに
  • 3. © 2021 NTT DATA Corporation 3 HadoopエコシステムとBigtop
  • 4. © 2021 NTT DATA Corporation 4 大規模データ処理基盤 以下をセットで提供 分散ファイルシステム(HDFS) 計算リソース管理機構(YARN) 分散処理フレームワーク(MapReduce) 汎用的な(Linux)サーバ(〜10000台)でクラスタを構成する 大量のデータを格納し、並列分散処理する 2006年に登場 Googleが論文の形で紹介した技術を参考にして作られたOSS実装 Hadoopとは何か?
  • 5. © 2021 NTT DATA Corporation 5 実用上、多種多様な周辺ミドルウェアと組み合わせて利用する Spark: モダンな分散処理基盤/API (deprecating MapReduce) Hive: SQL(ライクな)言語処理系 HBase: 分散KVS (like Bigtable) Sqoop: データローダ Oozie: ワークフロースケジューラ Ranger: アクセス制御 ... プロダクト間の依存関係は複雑 バージョンアップで互換性に影響する変更がときどき入る 機能するバージョンの組み合わせを見つけるのは大変 Hadoopエコシステム
  • 6. © 2021 NTT DATA Corporation 6 ディストリビューション: 機能する組み合わせでパッケージングしたもの 企業(ディストリビュータ)がビジネスとして提供する パッケージング、継続的なupdate、テクニカルサポート Linux(OS)の例として、Red Hat(IBM社)のRed Hat Enterprise Linux ベースバージョンを(原則)固定してパッケージング upstreamの機能追加やバグ修正をbackportしていく 互換性を壊す修正は入れないか、壊さないように直す minor updateしても(原則)アプリケーションに影響を与えない HadoopエコシステムではCloudera社がディストリビューションを提供 Red Hat同様のベースバージョン固定方式で互換性を維持 多種プロダクトの動く組み合わせをテストして提供 独自プロビジョニングツールによる運用が前提 (現在は)(CentOSのような)無償版はない ディストリビューション
  • 7. © 2021 NTT DATA Corporation 7 コミュニティベースの取り組み Hadoopエコシステムのミドルウェアのパッケージングを提供 プロダクトとバージョンの組み合わせ選定 必要に応じてパッチ適用 .rpmおよび.debを作るための資材 # 過去に提供/公開されたCDH用の資材がベース プロビジョニング資材 Dockerファイル/イメージ クラスタ起動用docker-compose資材 Puppetマニフェスト テストフレームワークとテストケース 以上をGradleタスクとして簡易に実行する枠組み 継続的なpatchのバックポートやminor updateは提供していない テストはそれほど網羅的ではない Apache Bigtop
  • 8. © 2021 NTT DATA Corporation 8 Products: Hadoop 2.10.1 # 次のバージョンでHadoop 3になる HBase 1.5.0 Hive 2.3.6 Kafka 2.4.0 Phoenix 4.15.0-HBase-1.5 Spark 2.4.5 Zookeeper 3.4.13 ... Distros: CentOS 7 and 8, Debian 9 and 10, Fedora 31, Ubuntu 16.04 and 18.04 Architectures: x86_64, aarch64 # ppc64leは(マシンがなくて)テストされてない Bigtop 1.5.0
  • 9. © 2021 NTT DATA Corporation 9 Compatibility
  • 10. © 2021 NTT DATA Corporation 10 HadoopはJavaで実装されている Java部分は多くのプラットフォームで動く 性能向上等の目的で(Cで書かれた)nativeコードをJNI経由で利用 nativeコードがなければpure Java実装にフォールバック 実用上Linuxのシステムコール前提な部分が多い サーバ側は実態としてLinux前提 コード上にWindows対応の名残はあるけどあまりメンテされてない Microsoft AzureのHDInsightもUbuntuを利用 # Amazon EMRはAmazon Linux BigtopもLinuxのみを対象にパッケージングを行なっている プラットフォーム互換性
  • 11. © 2021 NTT DATA Corporation 11 Javaではpublic, protected, privateのような修飾子で可視性を制御 publicなクラス/メソッドが外部から呼べるAPI 削除したりシグネチャ/仕様を変えると非互換な変更 呼び出している側が動かなくなったり、ビルドが通らなくなったりする ユーザ向けではないが、モジュール間で参照する意図でpublicなクラス/メソッドも多い (Hadoopは)それを示すためのInterfaceAudienceアノテーションを使っている @InterfaceAudience.PublicなものだけJavadocが出力される @InterfaceAudience.Privateだとマイナーバージョンアップでも変更されうる アノテーションがついてるから外から呼べなくなるわけではない 歴史的経緯で外部から呼ばれていることもありがち Java 9(以降)に移行するとモジュール機能(JPMS)で整理することもできるはずだけど... JavaのAPI @InterfaceAudience.LimitedPrivate({ "MapReduce", "HBase" }) @InterfaceStability.Unstable public class DistributedFileSystem extends FileSystem implements KeyProviderTokenIssuer, BatchListingOperations { DistributedFileSystem.java:
  • 12. © 2021 NTT DATA Corporation 12 Hadoopエコシステムのプロダクト(の多く)はMavenを利用 多くのプロダクトに依存し多くのプロダクトから依存される ミドルウェア間で競合しがちなdependencies SLF4J, Log4j commons-logging, commons-cli, commons-httpclient Jackson Guava Netty, Jetty, Jersey protobuf-java ZooKeeper, Curator ... Mavenのdependency
  • 13. © 2021 NTT DATA Corporation 13 https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Transitive_Dependencies 依存ライブラリの依存ライブラリも依存ライブラリ 同一クラスローダ上に同じクラスの異なるバージョンは並存できない 依存関係ツリー上に複数のバージョンがある場合、近いものが勝つ (dependency mediation) mediationの結果、問題なくビルドできて動くという保証はない Hadoopエコシステムのプロダクトの依存関係ツリーは、さらに深くなる Transitive dependencies $ mvn dependency:tree -Dmaven-dependency-plugin.version=2.10 -Dverbose ... [INFO] org.apache.hadoop:hadoop-common:jar:3.4.0-SNAPSHOT ... [INFO] +- org.apache.httpcomponents:httpclient:jar:4.5.13:compile [INFO] | +- org.apache.httpcomponents:httpcore:jar:4.4.13:compile [INFO] | +- (commons-logging:commons-logging:jar:1.1.3:compile - version managed from 1.2; omitted for duplicate) ... [INFO] +- commons-logging:commons-logging:jar:1.1.3:compile ... [INFO] +- commons-beanutils:commons-beanutils:jar:1.9.4:compile [INFO] | +- (commons-logging:commons-logging:jar:1.1.3:compile - version managed from 1.2; omitted for duplicate) [INFO] | - (commons-collections:commons-collections:jar:3.2.2:compile - omitted for duplicate) [INFO] +- org.apache.commons:commons-configuration2:jar:2.1.1:compile [INFO] | - (commons-logging:commons-logging:jar:1.1.3:compile - version managed from 1.2; omitted for duplicate) hadoop-commonのcommon-loggingに関するdependency mediation:
  • 14. © 2021 NTT DATA Corporation 14 Javaで実装された(主に運用用の)APIを呼び出すモジュールを実行するシェルスクリプト dependentがAPIではなくCLIを実行し、出力をparseすることもある 出力のフォーマットの変更や、warning出力の追加が問題になりがち (HADOOP-11257) bash-3.0以上が前提 (HADOOP-9902) CLI
  • 15. © 2021 NTT DATA Corporation 15 誰がどういう操作をしたかの記録 タブ区切りの独自フォーマット いまならもっとよいフォーマットにできそうだが.. 機械的に処理してチェックされがちなので積極的に変えない 監査ログ ip=/x.x.x.x cmd=mkdirs src=/tmp dst=null perm=centos:supergroup:rwxr-xr-x proto=rpc ip=/x.x.x.x cmd=setPermission src=/tmp dst=null perm=centos:supergroup:rwxrwxrwx proto=rpc ip=/x.x.x.x cmd=create src=/tmp/README.txt._COPYING_ dst=null perm=centos:supergroup:rw-r--r-- proto=rpc ip=/x.x.x.x cmd=rename src=/tmp/README.txt._COPYING_ dst=/tmp/README.txt perm=centos:supergroup:rw-r--r-- proto=rpc ip=/x.x.x.x cmd=listStatus src=/tmp dst=null perm=null proto=rpc ip=/x.x.x.x cmd=open src=/tmp/README.txt dst=null perm=null proto=rpc ... HDFSのauditログ(の一部):
  • 16. © 2021 NTT DATA Corporation 16 動作状態や性能を監視する上で有用な統計情報など JMXで提供している WebインタフェースからJSON形式で取得することもできる 項目の追加は問題なくできる 既存の項目の変更や削除はincompatible changeとして避けるべき メトリクス $ curl localhost:9870/jmx?qry=Hadoop:service=NameNode,name=ReplicatedBlocksState { "beans" : [ { "name" : "Hadoop:service=NameNode,name=ReplicatedBlocksState", "modelerType" : "org.apache.hadoop.hdfs.server.namenode.FSNamesystem", "LowRedundancyReplicatedBlocks" : 0, "CorruptReplicatedBlocks" : 0, "MissingReplicatedBlocks" : 0, "MissingReplicationOneBlocks" : 0, "BytesInFutureReplicatedBlocks" : 0, "PendingDeletionReplicatedBlocks" : 0, "TotalReplicatedBlocks" : 1 } ] } JMXJsonServletを利用したメトリクス取得:
  • 17. © 2021 NTT DATA Corporation 17 各プロダクトの開発者は(基本的には)それぞれ別の人 テストコードから外部向けではないAPIが使われがち ライブラリを脆弱性起因でバージョンアップしたら非互換な変更もセットでついてきたり 互換性は意外とよく壊れる
  • 18. © 2021 NTT DATA Corporation 18 Bigtop basics
  • 19. © 2021 NTT DATA Corporation 19 ソースコードは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のソースコードの取得:
  • 20. © 2021 NTT DATA Corporation 20 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. ... タスク一覧の表示:
  • 21. © 2021 NTT DATA Corporation 21 部品表 対象プロダクトとそのバージョンなどが記述されている 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}" } } ... BOMの内容:
  • 22. © 2021 NTT DATA Corporation 22 Bigtop toolchain
  • 23. © 2021 NTT DATA Corporation 23 プロダクト群をビルドするための環境をセットアップする資材 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によるビルド環境のセットアップ:
  • 24. © 2021 NTT DATA Corporation 24 packaging
  • 25. © 2021 NTT DATA Corporation 25 プロダクトをビルドしてパッケージングする 「プロダクト名-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 パッケージングタスクの実行例:
  • 26. © 2021 NTT DATA Corporation 26 共通のビルド手順とインストール手順を.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 パッケージング資材の配置:
  • 27. © 2021 NTT DATA Corporation 27 パッケージング時にpatch.*diffという名前のファイルをpatchとして適用 リリース版で解決できない問題に対応するため 特定プラットフォームでビルドが失敗する問題への対処 # Ubuntu, x86_64を暗黙に想定しているパターンが多いような パッケージング対象バージョンに含まれない修正のバックポート 互換性を壊す変更のrevert プロダクト間のdependencyのつじつま合わせ プロダクトA, B, Cの3つが同時に動くバージョンの組み合わせが存在しないなど 独自に修正するとしてもpom.xmlぐらい 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:
  • 28. © 2021 NTT DATA Corporation 28 $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で実行した場合の例):
  • 29. © 2021 NTT DATA Corporation 29 「プロダクト名-pkg-ind」というGradleタスクで実行(in Docker container) 異なるOS用のパッケージをビルドできる Docker Hubのbigtop/slavesのイメージを利用 -POS=centos-7 -Pprefix=trunkだとtrunk-centos-7タグになる(x86_64の場合) aarch64のマシン上でやるとtrunk-centos-7-aarch64タグ 試行錯誤しつつbigtop-packageの資材を修正する場合には使いにくい(かも) Dockerコンテナを利用したパッケージング $ ./gradlew hadoop-pkg-ind -POS=centos-7 -Pprefix=trunk パッケージングタスクの実行例:
  • 30. © 2021 NTT DATA Corporation 30 provisioning
  • 31. © 2021 NTT DATA Corporation 31 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コンテナを利用したデプロイの例:
  • 32. © 2021 NTT DATA Corporation 32 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の設定ファイル(の一部):
  • 33. © 2021 NTT DATA Corporation 33 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マニフェストのファイルツリー:
  • 34. © 2021 NTT DATA Corporation 34 スクリプト経由でコンテナ停止と、一時ファイル等の削除 クラスタ起動中の問題などでやり直す場合も、まず一度--destroyしてから Dockerクラスタの終了 $ ./docker-hadoop.sh --destroy Dockerコンテナクラスタの停止:
  • 35. © 2021 NTT DATA Corporation 35 tests
  • 36. © 2021 NTT DATA Corporation 36 パッケージをデプロイした状態で動くかざっくり確認するためのテスト おもに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 = "1traffertyt31n2tjonest33n3tsteinbergt33" System.out.println("Expected output:n${expected}") System.out.println("Actual output:n${output}") assertEquals("Incorrect output", expected, output) } smoke-testsのテストケースの例:
  • 37. © 2021 NTT DATA Corporation 37 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を実行:
  • 38. © 2021 NTT DATA Corporation 38 Bigtop 3.0.0
  • 39. © 2021 NTT DATA Corporation 39 https://issues.apache.org/jira/browse/BIGTOP-3471 Hadoop 3.x対応 (なのでBigtopのバージョンも分かりやすく3.0に) 付随してHBase 1.x -> 2.x, Hive 2.x -> 3.x 開発が止まったプロダクトをdrop 特にHadoop 3.x対応が行われていないもの 古いOSのサポートをやめる (Ubuntu 16.04とDebian 9) 新しいOSのサポート(Ubuntu 20.04とDebian 11?) # CentOS 8は...? BOM of Bigtop 3.0.0
  • 40. © 2021 NTT DATA Corporation 40 Summary
  • 41. © 2021 NTT DATA Corporation 41 Apache Bigtopがやってるのは泥臭い作業 Hadoopエコシステムを使う敷居を下げるには必要 いろいろ勉強にはなる RedHat系とDebian系のOSいろいろ Java/Mavenのdependency managementの仕組みと苦労 ネイティブライブラリにまつわるあれこれ コンテナとプロビジョニングツールを利用したテストとCI Amazon EMRやAzure HDInsightの理解にも役立つかも? 使ってみたり、パッチを投げてみたりしてください まとめ
  • 42. © 2021 NTT DATA Corporation 本資料に記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です。