SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler 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と
似たものというイメージで書いています。

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
 
分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)
分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)
分散処理基盤ApacheHadoop入門とHadoopエコシステムの最新技術動向(OSC2015 Kansai発表資料)
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
 
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
 
Apache Kafka 0.11 の Exactly Once Semantics
Apache Kafka 0.11 の Exactly Once SemanticsApache Kafka 0.11 の Exactly Once Semantics
Apache Kafka 0.11 の Exactly Once Semantics
 
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
 
NetflixにおけるPresto/Spark活用事例
NetflixにおけるPresto/Spark活用事例NetflixにおけるPresto/Spark活用事例
NetflixにおけるPresto/Spark活用事例
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
Apache Sparkにおけるメモリ - アプリケーションを落とさないメモリ設計手法 -
Apache Sparkにおけるメモリ - アプリケーションを落とさないメモリ設計手法 -Apache Sparkにおけるメモリ - アプリケーションを落とさないメモリ設計手法 -
Apache Sparkにおけるメモリ - アプリケーションを落とさないメモリ設計手法 -
 
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
 
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料) 40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
 
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編
 
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...
 
大量時空間データの処理 ~ 現状の課題と今後OSSが解決すべきこと。(Open Source Conference 2021 Online/Osaka講演資料)
大量時空間データの処理 ~ 現状の課題と今後OSSが解決すべきこと。(Open Source Conference 2021 Online/Osaka講演資料)大量時空間データの処理 ~ 現状の課題と今後OSSが解決すべきこと。(Open Source Conference 2021 Online/Osaka講演資料)
大量時空間データの処理 ~ 現状の課題と今後OSSが解決すべきこと。(Open Source Conference 2021 Online/Osaka講演資料)
 
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajpAt least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
 
マルチクラウドDWH(Snowflake)のすすめ
マルチクラウドDWH(Snowflake)のすすめマルチクラウドDWH(Snowflake)のすすめ
マルチクラウドDWH(Snowflake)のすすめ
 
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
Apache Hadoop HDFSの最新機能の紹介(2018)#dbts2018
Apache Hadoop HDFSの最新機能の紹介(2018)#dbts2018Apache Hadoop HDFSの最新機能の紹介(2018)#dbts2018
Apache Hadoop HDFSの最新機能の紹介(2018)#dbts2018
 
MapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知るMapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知る
 
KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較
 

Semelhante a 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
 

Semelhante 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
 

Mais de Takeshi Mikami

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