fujitsu standard toolossforum.jp/jossfiles/03... · 2019-04-22 · 「apache hadoop」とは?...
TRANSCRIPT
Copyright 2019 FUJITSU LIMITED
ビッグデータエコシステムを形成するオープンソースソフトウェアの動向
2019年4月17日日本OSS推進フォーラム ビッグデータ部会 所属富士通株式会社野山 孝太郎([email protected])
0
自己紹介
Copyright 2019 FUJITSU LIMITED
名前 野山 孝太郎([email protected])
所属 富士通株式会社
オープンソース専門組織(OSS技術センター)
シニアマネージャー
その他
肩書き
■ 日本OSS推進フォーラム 理事
ビッグデータ部会、広報部会 副部会長
■ 北東アジアOSS推進フォーラム
標準化・認証研究Working Group 主査
■ PostgreSQL Enterprise Consortium
共同発起人、運営委員
■ PGConf. Asia 2016/2017 運営委員
■ PGConf. Asia 2018 運営委員長、など
1/ 44
ビッグデータエコシステムを形成するオープンソースソフトウェア(鳥観図)
Copyright 2019 FUJITSU LIMITED2/ 44
Copyright 2019 FUJITSU LIMITED
「ビッグデータ」とは?
【参考】 平成24年版 情報通信白書(総務省)
ソーシャルメディアデータ
ソーシャルメディアにおいて参加者が書き込むプロフィール、コメント等
マルチメディアデータ
ウェブ上の配信サイト等において提供される音声、動画等
ウェブサイトデータ
ECサイトやブログ等において蓄積等される購入履歴、ブログエントリー等
カスタマーデータ
CRMシステムにおいて管理等されるDM等販促データ、会員カードデータ等
センサーデータ
GPS、ICカードやRFID等において検知等される位置、乗車履歴、温度、加速度等
オフィスデータ
オフィスのパソコン等において作成等されるオフィス文書、Eメール等
ログデータ
ウェブサーバ等において自動的に生成等されるアクセスログ、エラーログ等
オペレーションデータ
販売管理等の業務システムにおいて生成等されるPOSデータ、取引明細データ等
ビッグデータICT(情報通信技術)の進展により
生成・収集・蓄積等が可能・容易になる多種多量のデータ(ビッグデータ)を
活用することにより、異変の察知や近未来の予測等を通じ、
利用者個々のニーズに即したサービスの提供、業務運営の効率化や新産業の創出等が可能。
3/ 44
「ビッグデータ」の中核となるオープンソース
Copyright 2019 FUJITSU LIMITED
ソーシャルメディアデータ
ソーシャルメディアにおいて参加者が書き込むプロフィール、コメント等
マルチメディアデータ
ウェブ上の配信サイト等において提供される音声、動画等
ウェブサイトデータ
ECサイトやブログ等において蓄積等される購入履歴、ブログエントリー等
カスタマーデータ
CRMシステムにおいて管理等されるDM等販促データ、会員カードデータ等
センサーデータ
GPS、ICカードやRFID等において検知等される位置、乗車履歴、温度、加速度等
オフィスデータ
オフィスのパソコン等において作成等されるオフィス文書、Eメール等
ログデータ
ウェブサーバ等において自動的に生成等されるアクセスログ、エラーログ等
オペレーションデータ
販売管理等の業務システムにおいて生成等されるPOSデータ、取引明細データ等
4/ 44
「Apache Hadoop」とは?
ビッグデータの為の分散処理フレームワーク。
Googleの分散処理基盤(MapReduce、GFS)を参考にして開発された。
Apache Hadoopの構成(ver 2.0以降)
分散処理エンジン⇒ 大量のデータを複数のワーカーで並列に処理する仕組み。
分散リソース管理⇒ 分散処理のリソースを制御する仕組み。
分散ファイルシステム⇒ 大量のデータを複数のサーバで管理する仕組み。
Copyright 2019 FUJITSU LIMITED5/ 44
「ビッグデータ」を取り巻く機能要素
Copyright 2019 FUJITSU LIMITED
蓄積(様々なデータを蓄積する)
利用(様々なデータを利用する)
収集(様々なデータを収集する)
6/ 44
「ビッグデータ」を取り巻く機能要素(少し詳しく)
Copyright 2019 FUJITSU LIMITED
蓄積
利用
収集
構造化データの収集(RDBなど)
非構造化データの収集(ログ、センサーデータなど)
ファイルシステム
データストア
分散処理エンジン
ストリームデータ処理 クエリエンジン AIデータ分析検索エンジン
分散リソース管理
7/ 44
Apache Hadoopの位置付け
Copyright 2019 FUJITSU LIMITED
蓄積
利用
収集
構造化データの収集 非構造化データの収集
ファイルシステム
データストア
分散処理エンジン
ストリームデータ処理 クエリエンジン AIデータ分析検索エンジン
分散リソース管理
8/ 44
Apache Hadoop+Apache エコシステム
Copyright 2019 FUJITSU LIMITED
蓄積
利用
収集
構造化データの収集 非構造化データの収集
ファイルシステム
データストア
分散処理エンジン
ストリームデータ処理 クエリエンジン AIデータ分析検索エンジン
分散リソース管理
9/ 44
Apache Project以外の著名なオープンソース
Copyright 2019 FUJITSU LIMITED
蓄積
利用
収集
構造化データの収集 非構造化データの収集
ファイルシステム
データストア
ストリームデータ処理 クエリエンジン AIデータ分析検索エンジン
Pravega
10/ 44
組み合わせ例:Hortonworks(一部)
Copyright 2019 FUJITSU LIMITED
蓄積
利用
収集
構造化データの収集 非構造化データの収集
ファイルシステム
データストア
分散処理エンジン
ストリームデータ処理 クエリエンジン AIデータ分析検索エンジン
分散リソース管理
11/ 44
組み合わせ例:Cloudera(一部)
Copyright 2019 FUJITSU LIMITED
蓄積
利用
収集
構造化データの収集 非構造化データの収集
ファイルシステム
データストア
分散処理エンジン
ストリームデータ処理 クエリエンジン AIデータ分析検索エンジン
分散リソース管理
12/ 44
組み合わせ例:Uber(一部)
Copyright 2019 FUJITSU LIMITED
蓄積
利用
収集
構造化データの収集 非構造化データの収集
ファイルシステム
データストア
分散処理エンジン
ストリームデータ処理 クエリエンジン AIデータ分析検索エンジン
分散リソース管理
独自のクラスタ間レプリケーションの仕組みをオープンソースとして公開
(uReplicator)
13/ 44
組み合わせ例:Airbnb(一部)
Copyright 2019 FUJITSU LIMITED
蓄積
利用
収集
構造化データの収集 非構造化データの収集
ファイルシステム
データストア
分散処理エンジン
ストリームデータ処理 クエリエンジン AIデータ分析検索エンジン
分散リソース管理
独自の機械学習ライブラリを
オープンソースとして公開(Aerosolve)
独自のクエリ実行エンジンを
オープンソースとして公開(Airpal)
14/ 44
ビッグデータ基盤を本格的に使いこなす為に
Copyright 2019 FUJITSU LIMITED
ビッグデータ基盤
運用(監視/管理) セキュリティ(認証など)
15/ 44
各ソフトウェアの動向(成熟度観点)
Copyright 2019 FUJITSU LIMITED16/ 44
富士通の成熟度アセスメント事例
Copyright 2019 FUJITSU LIMITED
開発の傾向
開発のオープン性
開発の継続性/安定性
ライセンス
ソースコードの品質
ソフトウェアの品質
利用の傾向
技術情報の入手難易度
実績/事例
■ライセンスの詳細な条件。■過去、利用者に不利なライセンスに変更された実績がないか。
■開発者の所属。※特定企業の影響を判断。■設計や開発への要求の仕方や参加の仕方がオープンか。
■開発に参加するエンジニアの推移。■開発が安定しているか。リリースが安定しているか。
■複雑度や結合度などソースコード自体の品質。■網羅性などのテスト品質。
■バグの発生傾向や修正品質(期間など)。■脆弱性の発生傾向や修正品質(期間など)。
■マニュアルなどの整備状況。■書籍や勉強会の量、利用者コミュニティの規模など。■有償版やテクニカルサポートなどの提供有無。
■エンタープライズでの利用実績や事例。■各種アワードなどの受賞暦。
【代表的な観点】成熟度
機能/非機能要件
+
17/ 44
著名なオープンソースの整理(with ライセンス)機能 ソフトウェア オープンソースライセンス
収集 構造化データの収集 Apache Sqoop Apache License 2.0
非構造化データの収集 Apache Kafka Apache License 2.0
Apache Flume Apache License 2.0
Apache Chukwa Apache License 2.0
Fluentd Apache License 2.0
Logstash Apache License 2.0
Beats Apache License 2.0
蓄積 ファイルシステム Apache Hadoop HDFS Apache License 2.0
Ceph GNU Lesser General Public License (LGPL) version 2.1
GlusterFS GNU General Public License (GPL) v3
データストア Apache HBase Apache License 2.0
Apache Cassandra Apache License 2.0
Apache Kudu Apache License 2.0
MongoDB Server Side Public License
Redis 3-clause BSD License
Riak Apache License 2.0
OrientDB Apache License 2.0
Neo4j GNU General Public License (GPL) v3
GridDB GNU Affero General Public License (AGPL) v3 /Apache License 2.0
Copyright 2019 FUJITSU LIMITED18/ 44
著名なオープンソースの整理(with ライセンス)機能 ソフトウェア オープンソースライセンス
利用 分散リソース管理 Apache Hadoop YARN Apache License 2.0
Apache Mesos Apache License 2.0
分散処理エンジン Apache Hadoop MapReduce Apache License 2.0
Apache Spark Apache License 2.0
Apache Tez Apache License 2.0
ストリームデータ処理 Apache Storm Apache License 2.0
Apache Flink Apache License 2.0
Apache Samza Apache License 2.0
Apache Spark Streaming Apache License 2.0
Pravega Apache License 2.0
クエリエンジン Apache Hive Apache License 2.0
Apache Impala Apache License 2.0
Apache Phoenix Apache License 2.0
Apache Spark SQL Apache License 2.0
Apache Pig Apache License 2.0
Presto Apache License 2.0
検索エンジン Apache Solr Apache License 2.0
Elasticsearch Apache License 2.0
データ分析 Apache Drill Apache License 2.0
Apache Zeppelin Apache License 2.0
JuPyter Notebook 3-clause BSD License
AI(機械学習/深層学習) Apache Mahout Apache License 2.0
Apache MXNet Apache License 2.0
Apache Spark MLlib Apache License 2.0
Tensorflow Apache License 2.0
CoreML 3-Clause BSD License
PyTorch 3-Clause BSD License
Chainer MIT License
CNTK MIT License
PaddlePaddle Apache License 2.0
Copyright 2019 FUJITSU LIMITED19/ 44
世の中には一般的にどのライセンスが多いのか?
GitHubのプロジェクトが採用しているライセンスは約45%がMIT Licenseとなっている。
次いでGNU GPL v2、Apache License、GNU GPL v3と続く。
Copyright 2019 FUJITSU LIMITED
https://blog.github.com/2015-03-09-open-source-license-usage-on-github-com/
20/ 44
ビッグデータ領域での採用ライセンスの傾向
Apache Projectのソフトウェアも多く、大半(約8割)はApache License 2.0を採用。
Copyright 2019 FUJITSU LIMITED
Apache License 2.078%
21/ 44
開発者数の推移
Copyright 2019 FUJITSU LIMITED
0
50
100
150
200
250
Apache Mahout Apache MXNet Apache Hadoop Redis Apache Spark
Pravega PyTorch Apache Phoenix Riak Apache Kafka
Apache Mesos Apache Cassandra Apache Tez GlusterFS Apache Flink
Apache Zeppelin Apache Pig Apache Impala Logstash Neo4j
Apache Storm JuPyter Notebook Apache Drill PaddlePaddle CNTK
GridDB Apache Kudu Apache Sqoop OrientDB Tensorflow
Presto Fluentd Chainer Apache Samza Apache HBase
Apache Flume CoreML Ceph Beats Apache Solr
Apache Chukwa MongoDB Elasticsearch Apache Hive
Tensorflow
Apache Spark
Ceph
Elasticsearch
PyTorch
22/ 44
開発者数の推移(Apache Project)
Copyright 2019 FUJITSU LIMITED
0
20
40
60
80
100
120
140
160
Apache Mahout Apache MXNet Apache Hadoop Apache Spark Apache Phoenix
Apache Kafka Apache Mesos Apache Cassandra Apache Tez Apache Flink
Apache Zeppelin Apache Pig Apache Impala Apache Storm Apache Drill
Apache Kudu Apache Sqoop Apache Samza Apache HBase Apache Flume
Apache Solr Apache Chukwa Apache Hive
Apache Spark
Apache MXNet
Apache Mesos
23/ 44
開発量の推移
Copyright 2019 FUJITSU LIMITED
0
500
1,000
1,500
2,000
2,500
3,000
Apache Mahout Apache MXNet Apache Hadoop Redis Apache Spark
Pravega PyTorch Apache Phoenix Riak Apache Kafka
Apache Mesos Apache Cassandra Apache Tez GlusterFS Apache Flink
Apache Zeppelin Apache Pig Apache Impala Logstash Neo4j
Apache Storm JuPyter Notebook Apache Drill PaddlePaddle CNTK
GridDB Apache Kudu Apache Sqoop OrientDB Tensorflow
Presto Fluentd Chainer Apache Samza Apache HBase
Apache Flume CoreML Ceph Beats Apache Solr
Apache Chukwa MongoDB Elasticsearch Apache Hive
Tensorflow
Ceph
Neo4j
MongoDB
24/ 44
開発量の推移(Apache Project)
Copyright 2019 FUJITSU LIMITED
0
100
200
300
400
500
600
700
800
900
Apache Mahout Apache MXNet Apache Hadoop Apache Spark Apache Phoenix
Apache Kafka Apache Mesos Apache Cassandra Apache Tez Apache Flink
Apache Zeppelin Apache Pig Apache Impala Apache Storm Apache Drill
Apache Kudu Apache Sqoop Apache Samza Apache HBase Apache Flume
Apache Solr Apache Chukwa Apache Hive
Apache Mesos Apache MXNet
Apache Spark
25/ 44
開発言語の割合
Copyright 2019 FUJITSU LIMITED
Java47.47%
C++16.47%
26/ 44
開発言語の割合(ソフトウェア単位)
Copyright 2019 FUJITSU LIMITED
0
10
20
30
40
50
60
70
80
90
100
Apache M
ahout
Apache M
XN
et
Apache H
adoop
Redis
Apache S
park
PyTorc
h
Apache P
hoenix
Ria
k
Ela
stic
searc
h
Apache K
afk
a
Apache M
eso
s
Apache C
ass
andra
Apache T
ez
Glu
sterF
S
Apache F
link
Apache Z
eppelin
Apache P
ig
Logst
ash
Apache S
torm
JuPyte
r N
ote
book
Apache D
rill
Paddle
Paddle
CN
TK
GridD
B
Apache K
udu
Apache S
qoop
OrientD
B
Tensorf
low
Pre
sto
Flu
entd
Chain
er
Apache S
am
za
Apache I
mpala
Apache F
lum
e
Core
ML
MongoD
B
Ceph
Beats
Apache S
olr
Apache C
hukw
a
Apache H
Base
Neo4j
Apache H
ive
Pra
vega
Java C++ Python Scala C Ruby JavaScript Go Shell その他
27/ 44
バグ解決率
Copyright 2019 FUJITSU LIMITED
10.66
25.51
26.67
42.59
44.85
46.60
49.64
52.10
52.92
58.99
59.36
61.53
62.00
62.63
69.00
70.70
71.31
71.75
73.02
73.20
75.97
76.08
79.42
79.70
80.11
80.15
82.32
82.45
83.94
85.51
86.28
86.52
86.95
87.73
88.00
88.04
89.27
89.79
91.23
91.84
92.39
93.55
100.00
0.00 20.00 40.00 60.00 80.00 100.00 120.00
Apache Sqoop
Apache Pig
Apache Kudu
Apache Hive
Apache Phoenix
Apache Solr
Apache Hadoop
GridDB
Apache Flume
Redis
Apache Tez
GlusterFS
Apache Chukwa
Apache Cassandra
Apache Samza
Apache Mesos
Apache Kafka
Apache HBase
CNTK
JuPyter Notebook
Pravega
CoreML
OrientDB
Beats
PaddlePaddle
Apache Drill
PyTorch
MongoDB
Neo4j
Apache MXNet
Tensorflow
Riak
Elasticsearch
Chainer
Logstash
Apache Zeppelin
Apache Mahout
Apache Storm
Fluentd
Apache Flink
Presto
Apache Spark
Apache Impala
バグの管理形態が個々に異なる為一概にこの値のみで
品質の良し悪しを論じることはできない
28/ 44
バグの解決率推移
Copyright 2019 FUJITSU LIMITED
0
10
20
30
40
50
60
70
80
90
100
Apache Mahout Apache MXNet Apache Hadoop Redis Apache Spark
Pravega PyTorch Apache Phoenix Riak Elasticsearch
Apache Kafka Apache Drill Apache Cassandra Apache Tez GlusterFS
Apache Flink Apache Zeppelin Apache Pig Logstash Apache Storm
JuPyter Notebook Apache Mesos PaddlePaddle CNTK GridDB
Apache Kudu Apache Sqoop OrientDB Tensorflow Presto
Fluentd Chainer Apache Samza Apache Impala Apache Flume
CoreML MongoDB Beats Apache Solr Apache Chukwa
Apache HBase Neo4j Apache Hive
29/ 44
バグ解決品質(例)
バグの発生頻度や優先度を考慮した解決までの日数などを評価。
Copyright 2019 FUJITSU LIMITED
MongoDB
Apache Cassandra
30/ 44
ソースコード品質(複雑度の例)
ソースコードの静的解析による品質(可読性など)を評価。
Copyright 2019 FUJITSU LIMITED
MongoDB
Apache Cassandra
1.0.0 2.0.0
3.0.02.0.01.0.0
31/ 44
受賞歴
The bestmachine learning tools
The best data storageAnd analytics tools
Bossies 2017
他に、Synaptic、Scikit-learn、Caffe2、H2O、CatBoost、XGBoost、Octaveが受賞。
他に、CockroachDB、MapD、CrateDB、Greenplum、Apache Arrow、R、Cruise、JanusGraph、Apache ThinkerPopが受賞。
Bossies 2018
他に、Keras、Fast.ai、H2O、Featuretools、Horovod、Fabric for Deep Learningが受賞。
他に、Apache Pulsar、Apache Beam、KNIME、CockroachDB、Vitess、TiDB、YugaByteDBが受賞。
Copyright 2019 FUJITSU LIMITED32/ 44
なぜウォッチが必要なのか?
Copyright 2019 FUJITSU LIMITED
開発の推移を見ることで、活性/非活性なプロジェクトを判断する指針の一つとする。
Tensorflow PyTorch Caffe
Chainer KerasJubatus
➡ 単純な増減や開発量の大小のみで活性/非活性は判断できない。あくまで複数ある評価軸の一つでしかない点は注意。
33/ 44
最近のライセンス関連の話題
React.js
Facebookは、Apache License 2.0から、特別な特許条項を持つBSDライクなライセンスへ変更。
Apache Software Foundationが、Category-X(禁忌)リストに追加、WordPressがReactの仕様を中止するなど、影響拡大。
その後、批判を受けて「MIT License」に再度変更。
MongoDB
米MongoDBはオープンソース版のライセンスを、これまでAGPLからServer Side Public License(SSPL)へ変更。
SSPLはAGPLをベースとしつつ、クラウド事業者対抗の為、第13条をより厳密化。
Redis
開発元であるRedis Labsが提供する追加モジュールのライセンスにCommons Clauseを追加。
Apache License 2.0の内容に従いつつ、ソフトウェアの販売権を認めない。
Copyright 2019 FUJITSU LIMITED34/ 44
React.js
Copyright 2019 FUJITSU LIMITED
2015年 2016年 2017年 2018年
アクティブな開発者数
コミット数
開発者ごとのコミット割合
35/ 44
React.js
主要開発者の変遷:
Facebook社所属のエンジニアを中心に開発が進む。
Copyright 2019 FUJITSU LIMITED
2015年 2016年 2017年 2018年
Sophie Alpert(元Facebook)
Sebastian Markbage(Facebook)
Paul O’Shannessy(Facebook)
Dan Abramov(Facebook)
Paul O’Shannessy(Facebook)
Sophie Alpert(元Facebook)
Sebastian Markbage(Facebook)
Sebastian Markbage(Facebook)
Sebastian Markbage(Facebook)
Jim(不明)
Jim(不明)
marocchino(不明)
Dan Abramov(Facebook)
Dan Abramov(Facebook)
Brian Vaughn(Facebook)
Brian Vaughn(Facebook)
Brian Vaughn(Facebook)
Andrew Clark(Facebook)
Andrew Clark(Facebook)
Andrew Clark(Facebook)
Sophie Alpert(元Facebook)
Sophie Alpert(元Facebook)
:
: ※7位
※9位
36/ 44
React.js
React.jsの中の”Copyright (c)”表記:658箇所
ほぼすべての著作権を単独の企業(Facebook, Inc.)が保持。
Copyright 2019 FUJITSU LIMITED37/ 44
MongoDB
Copyright 2019 FUJITSU LIMITED
2015年 2016年 2017年 2018年
アクティブな開発者数
コミット数
開発者ごとのコミット割合Benety Goh
Kaloian Manassiev(MongoDB)
38/ 44
MongoDB
MongoDBの中の”Copyright (c)”表記:4,747箇所
ほぼすべての著作権を単独の企業(MongoDB, Inc.)が保持。
Copyright 2019 FUJITSU LIMITED
“/src/mongo”配下のみを対象
39/ 44
Redis
Copyright 2019 FUJITSU LIMITED
2015年 2016年 2017年 2018年
アクティブな開発者数
コミット数
開発者ごとのコミット割合
40/ 44
Redis
主要開発者の変遷:
開発の主軸は、Redis Labs所属のSalvatore Sanfilippo氏。
Copyright 2019 FUJITSU LIMITED
2015年 2016年 2017年 2018年
Salvatore Sanfilippo(Redis Labs)
Salvatore Sanfilippo(Redis Labs)
Salvatore Sanfilippo(Redis Labs)
Salvatore Sanfilippo(Redis Labs)
Matt Stancliff(個人)
Jan-Erik Rediger(RustFest.EU)
Itamar Haber(Redis Labs)
Itamar Haber(Redis Labs)
Itamar Haber(Redis Labs)
Paul Kulchenko(ZeroBrane Studio)
Yossi Gottlieb(個人)
※19位
Yossi Gottlieb(個人)
Dvir Volk(Redis Labs)
Dvir Volk(Redis Labs)
Oran Agra(Redis Labs)
Oran Agra(Redis Labs)
Oran Agra(Redis Labs)
zhaozhao.zz(Alibaba)
zhaozhao.zz(Alibaba)
Yossi Gottlieb(個人)
※21位
artix(StreetLib)
Tony Xia(Alibaba)
Itamar Haber(Redis Labs)
Dvir Volk(Redis Labs)
※20位
※7位
41/ 44
Redis
Redisの中の”Copyright (c)”表記:257箇所
組織名ではなく、個人名(大半はRedis Labs所属)で著作権を表記。
Copyright 2019 FUJITSU LIMITED42/ 44
まとめ
Copyright 2019 FUJITSU LIMITED43/ 44
まとめ
ビッグデータ領域では、様々なオープンソースが新しく生まれており、その流行り廃り(成熟度)を判断する事も重要です。
本日は富士通や日本OSS推進フォーラム ビッグデータ部会で実施している成熟度評価の触りをご紹介しました。
とは言え、個々に成熟度を評価し続けることは非常に大変な為、まずはディストリビューションとして提供されている構成を前提として考えてみる事も、良い進め方だと思います。
ぜひ、この領域を楽しんで下さい。
Copyright 2019 FUJITSU LIMITED44/ 44