SlideShare a Scribd company logo
1 of 19
Download to read offline
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と
似たものというイメージで書いています。

More Related Content

What's hot

Amazon Elastic MapReduce with Hive/Presto ハンズオン(講義)
Amazon Elastic MapReduce with Hive/Presto ハンズオン(講義)Amazon Elastic MapReduce with Hive/Presto ハンズオン(講義)
Amazon Elastic MapReduce with Hive/Presto ハンズオン(講義)
Amazon Web Services Japan
 

What's hot (20)

Apache Hadoopの新機能Ozoneの現状
Apache Hadoopの新機能Ozoneの現状Apache Hadoopの新機能Ozoneの現状
Apache Hadoopの新機能Ozoneの現状
 
Hadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイントHadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイント
 
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
 
Hadoop入門
Hadoop入門Hadoop入門
Hadoop入門
 
Hadoop -ResourceManager HAの仕組み-
Hadoop -ResourceManager HAの仕組み-Hadoop -ResourceManager HAの仕組み-
Hadoop -ResourceManager HAの仕組み-
 
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
 
Apache Spark + Arrow
Apache Spark + ArrowApache Spark + Arrow
Apache Spark + Arrow
 
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
 
KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講...
分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講...分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講...
分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講...
 
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
 
Elasticsearch as a Distributed System
Elasticsearch as a Distributed SystemElasticsearch as a Distributed System
Elasticsearch as a Distributed System
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
 
Hiveを高速化するLLAP
Hiveを高速化するLLAPHiveを高速化するLLAP
Hiveを高速化するLLAP
 
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
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 発表資料)
 
Kubernetes雑にまとめてみた 2020年8月版
Kubernetes雑にまとめてみた 2020年8月版Kubernetes雑にまとめてみた 2020年8月版
Kubernetes雑にまとめてみた 2020年8月版
 
Amazon Elastic MapReduce with Hive/Presto ハンズオン(講義)
Amazon Elastic MapReduce with Hive/Presto ハンズオン(講義)Amazon Elastic MapReduce with Hive/Presto ハンズオン(講義)
Amazon Elastic MapReduce with Hive/Presto ハンズオン(講義)
 

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

WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料
Recruit Technologies
 
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 Matsushita
Insight Technology, Inc.
 
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
YusukeKuramata
 

Similar to 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
 

More from Takeshi Mikami

More from 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と 似たものというイメージで書いています。