SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
takemikami’s note	– http://takemikami.com/
三上 威 (フリーランスITエンジニア)		twitter:	@takemikami
マーケティングデータ分析基盤技術勉強会
『Apache	Hadoop	&	Hive	入門』
ApacheHadoop&Hiveの概要とAWSでの構成イメージ
1
Hadoop	Hive	AWS
2016.11.4	株式会社フロムスクラッチ 社内勉強会
Copyright	(C)	2016	Takeshi	Mikami.	All	rights	reserved.
フロムスクラッチ
社内勉強会
takemikami’s note	– http://takemikami.com/
アジェンダ
• Apache	Hadoopとは
– Apache	Hadoopとは
– HDFSとは
– MapReduceとは
– YARNとは
– Hadoop	Clusterの全体像
– AWS上でのHadoop
• Apache	Hiveとは
– Apache	Hiveとは
– metastoreとは
– Partitionとは
– external	tableとは
– AWS上でのHive
2Copyright	(C)	2016	Takeshi	Mikami.	All	rights	reserved.
Apache	Hadoop&Hive入門のアジェンダを示します。
takemikami’s note	– http://takemikami.com/
Apache	Hadoopとは
• 「データ保存のための分散ファイルシステム」
「データ処理のための並列処理システム」
によってビッグデータの分散処理を実現する
• 4つのモジュールで構成される
– 共通ユーティリティ (Hadoop	Common)
– 分散ファイルシステム (Hadoop	HDFS)
– クラスタリソース・ジョブ管理 (Hadoop	YARN)
– 並列データ処理システム (Hadoop	MapReduce)
3Copyright	(C)	2016	Takeshi	Mikami.	All	rights	reserved.
Apache	Hadoopとは
Apache	Hadoopの紹介をします。
ビッグデータ分散処理のフレームワーク
takemikami’s note	– http://takemikami.com/
HDFS(Hadoop	Distributed	File	System)とは
• HDFSとはHadoop独自の分散ファイルシステム。NameNodeとDataNode
で構成される
4Copyright	(C)	2016	Takeshi	Mikami.	All	rights	reserved.
Apache	Hadoopとは
HDFS(Hadoop	Distributed	File	SYstem)の紹介をします。
NameNode DataNode
Hadoop	Cluster
DataNode
DataNode
・・・
DataNode管理
メタ情報管理 分散して
ファイルを保存
Client
※同じファイルを3つ以上のDataNodeに保持し、
DataNodeの障害に対応できるように設定するのが一般的
①NameNodeにメタ情報を問い合わせ
②DataNode上のファイルにアクセス
①
②
takemikami’s note	– http://takemikami.com/
MapReduceとは
• MapReduceとはデータの並列処理を行うためのアルゴリズム
• 『○○単位に』『××する』という処理を並列に行うことができる
5Copyright	(C)	2016	Takeshi	Mikami.	All	rights	reserved.
Apache	Hadoopとは
MapReduceについて説明します。
入力ファイル
例) 「訪問者毎に」「PV数を数える」
時間 訪問者ID 種別
00:00 Visitor1 PV
00:03 Visitor1 CLICK
00:04 Visitor7 PV
00:05 Visitor1 PV
訪問者ID PV数
Visitor1 1
Visitor1 0
Visitor7 1
Visitor1 1
訪問者ID PV数
Visitor1 2
Visitor7 1
訪問者ID PV数
Visitor1 2
Map Reduce
他の入力ファイルに対しても
並行してMapReduce
Visitor1 2
Visitor2 1
Visitor2 1
Visitor1 1
訪問者ID PV数
Visitor1 5
Visitor2 2
Reduce
他も
同様にReduce
Shuffle
※ここではVisitor1,2を集めている
HadoopMapReduceは
アルゴリズムの実装
takemikami’s note	– http://takemikami.com/
MapReduceの例: ①Map処理
6Copyright	(C)	2016	Takeshi	Mikami.	All	rights	reserved.
Apache	Hadoopとは
MapReduceについて説明します。
入力ファイル
例) 「訪問者毎に」「PV数を数える」
時間 訪問者ID 種別
00:00 Visitor1 PV
00:03 Visitor1 CLICK
00:04 Visitor7 PV
00:05 Visitor1 PV
訪問者ID PV数
Visitor1 1
Visitor1 0
Visitor7 1
Visitor1 1
訪問者ID PV数
Visitor1 2
Visitor7 1
訪問者ID PV数
Visitor1 2
Map Reduce
他の入力ファイルに対しても
並行してMapReduce
Visitor1 2
Visitor2 1
Visitor2 1
Visitor1 1
訪問者ID PV数
Visitor1 5
Visitor2 2
Reduce
他も
同様にReduce
Shuffle
※ここではVisitor1,2を集めている
入力ファイルの各レコードの内容からPV数を算出する。
種別がPVなら1、それ以外なら0とする
takemikami’s note	– http://takemikami.com/
MapReduceの例: ②Reduce処理(Shuffle前)
7Copyright	(C)	2016	Takeshi	Mikami.	All	rights	reserved.
Apache	Hadoopとは
MapReduceについて説明します。
入力ファイル
例) 「訪問者毎に」「PV数を数える」
時間 訪問者ID 種別
00:00 Visitor1 PV
00:03 Visitor1 CLICK
00:04 Visitor7 PV
00:05 Visitor1 PV
訪問者ID PV数
Visitor1 1
Visitor1 0
Visitor7 1
Visitor1 1
訪問者ID PV数
Visitor1 2
Visitor7 1
訪問者ID PV数
Visitor1 2
Map Reduce
他の入力ファイルに対しても
並行してMapReduce
Visitor1 2
Visitor2 1
Visitor2 1
Visitor1 1
訪問者ID PV数
Visitor1 5
Visitor2 2
Reduce
他も
同様にReduce
Shuffle
※ここではVisitor1,2を集めている
Visitor毎にPV数を合計する。
Visitor1は1+0+1=2,	Visitor7は1となる
takemikami’s note	– http://takemikami.com/
MapReduceの例: ③Shuffle処理
8Copyright	(C)	2016	Takeshi	Mikami.	All	rights	reserved.
Apache	Hadoopとは
MapReduceについて説明します。
入力ファイル
例) 「訪問者毎に」「PV数を数える」
時間 訪問者ID 種別
00:00 Visitor1 PV
00:03 Visitor1 CLICK
00:04 Visitor7 PV
00:05 Visitor1 PV
訪問者ID PV数
Visitor1 1
Visitor1 0
Visitor7 1
Visitor1 1
訪問者ID PV数
Visitor1 2
Visitor7 1
訪問者ID PV数
Visitor1 2
Map Reduce
他の入力ファイルに対しても
並行してMapReduce
Visitor1 2
Visitor2 1
Visitor2 1
Visitor1 1
訪問者ID PV数
Visitor1 5
Visitor2 2
Reduce
他も
同様にReduce
Shuffle
※ここではVisitor1,2を集めている
並列に実行した②の処理結果を、VisitorID毎に集めてくる。
ここではVisitor1,2の結果を集めている(逆にVisitor7は他の処理に任せている)
takemikami’s note	– http://takemikami.com/
MapReduceの例: ④Reduce処理(Shuffle後)
9Copyright	(C)	2016	Takeshi	Mikami.	All	rights	reserved.
Apache	Hadoopとは
MapReduceについて説明します。
入力ファイル
例) 「訪問者毎に」「PV数を数える」
時間 訪問者ID 種別
00:00 Visitor1 PV
00:03 Visitor1 CLICK
00:04 Visitor7 PV
00:05 Visitor1 PV
訪問者ID PV数
Visitor1 1
Visitor1 0
Visitor7 1
Visitor1 1
訪問者ID PV数
Visitor1 2
Visitor7 1
訪問者ID PV数
Visitor1 2
Map Reduce
他の入力ファイルに対しても
並行してMapReduce
Visitor1 2
Visitor2 1
Visitor2 1
Visitor1 1
訪問者ID PV数
Visitor1 5
Visitor2 2
Reduce
他も
同様にReduce
Shuffle
※ここではVisitor1,2を集めている
Visitor毎にPV数を合計する。
Visitor1は2+2+1=5,	Visitor2は1+1=2となる
takemikami’s note	– http://takemikami.com/
YARN(Yet	Another	Resource	Negotiator)とは
• YARNはHadoopクラスタのリソース管理と、ジョブスケジューリングを行
う。ResourceManagerとNodeManagerで構成される
10Copyright	(C)	2016	Takeshi	Mikami.	All	rights	reserved.
Apache	Hadoopとは
YARN(Yet	Another	Resource	Negotiator)の紹介をします。
ResourceManager NodeManager
Hadoop	Cluster
NodeManager
NodeManager
・・・
リソース管理
ジョブスケジューリング Jobを
並列実行
Client
MapReduceのJobを投入
JobJobJob
JobJobJob
JobJobJob
Map,	Reduce,	Shuffleを実施
takemikami’s note	– http://takemikami.com/
Hadoop	Clusterの全体像
• Hadoop Clusterは『分散ファイルシステム』『並列処理システム』の組み合わせ
構造になる
11Copyright	(C)	2016	Takeshi	Mikami.	All	rights	reserved.
Apache	Hadoopとは
Hadoop	Clusterの全体像を示します。
Hadoop	Cluster
Client NameNode
ResourceManager
DataNode
NodeManager
DataNode
NodeManager
DataNode
NodeManager
JobJobJob
JobJobJob
JobJobJob
Master	node Slave	node
各Nodeに
あるデータ
を処理
Hadoop	Clusterは、
各Nodeに分散保存されているデータに対して、
そのNode上で処理を実施できるので効率が良い。
(処理対象データを取得するための通信が不要)
takemikami’s note	– http://takemikami.com/
EMR	(Elastic	MapReduce)
AWS上でのHadoop
• EMR=HadoopCluster、S3=HDFSと同等だが、以下の点に気をつける。
– EMRは処理完了後Shutdownするので永続的に使用するデータはS3に配置する
– S3上のデータを直接処理すると遅いので、
中間データや何度も参照するデータはEMRのHDFSに配置する
12Copyright	(C)	2016	Takeshi	Mikami.	All	rights	reserved.
Apache	Hadoopとは
AWS上でHadoopをどのように扱うかについて説明します。
NameNode
ResourceManager
DataNode
NodeManager
DataNode
NodeManager
DataNode
NodeManager
JobJobJob
JobJobJob
JobJobJob
Master	node Slave	node S3
NameNode DataNode
DataNode
DataNode
Master	node Slave	node
※S3にNameNodeやDataNodeの用語を使うのは正しく無いですが、
HDFSと似たものというイメージで書いています。処理結果を永続化
入力データを取得
takemikami’s note	– http://takemikami.com/
Apache	Hiveとは
• Hadoopのファイルシステム上に格納されたファイルに対して、
データの問い合わせを行うことができる
• HiveQLというSQLライクな言語を、MapReduceジョブに変換し、
Hadoopに渡し実行する
• コマンドでの実行(hive)、
またはサーバプロセスで実行する(hiveserver2)
13Copyright	(C)	2016	Takeshi	Mikami.	All	rights	reserved.
Apache	Hiveとは
Apache	Hiveの紹介をします。
Hadoop上のファイルに対するクエリ実行環境
takemikami’s note	– http://takemikami.com/
Hiveのシステム構成 〜hiveコマンドの場合
• hiveコマンドは、以下の処理を行う
– HiveQLの受け付け
– HiveQL→MapReduceジョブの変換
– 変換してMapReduceジョブをHadoopに渡す(処理はHadoopで実行)
14Copyright	(C)	2016	Takeshi	Mikami.	All	rights	reserved.
Apache	Hiveとは
EMR	(Elastic	MapReduce)
NameNode
ResourceManager
DataNode
NodeManager
DataNode
NodeManager
DataNode
NodeManager
JobJobJob
JobJobJob
JobJobJob
Master	node Slave	node
Hiveのシステム構成を説明します。
hiveコマンド
metastore
MapReduce
ジョブHiveQL
メタ情報 (テーブル定義)
→RDBへのSQL問い合わせと同じ感覚で、Hadoop上のファイルに問い合わせができる
takemikami’s note	– http://takemikami.com/
beelineなど
Hiveのシステム構成 〜hiveserver2の場合
• hiveserver2の場合も、hiveコマンドと行う処理は同じ
• サーバプロセスになるので、thriftやJDBCドライバ経由でクライアントプ
ログラムからHiveQLを投げることができる
15Copyright	(C)	2016	Takeshi	Mikami.	All	rights	reserved.
Apache	Hiveとは
EMR	(Elastic	MapReduce)
NameNode
ResourceManager
DataNode
NodeManager
DataNode
NodeManager
DataNode
NodeManager
JobJobJob
JobJobJob
JobJobJob
Master	node Slave	node
Hiveのシステム構成を説明します。
hiveserver2
metastore
MapReduce
ジョブHiveQL
メタ情報 (テーブル定義)
takemikami’s note	– http://takemikami.com/
metastoreとは
• metastoreは、HiveQLでクエリでみるテーブル定義情報を格納
• 実体はHadoopクラスタ上、メタ情報はRDBに格納
16Copyright	(C)	2016	Takeshi	Mikami.	All	rights	reserved.
Apache	Hiveとは
Hiveのmetastoreについて説明します。
EMR	(Elastic	MapReduce)
NameNode
ResourceManager
DataNode
NodeManager
DataNode
NodeManager
DataNode
NodeManager
JobJobJob
JobJobJob
JobJobJob
Master	node Slave	nodehiveコマンド
metastore
MapReduce
ジョブHiveQL
メタ情報 (テーブル定義)
時間 訪問者ID 種別
00:00 Visitor1 PV
00:03 Visitor1 CLICK
00:04 Visitor7 PV
00:05 Visitor1 PV
テーブル名 カラム名 型
access_log access_dt datetime
access_log visitor_id string
access_log access_type string
データの実体
(HDFS上のファイル)
takemikami’s note	– http://takemikami.com/
Partitionとは
• hiveのテーブルは、ファイルシステムの指定ディレクトリ配下に格納
• パーティションを用いると、サブディレクトリで管理することができる
– 例えば、期間を区切った集計が多い場合は、年月日などでパーティションを切
ると、対象期間のファイルのみを対象に処理をする(=性能改善)
17Copyright	(C)	2016	Takeshi	Mikami.	All	rights	reserved.
Apache	Hiveとは
Hiveのpartitionについて説明します。
テーブル(パーティション無し)
/0001
/0002
/0003
/0004
テーブル(年月日パーティション有り)
/ymd=20160101
/0001
/0002
/ymd=20160102
/0001
/0002
全ファイルを処理
指定した期間の
ファイルのみを処理
→DWHでは期間指定のクエリを多用するので、期間指定のパーティションはよく使われる
takemikami’s note	– http://takemikami.com/
external	tableとは
• external	tableを使うと、HDFSなどに配置したファイル(tsvなど)を
hiveのテーブルとして扱うことができる
18Copyright	(C)	2016	Takeshi	Mikami.	All	rights	reserved.
Apache	Hiveとは
Hiveのexternal	tableについて説明します。
※ hiveのテーブルの実体は、ファイルシステム上のファイル。
通常の(externalでない)テーブルの場合、create	tableでテーブルを作成してinsertするとファイルが作成される
EMR	(Elastic	MapReduce)
NameNode
ResourceManager
DataNode
NodeManager
DataNode
NodeManager
DataNode
NodeManager
JobJobJob
JobJobJob
JobJobJob
Master	node Slave	node
hiveコマンド
metastore
hive以外のバッチ
なんらかのジョブ
①バッチジョブでデータを投入
Create	external	table
②External	tableとして定義
HiveQL ③External	tableにクエリ発行
External	tableの利用例
takemikami’s note	– http://takemikami.com/
EMR	(Elastic	MapReduce)
AWS上でのHive
• AWSでHiveを使う場合は、
メタデータをRDSで永続化・S3でデータを永続化する
19Copyright	(C)	2016	Takeshi	Mikami.	All	rights	reserved.
Apache	Hiveとは
AWS上でHiveをどのように扱うかについて説明します。
NameNode
ResourceManager
DataNode
NodeManager
DataNode
NodeManager
DataNode
NodeManager
JobJobJob
JobJobJob
JobJobJob
Master	node
Slave	node
S3
NameNode DataNode
DataNode
DataNode
Master	node Slave	node
hiveserver2
metastore
RDSクライアント
(beelineなど)
メタ情報を永続化
データを永続化
※S3にNameNodeやDataNodeの用語を使うのは正しく無いですが、HDFSと
似たものというイメージで書いています。

Más contenido relacionado

La actualidad más candente

iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方歩 柴田
 
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)NTT DATA Technology & Innovation
 
Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-Yuki Gonda
 
大規模データ処理の定番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
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較Akihiro Suda
 
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...NTT DATA Technology & Innovation
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)NTT DATA Technology & Innovation
 
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜Takahiro Inoue
 
ログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについてログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについてcyberagent
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ増田 亨
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)NTT DATA Technology & Innovation
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織Takafumi ONAKA
 
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦いマイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦いota42y
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Kohei Tokunaga
 
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版)
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版) データウェアハウスモデリング入門(ダイジェスト版)(事前公開版)
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版) Satoshi Nagayasu
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
Kubernetesによる機械学習基盤への挑戦
Kubernetesによる機械学習基盤への挑戦Kubernetesによる機械学習基盤への挑戦
Kubernetesによる機械学習基盤への挑戦Preferred Networks
 
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Hiro H.
 

La actualidad más candente (20)

iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
 
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
大規模データ活用向けストレージレイヤソフトのこれまでとこれから(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019/09/05)
 
Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-
 
大規模データ処理の定番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 発...
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 
Hadoopエコシステムのデータストア振り返り
Hadoopエコシステムのデータストア振り返りHadoopエコシステムのデータストア振り返り
Hadoopエコシステムのデータストア振り返り
 
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
 
ログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについてログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについて
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦いマイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版)
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版) データウェアハウスモデリング入門(ダイジェスト版)(事前公開版)
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版)
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
Kubernetesによる機械学習基盤への挑戦
Kubernetesによる機械学習基盤への挑戦Kubernetesによる機械学習基盤への挑戦
Kubernetesによる機械学習基盤への挑戦
 
Hadoop入門
Hadoop入門Hadoop入門
Hadoop入門
 
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
 

Similar a Apache Hadoop & Hive 入門 (マーケティングデータ分析基盤技術勉強会)

20160127三木会 RDB経験者のためのspark
20160127三木会 RDB経験者のためのspark20160127三木会 RDB経験者のためのspark
20160127三木会 RDB経験者のためのsparkRyuji Tamagawa
 
並列分散処理基盤Hadoopの紹介と、開発者が語るHadoopの使いどころ (Silicon Valley x 日本 / Tech x Business ...
並列分散処理基盤Hadoopの紹介と、開発者が語るHadoopの使いどころ (Silicon Valley x 日本 / Tech x Business ...並列分散処理基盤Hadoopの紹介と、開発者が語るHadoopの使いどころ (Silicon Valley x 日本 / Tech x Business ...
並列分散処理基盤Hadoopの紹介と、開発者が語るHadoopの使いどころ (Silicon Valley x 日本 / Tech x Business ...NTT DATA OSS Professional Services
 
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpマイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpMasahito Zembutsu
 
株式会社インタースペース 守安様 登壇資料
株式会社インタースペース 守安様 登壇資料株式会社インタースペース 守安様 登壇資料
株式会社インタースペース 守安様 登壇資料leverages_event
 
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますinfinite_loop
 
20130313 OSCA Hadoopセミナー
20130313 OSCA Hadoopセミナー20130313 OSCA Hadoopセミナー
20130313 OSCA HadoopセミナーIchiro Fukuda
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料Recruit Technologies
 
第1回Hadoop関西勉強会参加レポート
第1回Hadoop関西勉強会参加レポート第1回Hadoop関西勉強会参加レポート
第1回Hadoop関西勉強会参加レポートYou&I
 
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たち
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たちATN No.1 MapReduceだけでない!? Hadoopとその仲間たち
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たちAdvancedTechNight
 
[D22] Pivotal HD 2.0 -業界最高レベルSQL on Hadoop技術「HAWQ」解説- by Masayuki Matsushita
[D22] Pivotal HD 2.0 -業界最高レベルSQL on Hadoop技術「HAWQ」解説- by Masayuki Matsushita[D22] Pivotal HD 2.0 -業界最高レベルSQL on Hadoop技術「HAWQ」解説- by Masayuki Matsushita
[D22] Pivotal HD 2.0 -業界最高レベルSQL on Hadoop技術「HAWQ」解説- by Masayuki MatsushitaInsight Technology, Inc.
 
9/16 Tokyo Apache Drill Meetup - drill vs sparksql
9/16 Tokyo Apache Drill Meetup - drill vs sparksql9/16 Tokyo Apache Drill Meetup - drill vs sparksql
9/16 Tokyo Apache Drill Meetup - drill vs sparksqlMitsutoshi Kiuchi
 
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC EnterpriseYusukeKuramata
 
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例Shigeru UCHIYAMA
 
TokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoopTokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoopTeruo Kawasaki
 
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...Amazon Web Services Japan
 

Similar a Apache Hadoop & Hive 入門 (マーケティングデータ分析基盤技術勉強会) (20)

20160127三木会 RDB経験者のためのspark
20160127三木会 RDB経験者のためのspark20160127三木会 RDB経験者のためのspark
20160127三木会 RDB経験者のためのspark
 
並列分散処理基盤Hadoopの紹介と、開発者が語るHadoopの使いどころ (Silicon Valley x 日本 / Tech x Business ...
並列分散処理基盤Hadoopの紹介と、開発者が語るHadoopの使いどころ (Silicon Valley x 日本 / Tech x Business ...並列分散処理基盤Hadoopの紹介と、開発者が語るHadoopの使いどころ (Silicon Valley x 日本 / Tech x Business ...
並列分散処理基盤Hadoopの紹介と、開発者が語るHadoopの使いどころ (Silicon Valley x 日本 / Tech x Business ...
 
Hadoop事始め
Hadoop事始めHadoop事始め
Hadoop事始め
 
マイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorpマイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorp
 
株式会社インタースペース 守安様 登壇資料
株式会社インタースペース 守安様 登壇資料株式会社インタースペース 守安様 登壇資料
株式会社インタースペース 守安様 登壇資料
 
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せます
 
SAIS/SIGMOD参加報告 in SAIS/DWS2018報告会@Yahoo! JAPAN
SAIS/SIGMOD参加報告 in SAIS/DWS2018報告会@Yahoo! JAPANSAIS/SIGMOD参加報告 in SAIS/DWS2018報告会@Yahoo! JAPAN
SAIS/SIGMOD参加報告 in SAIS/DWS2018報告会@Yahoo! JAPAN
 
20130313 OSCA Hadoopセミナー
20130313 OSCA Hadoopセミナー20130313 OSCA Hadoopセミナー
20130313 OSCA Hadoopセミナー
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料
 
Impalaチューニングポイントベストプラクティス
ImpalaチューニングポイントベストプラクティスImpalaチューニングポイントベストプラクティス
Impalaチューニングポイントベストプラクティス
 
Apache Big Data Miami 2017 - Hadoop Source Code Reading #23 #hadoopreading
Apache Big Data Miami 2017 - Hadoop Source Code Reading #23 #hadoopreadingApache Big Data Miami 2017 - Hadoop Source Code Reading #23 #hadoopreading
Apache Big Data Miami 2017 - Hadoop Source Code Reading #23 #hadoopreading
 
第1回Hadoop関西勉強会参加レポート
第1回Hadoop関西勉強会参加レポート第1回Hadoop関西勉強会参加レポート
第1回Hadoop関西勉強会参加レポート
 
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たち
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たちATN No.1 MapReduceだけでない!? Hadoopとその仲間たち
ATN No.1 MapReduceだけでない!? Hadoopとその仲間たち
 
[D22] Pivotal HD 2.0 -業界最高レベルSQL on Hadoop技術「HAWQ」解説- by Masayuki Matsushita
[D22] Pivotal HD 2.0 -業界最高レベルSQL on Hadoop技術「HAWQ」解説- by Masayuki Matsushita[D22] Pivotal HD 2.0 -業界最高レベルSQL on Hadoop技術「HAWQ」解説- by Masayuki Matsushita
[D22] Pivotal HD 2.0 -業界最高レベルSQL on Hadoop技術「HAWQ」解説- by Masayuki Matsushita
 
9/16 Tokyo Apache Drill Meetup - drill vs sparksql
9/16 Tokyo Apache Drill Meetup - drill vs sparksql9/16 Tokyo Apache Drill Meetup - drill vs sparksql
9/16 Tokyo Apache Drill Meetup - drill vs sparksql
 
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
 
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
 
TokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoopTokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoop
 
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
 
Fluentd meetup #2
Fluentd meetup #2Fluentd meetup #2
Fluentd meetup #2
 

Más de Takeshi Mikami

rdflintのvscode拡張の紹介とその実装方法
rdflintのvscode拡張の紹介とその実装方法rdflintのvscode拡張の紹介とその実装方法
rdflintのvscode拡張の紹介とその実装方法Takeshi Mikami
 
適切なクラスタ数を機械的に求める手法の紹介
適切なクラスタ数を機械的に求める手法の紹介適切なクラスタ数を機械的に求める手法の紹介
適切なクラスタ数を機械的に求める手法の紹介Takeshi Mikami
 
OAuth 2.0による認可の流れ
OAuth 2.0による認可の流れOAuth 2.0による認可の流れ
OAuth 2.0による認可の流れTakeshi Mikami
 
MapReduceによるConnected Components(連結成分)の見つけ方
MapReduceによるConnected Components(連結成分)の見つけ方MapReduceによるConnected Components(連結成分)の見つけ方
MapReduceによるConnected Components(連結成分)の見つけ方Takeshi Mikami
 
RDFチェックツール「rdflint」のご紹介 (LODチャレンジ2019受賞作品紹介 基盤技術部門優秀賞)
RDFチェックツール「rdflint」のご紹介 (LODチャレンジ2019受賞作品紹介 基盤技術部門優秀賞)RDFチェックツール「rdflint」のご紹介 (LODチャレンジ2019受賞作品紹介 基盤技術部門優秀賞)
RDFチェックツール「rdflint」のご紹介 (LODチャレンジ2019受賞作品紹介 基盤技術部門優秀賞)Takeshi Mikami
 
データサイエンスアイドル「小日向美穂」と考える「つながり」
データサイエンスアイドル「小日向美穂」と考える「つながり」データサイエンスアイドル「小日向美穂」と考える「つながり」
データサイエンスアイドル「小日向美穂」と考える「つながり」Takeshi Mikami
 
RDFのチェックツール「rdflint」と コミュニティによるオープンデータの作成
RDFのチェックツール「rdflint」とコミュニティによるオープンデータの作成RDFのチェックツール「rdflint」とコミュニティによるオープンデータの作成
RDFのチェックツール「rdflint」と コミュニティによるオープンデータの作成Takeshi Mikami
 
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウCircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウTakeshi Mikami
 
GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方Takeshi Mikami
 
HBase CompleteBulkLoadその仕組み&発生した問題
HBase CompleteBulkLoadその仕組み&発生した問題HBase CompleteBulkLoadその仕組み&発生した問題
HBase CompleteBulkLoadその仕組み&発生した問題Takeshi Mikami
 
RDFチェックツール「rdflint」のご紹介
RDFチェックツール「rdflint」のご紹介RDFチェックツール「rdflint」のご紹介
RDFチェックツール「rdflint」のご紹介Takeshi Mikami
 
アーリース情報技術株式会社 会社案内 (2019/02/13)
アーリース情報技術株式会社 会社案内 (2019/02/13)アーリース情報技術株式会社 会社案内 (2019/02/13)
アーリース情報技術株式会社 会社案内 (2019/02/13)Takeshi Mikami
 
Spark MLlib ML Pipelines の概要 及びpysparkからの扱い方
Spark MLlib ML Pipelines の概要 及びpysparkからの扱い方Spark MLlib ML Pipelines の概要 及びpysparkからの扱い方
Spark MLlib ML Pipelines の概要 及びpysparkからの扱い方Takeshi Mikami
 
センサーによるデータ計測と異常検知の基本
センサーによるデータ計測と異常検知の基本センサーによるデータ計測と異常検知の基本
センサーによるデータ計測と異常検知の基本Takeshi Mikami
 
Webサイトのアクセスログによるユーザー属性推定
Webサイトのアクセスログによるユーザー属性推定Webサイトのアクセスログによるユーザー属性推定
Webサイトのアクセスログによるユーザー属性推定Takeshi Mikami
 
Google Cloud Dataflowによる データ変換処理入門
Google Cloud Dataflowによる データ変換処理入門Google Cloud Dataflowによる データ変換処理入門
Google Cloud Dataflowによる データ変換処理入門Takeshi Mikami
 
IoTでの機械学習活用イメージと強化学習のご紹介
IoTでの機械学習活用イメージと強化学習のご紹介IoTでの機械学習活用イメージと強化学習のご紹介
IoTでの機械学習活用イメージと強化学習のご紹介Takeshi Mikami
 
協調フィルタリング・アソシエーション分析によるレコメンド手法の紹介
協調フィルタリング・アソシエーション分析によるレコメンド手法の紹介協調フィルタリング・アソシエーション分析によるレコメンド手法の紹介
協調フィルタリング・アソシエーション分析によるレコメンド手法の紹介Takeshi Mikami
 
SparkMLlibで始めるビッグデータを対象とした機械学習入門
SparkMLlibで始めるビッグデータを対象とした機械学習入門SparkMLlibで始めるビッグデータを対象とした機械学習入門
SparkMLlibで始めるビッグデータを対象とした機械学習入門Takeshi Mikami
 

Más de Takeshi Mikami (20)

rdflintのvscode拡張の紹介とその実装方法
rdflintのvscode拡張の紹介とその実装方法rdflintのvscode拡張の紹介とその実装方法
rdflintのvscode拡張の紹介とその実装方法
 
適切なクラスタ数を機械的に求める手法の紹介
適切なクラスタ数を機械的に求める手法の紹介適切なクラスタ数を機械的に求める手法の紹介
適切なクラスタ数を機械的に求める手法の紹介
 
OAuth 2.0による認可の流れ
OAuth 2.0による認可の流れOAuth 2.0による認可の流れ
OAuth 2.0による認可の流れ
 
MapReduceによるConnected Components(連結成分)の見つけ方
MapReduceによるConnected Components(連結成分)の見つけ方MapReduceによるConnected Components(連結成分)の見つけ方
MapReduceによるConnected Components(連結成分)の見つけ方
 
RDFチェックツール「rdflint」のご紹介 (LODチャレンジ2019受賞作品紹介 基盤技術部門優秀賞)
RDFチェックツール「rdflint」のご紹介 (LODチャレンジ2019受賞作品紹介 基盤技術部門優秀賞)RDFチェックツール「rdflint」のご紹介 (LODチャレンジ2019受賞作品紹介 基盤技術部門優秀賞)
RDFチェックツール「rdflint」のご紹介 (LODチャレンジ2019受賞作品紹介 基盤技術部門優秀賞)
 
データサイエンスアイドル「小日向美穂」と考える「つながり」
データサイエンスアイドル「小日向美穂」と考える「つながり」データサイエンスアイドル「小日向美穂」と考える「つながり」
データサイエンスアイドル「小日向美穂」と考える「つながり」
 
RDFのチェックツール「rdflint」と コミュニティによるオープンデータの作成
RDFのチェックツール「rdflint」とコミュニティによるオープンデータの作成RDFのチェックツール「rdflint」とコミュニティによるオープンデータの作成
RDFのチェックツール「rdflint」と コミュニティによるオープンデータの作成
 
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウCircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
 
GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方
 
HBase CompleteBulkLoadその仕組み&発生した問題
HBase CompleteBulkLoadその仕組み&発生した問題HBase CompleteBulkLoadその仕組み&発生した問題
HBase CompleteBulkLoadその仕組み&発生した問題
 
RDFチェックツール「rdflint」のご紹介
RDFチェックツール「rdflint」のご紹介RDFチェックツール「rdflint」のご紹介
RDFチェックツール「rdflint」のご紹介
 
アーリース情報技術株式会社 会社案内 (2019/02/13)
アーリース情報技術株式会社 会社案内 (2019/02/13)アーリース情報技術株式会社 会社案内 (2019/02/13)
アーリース情報技術株式会社 会社案内 (2019/02/13)
 
Spark MLlib ML Pipelines の概要 及びpysparkからの扱い方
Spark MLlib ML Pipelines の概要 及びpysparkからの扱い方Spark MLlib ML Pipelines の概要 及びpysparkからの扱い方
Spark MLlib ML Pipelines の概要 及びpysparkからの扱い方
 
SPARQL入門
SPARQL入門SPARQL入門
SPARQL入門
 
センサーによるデータ計測と異常検知の基本
センサーによるデータ計測と異常検知の基本センサーによるデータ計測と異常検知の基本
センサーによるデータ計測と異常検知の基本
 
Webサイトのアクセスログによるユーザー属性推定
Webサイトのアクセスログによるユーザー属性推定Webサイトのアクセスログによるユーザー属性推定
Webサイトのアクセスログによるユーザー属性推定
 
Google Cloud Dataflowによる データ変換処理入門
Google Cloud Dataflowによる データ変換処理入門Google Cloud Dataflowによる データ変換処理入門
Google Cloud Dataflowによる データ変換処理入門
 
IoTでの機械学習活用イメージと強化学習のご紹介
IoTでの機械学習活用イメージと強化学習のご紹介IoTでの機械学習活用イメージと強化学習のご紹介
IoTでの機械学習活用イメージと強化学習のご紹介
 
協調フィルタリング・アソシエーション分析によるレコメンド手法の紹介
協調フィルタリング・アソシエーション分析によるレコメンド手法の紹介協調フィルタリング・アソシエーション分析によるレコメンド手法の紹介
協調フィルタリング・アソシエーション分析によるレコメンド手法の紹介
 
SparkMLlibで始めるビッグデータを対象とした機械学習入門
SparkMLlibで始めるビッグデータを対象とした機械学習入門SparkMLlibで始めるビッグデータを対象とした機械学習入門
SparkMLlibで始めるビッグデータを対象とした機械学習入門
 

Apache Hadoop & Hive 入門 (マーケティングデータ分析基盤技術勉強会)

  • 1. takemikami’s note – http://takemikami.com/ 三上 威 (フリーランスITエンジニア) twitter: @takemikami マーケティングデータ分析基盤技術勉強会 『Apache Hadoop & Hive 入門』 ApacheHadoop&Hiveの概要とAWSでの構成イメージ 1 Hadoop Hive AWS 2016.11.4 株式会社フロムスクラッチ 社内勉強会 Copyright (C) 2016 Takeshi Mikami. All rights reserved. フロムスクラッチ 社内勉強会
  • 2. takemikami’s note – http://takemikami.com/ アジェンダ • Apache Hadoopとは – Apache Hadoopとは – HDFSとは – MapReduceとは – YARNとは – Hadoop Clusterの全体像 – AWS上でのHadoop • Apache Hiveとは – Apache Hiveとは – metastoreとは – Partitionとは – external tableとは – AWS上でのHive 2Copyright (C) 2016 Takeshi Mikami. All rights reserved. Apache Hadoop&Hive入門のアジェンダを示します。
  • 3. takemikami’s note – http://takemikami.com/ Apache Hadoopとは • 「データ保存のための分散ファイルシステム」 「データ処理のための並列処理システム」 によってビッグデータの分散処理を実現する • 4つのモジュールで構成される – 共通ユーティリティ (Hadoop Common) – 分散ファイルシステム (Hadoop HDFS) – クラスタリソース・ジョブ管理 (Hadoop YARN) – 並列データ処理システム (Hadoop MapReduce) 3Copyright (C) 2016 Takeshi Mikami. All rights reserved. Apache Hadoopとは Apache Hadoopの紹介をします。 ビッグデータ分散処理のフレームワーク
  • 4. takemikami’s note – http://takemikami.com/ HDFS(Hadoop Distributed File System)とは • HDFSとはHadoop独自の分散ファイルシステム。NameNodeとDataNode で構成される 4Copyright (C) 2016 Takeshi Mikami. All rights reserved. Apache Hadoopとは HDFS(Hadoop Distributed File SYstem)の紹介をします。 NameNode DataNode Hadoop Cluster DataNode DataNode ・・・ DataNode管理 メタ情報管理 分散して ファイルを保存 Client ※同じファイルを3つ以上のDataNodeに保持し、 DataNodeの障害に対応できるように設定するのが一般的 ①NameNodeにメタ情報を問い合わせ ②DataNode上のファイルにアクセス ① ②
  • 5. takemikami’s note – http://takemikami.com/ MapReduceとは • MapReduceとはデータの並列処理を行うためのアルゴリズム • 『○○単位に』『××する』という処理を並列に行うことができる 5Copyright (C) 2016 Takeshi Mikami. All rights reserved. Apache Hadoopとは MapReduceについて説明します。 入力ファイル 例) 「訪問者毎に」「PV数を数える」 時間 訪問者ID 種別 00:00 Visitor1 PV 00:03 Visitor1 CLICK 00:04 Visitor7 PV 00:05 Visitor1 PV 訪問者ID PV数 Visitor1 1 Visitor1 0 Visitor7 1 Visitor1 1 訪問者ID PV数 Visitor1 2 Visitor7 1 訪問者ID PV数 Visitor1 2 Map Reduce 他の入力ファイルに対しても 並行してMapReduce Visitor1 2 Visitor2 1 Visitor2 1 Visitor1 1 訪問者ID PV数 Visitor1 5 Visitor2 2 Reduce 他も 同様にReduce Shuffle ※ここではVisitor1,2を集めている HadoopMapReduceは アルゴリズムの実装
  • 6. takemikami’s note – http://takemikami.com/ MapReduceの例: ①Map処理 6Copyright (C) 2016 Takeshi Mikami. All rights reserved. Apache Hadoopとは MapReduceについて説明します。 入力ファイル 例) 「訪問者毎に」「PV数を数える」 時間 訪問者ID 種別 00:00 Visitor1 PV 00:03 Visitor1 CLICK 00:04 Visitor7 PV 00:05 Visitor1 PV 訪問者ID PV数 Visitor1 1 Visitor1 0 Visitor7 1 Visitor1 1 訪問者ID PV数 Visitor1 2 Visitor7 1 訪問者ID PV数 Visitor1 2 Map Reduce 他の入力ファイルに対しても 並行してMapReduce Visitor1 2 Visitor2 1 Visitor2 1 Visitor1 1 訪問者ID PV数 Visitor1 5 Visitor2 2 Reduce 他も 同様にReduce Shuffle ※ここではVisitor1,2を集めている 入力ファイルの各レコードの内容からPV数を算出する。 種別がPVなら1、それ以外なら0とする
  • 7. takemikami’s note – http://takemikami.com/ MapReduceの例: ②Reduce処理(Shuffle前) 7Copyright (C) 2016 Takeshi Mikami. All rights reserved. Apache Hadoopとは MapReduceについて説明します。 入力ファイル 例) 「訪問者毎に」「PV数を数える」 時間 訪問者ID 種別 00:00 Visitor1 PV 00:03 Visitor1 CLICK 00:04 Visitor7 PV 00:05 Visitor1 PV 訪問者ID PV数 Visitor1 1 Visitor1 0 Visitor7 1 Visitor1 1 訪問者ID PV数 Visitor1 2 Visitor7 1 訪問者ID PV数 Visitor1 2 Map Reduce 他の入力ファイルに対しても 並行してMapReduce Visitor1 2 Visitor2 1 Visitor2 1 Visitor1 1 訪問者ID PV数 Visitor1 5 Visitor2 2 Reduce 他も 同様にReduce Shuffle ※ここではVisitor1,2を集めている Visitor毎にPV数を合計する。 Visitor1は1+0+1=2, Visitor7は1となる
  • 8. takemikami’s note – http://takemikami.com/ MapReduceの例: ③Shuffle処理 8Copyright (C) 2016 Takeshi Mikami. All rights reserved. Apache Hadoopとは MapReduceについて説明します。 入力ファイル 例) 「訪問者毎に」「PV数を数える」 時間 訪問者ID 種別 00:00 Visitor1 PV 00:03 Visitor1 CLICK 00:04 Visitor7 PV 00:05 Visitor1 PV 訪問者ID PV数 Visitor1 1 Visitor1 0 Visitor7 1 Visitor1 1 訪問者ID PV数 Visitor1 2 Visitor7 1 訪問者ID PV数 Visitor1 2 Map Reduce 他の入力ファイルに対しても 並行してMapReduce Visitor1 2 Visitor2 1 Visitor2 1 Visitor1 1 訪問者ID PV数 Visitor1 5 Visitor2 2 Reduce 他も 同様にReduce Shuffle ※ここではVisitor1,2を集めている 並列に実行した②の処理結果を、VisitorID毎に集めてくる。 ここではVisitor1,2の結果を集めている(逆にVisitor7は他の処理に任せている)
  • 9. takemikami’s note – http://takemikami.com/ MapReduceの例: ④Reduce処理(Shuffle後) 9Copyright (C) 2016 Takeshi Mikami. All rights reserved. Apache Hadoopとは MapReduceについて説明します。 入力ファイル 例) 「訪問者毎に」「PV数を数える」 時間 訪問者ID 種別 00:00 Visitor1 PV 00:03 Visitor1 CLICK 00:04 Visitor7 PV 00:05 Visitor1 PV 訪問者ID PV数 Visitor1 1 Visitor1 0 Visitor7 1 Visitor1 1 訪問者ID PV数 Visitor1 2 Visitor7 1 訪問者ID PV数 Visitor1 2 Map Reduce 他の入力ファイルに対しても 並行してMapReduce Visitor1 2 Visitor2 1 Visitor2 1 Visitor1 1 訪問者ID PV数 Visitor1 5 Visitor2 2 Reduce 他も 同様にReduce Shuffle ※ここではVisitor1,2を集めている Visitor毎にPV数を合計する。 Visitor1は2+2+1=5, Visitor2は1+1=2となる
  • 10. takemikami’s note – http://takemikami.com/ YARN(Yet Another Resource Negotiator)とは • YARNはHadoopクラスタのリソース管理と、ジョブスケジューリングを行 う。ResourceManagerとNodeManagerで構成される 10Copyright (C) 2016 Takeshi Mikami. All rights reserved. Apache Hadoopとは YARN(Yet Another Resource Negotiator)の紹介をします。 ResourceManager NodeManager Hadoop Cluster NodeManager NodeManager ・・・ リソース管理 ジョブスケジューリング Jobを 並列実行 Client MapReduceのJobを投入 JobJobJob JobJobJob JobJobJob Map, Reduce, Shuffleを実施
  • 11. takemikami’s note – http://takemikami.com/ Hadoop Clusterの全体像 • Hadoop Clusterは『分散ファイルシステム』『並列処理システム』の組み合わせ 構造になる 11Copyright (C) 2016 Takeshi Mikami. All rights reserved. Apache Hadoopとは Hadoop Clusterの全体像を示します。 Hadoop Cluster Client NameNode ResourceManager DataNode NodeManager DataNode NodeManager DataNode NodeManager JobJobJob JobJobJob JobJobJob Master node Slave node 各Nodeに あるデータ を処理 Hadoop Clusterは、 各Nodeに分散保存されているデータに対して、 そのNode上で処理を実施できるので効率が良い。 (処理対象データを取得するための通信が不要)
  • 12. takemikami’s note – http://takemikami.com/ EMR (Elastic MapReduce) AWS上でのHadoop • EMR=HadoopCluster、S3=HDFSと同等だが、以下の点に気をつける。 – EMRは処理完了後Shutdownするので永続的に使用するデータはS3に配置する – S3上のデータを直接処理すると遅いので、 中間データや何度も参照するデータはEMRのHDFSに配置する 12Copyright (C) 2016 Takeshi Mikami. All rights reserved. Apache Hadoopとは AWS上でHadoopをどのように扱うかについて説明します。 NameNode ResourceManager DataNode NodeManager DataNode NodeManager DataNode NodeManager JobJobJob JobJobJob JobJobJob Master node Slave node S3 NameNode DataNode DataNode DataNode Master node Slave node ※S3にNameNodeやDataNodeの用語を使うのは正しく無いですが、 HDFSと似たものというイメージで書いています。処理結果を永続化 入力データを取得
  • 13. takemikami’s note – http://takemikami.com/ Apache Hiveとは • Hadoopのファイルシステム上に格納されたファイルに対して、 データの問い合わせを行うことができる • HiveQLというSQLライクな言語を、MapReduceジョブに変換し、 Hadoopに渡し実行する • コマンドでの実行(hive)、 またはサーバプロセスで実行する(hiveserver2) 13Copyright (C) 2016 Takeshi Mikami. All rights reserved. Apache Hiveとは Apache Hiveの紹介をします。 Hadoop上のファイルに対するクエリ実行環境
  • 14. takemikami’s note – http://takemikami.com/ Hiveのシステム構成 〜hiveコマンドの場合 • hiveコマンドは、以下の処理を行う – HiveQLの受け付け – HiveQL→MapReduceジョブの変換 – 変換してMapReduceジョブをHadoopに渡す(処理はHadoopで実行) 14Copyright (C) 2016 Takeshi Mikami. All rights reserved. Apache Hiveとは EMR (Elastic MapReduce) NameNode ResourceManager DataNode NodeManager DataNode NodeManager DataNode NodeManager JobJobJob JobJobJob JobJobJob Master node Slave node Hiveのシステム構成を説明します。 hiveコマンド metastore MapReduce ジョブHiveQL メタ情報 (テーブル定義) →RDBへのSQL問い合わせと同じ感覚で、Hadoop上のファイルに問い合わせができる
  • 15. takemikami’s note – http://takemikami.com/ beelineなど Hiveのシステム構成 〜hiveserver2の場合 • hiveserver2の場合も、hiveコマンドと行う処理は同じ • サーバプロセスになるので、thriftやJDBCドライバ経由でクライアントプ ログラムからHiveQLを投げることができる 15Copyright (C) 2016 Takeshi Mikami. All rights reserved. Apache Hiveとは EMR (Elastic MapReduce) NameNode ResourceManager DataNode NodeManager DataNode NodeManager DataNode NodeManager JobJobJob JobJobJob JobJobJob Master node Slave node Hiveのシステム構成を説明します。 hiveserver2 metastore MapReduce ジョブHiveQL メタ情報 (テーブル定義)
  • 16. takemikami’s note – http://takemikami.com/ metastoreとは • metastoreは、HiveQLでクエリでみるテーブル定義情報を格納 • 実体はHadoopクラスタ上、メタ情報はRDBに格納 16Copyright (C) 2016 Takeshi Mikami. All rights reserved. Apache Hiveとは Hiveのmetastoreについて説明します。 EMR (Elastic MapReduce) NameNode ResourceManager DataNode NodeManager DataNode NodeManager DataNode NodeManager JobJobJob JobJobJob JobJobJob Master node Slave nodehiveコマンド metastore MapReduce ジョブHiveQL メタ情報 (テーブル定義) 時間 訪問者ID 種別 00:00 Visitor1 PV 00:03 Visitor1 CLICK 00:04 Visitor7 PV 00:05 Visitor1 PV テーブル名 カラム名 型 access_log access_dt datetime access_log visitor_id string access_log access_type string データの実体 (HDFS上のファイル)
  • 17. takemikami’s note – http://takemikami.com/ Partitionとは • hiveのテーブルは、ファイルシステムの指定ディレクトリ配下に格納 • パーティションを用いると、サブディレクトリで管理することができる – 例えば、期間を区切った集計が多い場合は、年月日などでパーティションを切 ると、対象期間のファイルのみを対象に処理をする(=性能改善) 17Copyright (C) 2016 Takeshi Mikami. All rights reserved. Apache Hiveとは Hiveのpartitionについて説明します。 テーブル(パーティション無し) /0001 /0002 /0003 /0004 テーブル(年月日パーティション有り) /ymd=20160101 /0001 /0002 /ymd=20160102 /0001 /0002 全ファイルを処理 指定した期間の ファイルのみを処理 →DWHでは期間指定のクエリを多用するので、期間指定のパーティションはよく使われる
  • 18. takemikami’s note – http://takemikami.com/ external tableとは • external tableを使うと、HDFSなどに配置したファイル(tsvなど)を hiveのテーブルとして扱うことができる 18Copyright (C) 2016 Takeshi Mikami. All rights reserved. Apache Hiveとは Hiveのexternal tableについて説明します。 ※ hiveのテーブルの実体は、ファイルシステム上のファイル。 通常の(externalでない)テーブルの場合、create tableでテーブルを作成してinsertするとファイルが作成される EMR (Elastic MapReduce) NameNode ResourceManager DataNode NodeManager DataNode NodeManager DataNode NodeManager JobJobJob JobJobJob JobJobJob Master node Slave node hiveコマンド metastore hive以外のバッチ なんらかのジョブ ①バッチジョブでデータを投入 Create external table ②External tableとして定義 HiveQL ③External tableにクエリ発行 External tableの利用例
  • 19. takemikami’s note – http://takemikami.com/ EMR (Elastic MapReduce) AWS上でのHive • AWSでHiveを使う場合は、 メタデータをRDSで永続化・S3でデータを永続化する 19Copyright (C) 2016 Takeshi Mikami. All rights reserved. Apache Hiveとは AWS上でHiveをどのように扱うかについて説明します。 NameNode ResourceManager DataNode NodeManager DataNode NodeManager DataNode NodeManager JobJobJob JobJobJob JobJobJob Master node Slave node S3 NameNode DataNode DataNode DataNode Master node Slave node hiveserver2 metastore RDSクライアント (beelineなど) メタ情報を永続化 データを永続化 ※S3にNameNodeやDataNodeの用語を使うのは正しく無いですが、HDFSと 似たものというイメージで書いています。