SlideShare a Scribd company logo
Weblog 分析課程
資料工程(數據池)介紹
徐 凡 耘
2017 – 11 - 30
關 於 我
• Education
– NCU (MIS)
– NCCU (CS)
• Experience
– 大數據平台、分析專案
• Teaching
– III
• Community
– TW Spark User Group
– TW Hadoop User Group
– 台灣資料工程協會理事
Research
III MIC (專欄作家)
AI technology
Big Data & Machine learning
Team
慶騰資訊顧問、聯瞻資訊顧問
課 程 大 綱
• 資料工程
– 數據池(資料治理)
– 資料流
• 資料分析
– 常見的資料分析
• 系統實作
– Docker 安裝與下載實作容器
– 視覺化資料查詢與分析實作
資 料 工 程
• 大數據分析
– 資料科學家、資料分析師
– 資料工程師、資料架構師
• 資料分析
– 得先蒐集各式各樣的資料
– 完成資料整理,才有辦法進行
• 資料工程
– 準備資料分析需要的資料,
透過各種平台技術,進行完
整系統整合性運作
• 台灣資料工程學會推動相
關大數據活動
– https://www.facebook.com/gro
ups/hadoop.tw/
• DataCon.tw
– http://2017.datacon.tw/agenda/
線上埋碼資料收集實作
資料工程
資 料 工 程
• 資料介接
– 了解資料庫與資料介接方式
• 資料架構
– 進行資料儲存架構設計
• 資料儲存
– 實作資料儲存
• 資料撈取
– 學習使用結構化查詢語言進行資料的撈取與組合
資 料 工 程
資 料 工 程
資 料 工 程 – 數據池
資 料 工 程 – 資料治理
資 料 工 程 – 資料治理
• Data stewardship
– DBA
– Data Lifecycle => Company’s data governance policies
• Data quality
– Accuracy, completeness and consistency
– data linking tools, as well as version control, workflow
and project management systems help organizations
attain better data quality
• Master data management
– A discipline that establishes a master reference to
ensure consistent use of data across large organizations
– Using Metadata repositories to impose different product
groups or lines of business in the company promote
different views on how to best present data
資 料 工 程 – 資料治理
• Data governance use cases
– Business process management, legacy modernization,
financial and regulatory compliance, credit risk
management, analytics, business intelligence
applications, data warehouses, and data lakes
資 料 工 程 – 資料治理
• Apache Atlas
– 可伸縮和可擴展的核心功
能資料治理服務,企業可
以利用它高效管理
Hadoop 及企業的資料管
理生態所需
• 核心功能
– Data stage、Mart、整合、
查詢、安全、策略引擎
資 料 工 程 – 資料治理
資 料 工 程 – 資料治理
• OLTP: Online Transaction Processing (DBMS)
• OLAP: Online Analytical Processing (Data Warehousing、NoSQL)
• RTAP: (near) Real-Time Analytics Processing (Big Data Architecture & technology)
資 料 工 程 – 傳統、未來
資 料 工 程 – 資料溫度
• 依照用戶使用情境區別
– 總經理即時要看的銷售報表
– 每日銷售報表
– 每月結帳報表
• 依照系統模型建置區別
– 批次模型建置
– (近)即時模型評分
資 料 工 程 – 資料溫度
資 料 工 程 – 串流資料案例
資 料 工 程 – 串流資料案例
延 伸 閱 讀
• 何謂 Elasticsearch 與相關套件 ELK ?
• 請舉例資料溫度的使用情境與相關套件
• 新版的 Hadoop3 支援 Erasure Coding,如何區
分資料溫度 ?
資 料 分 析
資 料 分 析
資 料 分 析
「80% 都在做加總與平均」
• 資料處理 (Data Munging)
– 會點程式技巧不會吃虧 (Linux、SQL、Python)
• 資料分析 (Data Analysis)
– 最好來點線性代數的底 (Python、R、 OpenBLAS )
• 詮釋結果 (Interpret Result)
– 要有說故事的功夫 (Shiny、 Bokeh、Tableau)
http://tylervigen.com/
資 料 分 析
本 課 程 實 作
Weblog
Generator
HDFS MySQL
Hive server
driver
Metastore
File System
Hive JDBC driver Hive Thrift Zeppelin
Source
channel
Sink
前端使用者瀏覽行為
資料寫入
串流接收服務
寫回 Hive 表格
資料查詢
• 開啟 VMware 程式
• New Virtual Machine
– 選擇 Ubuntu 16.04 的 iso 檔
• 記憶體選 8192MB、空間設為 50GB
• 網路設定選擇 NAT
– 打勾 Virtual Intel VT-x/EPT or AMD-V/RVI
本 課 程 實 作
http://ftp.ubuntu-tw.org/mirror/ubuntu-releases/16.04.3/ubuntu-16.04.3-desktop-amd64.iso
本 課 程 實 作
sudo apt-get update
sudo apt-get install -y curl
curl –fsSL https://download.docker.com/linux/ubuntu/gpg |
sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64]
https://download.docker.com/linux/ubuntu $(lsb_release -cs)
stable"
• 安裝 Docker-ce
本 課 程 實 作
• 安裝 Docker-ce
sudo apt-get update
sudo apt-get install -y docker-ce
本 課 程 實 作
https://hub.docker.com/u/orozcohsu/
• 下載 docker container
docker pull orozcohsu/ha-sp-ze-zo-hi-fl:v7
本 課 程 實 作
本 課 程 實 作
• 啟動 container
docker run -h master -it --rm --name iii 
-e "NODE_TYPE=master" 
-e "AUTHORIZED_SSH_PUBLIC_KEY=$(cat ~/.ssh/id_rsa.pub)" 
-v /tmp/docker-cluster-hadoop-name/:/data/dfs/name/ 
-v /tmp/docker-cluster-hadoop-data/:/data/dfs/data/ 
-v /tmp/docker-cluster-hadoop-logs/:/usr/local/hadoop/logs/ 
-v /tmp/docker-cluster-zookeeper-logs/:/var/log/zookeeper/ 
-v /tmp/docker-cluster-zeppelin-logs/:/usr/local/zeppelin/log 
-p 8088:8088 -p 50070:50070 -p 9000:9000 -p 2222:22 -p 8080:8080 
-p 18080:18080 -p 10000:10000 -p 10002:10002 -p 9083:9083 -p 3306:3306 
orozcohsu/ha-sp-ze-zo-hi-fl:v7
本 課 程 實 作
• 檢查 container 是否啟動
docker ps -a
ad5b10740147 orozcohsu/ha-sp-ze-zo-hi-fl:v7 "startup.sh" 5 minutes ago
Up 5 minutes 5566/tcp, 8030-8033/tcp, 8040/tcp, 0.0.0.0:8080->8080/tcp,
0.0.0.0:8088->8088/tcp, 0.0.0.0:9000->9000/tcp, 0.0.0.0:9083->9083/tcp,
0.0.0.0:10000->10000/tcp, 0.0.0.0:10002->10002/tcp, 0.0.0.0:18080->18080/tcp,
8042/tcp, 0.0.0.0:50070->50070/tcp, 0.0.0.0:2222->22/tcp, 0.0.0.0:3307-
>3306/tcp iii
本 系 統 實 作
• 進入 container
• 查看服務
docker exec -it ad5b10740147 /bin/bash
jps -m
本 系 統 實 作
• 將 weblog-map.csv 資料匯入 hive 表格
cat /tmp/weblog-map.csv | hadoop fs -put - /data/weblog-map.csv
beeline -u jdbc:hive2://master:10000
CREATE TABLE WEBLOGMAP (BRAND STRING,
TELEPHONE STRING,
SALES STRING,
QTY INT)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE ;
LOAD DATA INPATH '/data/weblog-map.csv' OVERWRITE INTO TABLE WEBLOGMAP;
本 課 程 實 作
• 檢視 hive weblog 與 weblogmap 表格
show tables;
select * from weblogmap;
!q
本 課 程 實 作
• 檢視 log-weblog.log 亂數產生結果
cat /tmp/log-weblog.log
2017-11-22 14:10:02,www.pchome.com.tw/mobile.php?page=nokia,xAaBbCcDd
本 課 程 實 作 - Flume
本 課 程 實 作 - Flume
本 課 程 實 作 - Flume
• 檢視 weblog flume 設定檔
vim /usr/local/flume/conf/agent.properties.weblog
agent1.sources.source1.type = netcat
agent1.sources.source1.bind = 127.0.0.1
agent1.sources.source1.port = 5566
agent1.sources.source1.interceptors = i1
agent1.sources.source1.interceptors.i1.type = timestamp
agent1.sources.source1.interceptors.i1.preserveExisting = true
agent1.sources.source1.channels = channel1
本 課 程 實 作
agent1.sinks.sink1.type = hive
agent1.sinks.sink1.channel = channel1
agent1.sinks.sink1.hive.metastore = thrift://127.0.0.1:9083
agent1.sinks.sink1.hive.database = default
agent1.sinks.sink1.hive.table = weblog
agent1.sinks.sink1.useLocalTimeStamp = false
agent1.sinks.sink1.round = true
agent1.sinks.sink1.roundValue = 10
agent1.sinks.sink1.roundUnit = minute
agent1.sinks.sink1.serializer = DELIMITED
agent1.sinks.sink1.serializer.delimiter = ","
agent1.sinks.sink1.serializer.serdeSeparator = ','
agent1.sinks.sink1.serializer.fieldnames = dt,url,uuid
agent1.channels.channel1.type = FILE
agent1.channels.channel1.transactionCapacity = 1000000
agent1.channels.channel1.checkpointInterval = 30000
agent1.channels.channel1.maxFileSize = 2146435071
agent1.channels.channel1.capacity = 10000000
本 課 程 實 作
• 手動執行 flume 串流程式
$FLUME_HOME/bin/flume-ng agent -conf-file
$FLUME_CONF_DIR/agent.properties.weblog -name agent1 --classpath
"/usr/local/hive/hcatalog/share/hcatalog/*":"/usr/local/hive/lib/*" &
本 課 程 實 作
• 灌入測試假資料
• 手動停止灌入程式
python /tmp/log-weblog.py | netcat localhost 5566
Ctrl + C
視覺化資料查詢與分析實作
• Toad Query
• Data explorer
– https://github.com/PatMartin/Dex
• Jupyter
• Drill explorer
• Zeppelin
視覺化資料查詢與分析實作
• 開啟網頁 (請查看本機 IP 位置,Port: 18080 )
視覺化資料查詢與分析實作
• 點選右上方 Interpreter
• 輸入 jdbc 關鍵字,進行相關設定
視覺化資料查詢與分析實作
視覺化資料查詢與分析實作
視覺化資料查詢與分析實作
• Interpreter 需要點時間下載相關檔案
• 找出對手機廠牌有高度興趣的用戶
%jdbc(hive)
SELECT URL, UUID, COUNT(*) AS CNT
FROM WEBLOG
GROUP BY URL, UUID ORDER BY CNT DESC
視覺化資料查詢與分析實作
• 熱門手機瀏覽排行榜
%jdbc(hive)
SELECT URL, COUNT(*) AS CNT
FROM WEBLOG
GROUP BY URL;
視覺化資料查詢與分析實作
• 關注熱門商品的庫存量
%jdbc(hive)
SELECT MOB,C.QTY, CNT, C.SALES,C.TELEPHONE
FROM (
SELECT PARSE_URL(URL,'QUERY','page') AS MOB, CNT FROM (
SELECT URL, COUNT(*) CNT
FROM WEBLOG
GROUP BY URL
ORDER BY CNT DESC
)A LIMIT 5
)B
LEFT JOIN (
SELECT * FROM WEBLOGMAP
)C ON B.MOB=C.BRAND
ORDER BY QTY DESC;
視覺化資料查詢與分析實作
• 將資料結果寫回 hive 表格
%jdbc(hive)
CREATE TABLE RESULT AS
SELECT MOB,C.QTY, CNT, C.SALES,C.TELEPHONE
FROM (
SELECT PARSE_URL(URL,'QUERY','page') AS MOB, CNT FROM (
SELECT URL, COUNT(*) CNT
FROM WEBLOG
GROUP BY URL
ORDER BY CNT DESC
)A LIMIT 5
)B
LEFT JOIN (
SELECT * FROM WEBLOGMAP
)C ON B.MOB=C.BRAND;
延 伸 閱 讀
• 想想這些與大數據的關係?
– 當你跑步時,你的手機馬上讀出你想聽什麼歌,立即挑
出與你腳步最「合拍」的音樂,還可以計算你的心跳
– 如何訂價?一瓶水,手機螢幕馬上跳出數10萬個行銷點
的訂價。哪家最便宜,要不要馬上調價,一目了然,還
告訴你哪裡賣出幾瓶、哪裡有特殊節慶需要大量進貨
– 旋轉盤上少了一盤蔥鮪,30 秒內師傅就會補上一盤;今
天雨下那麼大,客人少3成,備料馬上可以決定少3成
– 租房照片怎樣拍,下訂率比別人多5成?大數據算出訂房
的排名,一看照片果真有黃金角度
參 考
• https://www.managertoday.com.tw/articles/view/52306
• http://101.datascience.community/2014/07/08/data-scientist-vs-data-
engineer/
• http://helicaltech.com/blogs/tag/jasper/page/2/
• https://www.slideshare.net/aprabhakar/data-aggregation-at-scale-using-
apache-flume
• https://blog.v-comply.com/data-governance-structure/
• http://searchdatamanagement.techtarget.com/definition/data-governance
• https://www.javacodegeeks.com/wp-content/uploads/2014/05/elasticsearch-
hadoop-hive.png
• https://www.slideshare.net/BigdataMeetupKochi/hadoop-enhancements-
using-next-gen-ia-technologies-70126797
• https://blogs.technet.microsoft.com/dynamics_taiwan/2014/11/06/39/
• https://www.slideshare.net/AmazonWebServices/aws-apac-webinar-week-
launching-your-first-big-data-project-on-aws
• https://www.informatica.com/products/data-integration/real-time-
integration/vibe-data-stream.html#fbid=YyqoXTtkUfW

More Related Content

Similar to 線上埋碼資料收集實作 (20)

PDF
Log collection
FEG
 
PPT
Hadoop 與 SQL 的甜蜜連結
James Chen
 
PPTX
Hadoop 介紹 20141024
Jay Chu, PMP/OCM
 
PDF
High Throughput Computing Technologies
Jazz Yao-Tsung Wang
 
PDF
Data pipeline essential
Bryan Yang
 
PDF
Hadoop con 2015 hadoop enables enterprise data lake
James Chen
 
PPTX
Bigdata 大資料分析實務 (進階上機課程)
家雋 莊
 
PDF
大資料趨勢介紹與相關使用技術
Wei-Yu Chen
 
PDF
2019 COSCUP 用ETLKettle打造程序流水線
Freddy Fan
 
PDF
淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座
NTC.im(Notch Training Center)
 
PPTX
Mahout資料分析基礎入門
Jhang Raymond
 
PDF
企業導入微服務實戰 - updated
Paul Chao
 
PDF
DRBL-live-hadoop at TSLC
Yu-Chin Tsai
 
PDF
Introduction to K8S Big Data SIG
Jazz Yao-Tsung Wang
 
PDF
淺談 Kubernetes於大數據生態系的相關開發近況
inwin stack
 
PDF
Hadoop ecosystem - hadoop 生態系
Wei-Yu Chen
 
PPTX
Docker實務
國昭 張
 
PPTX
What could hadoop do for us
Simon Hsu
 
PDF
Big Data Taiwan 2014 Track1-3: Big Data, Big Challenge — Splunk 幫你解決 Big Data...
Etu Solution
 
PDF
Bigdata 大資料分析實務 (進階上機課程)
家雋 莊
 
Log collection
FEG
 
Hadoop 與 SQL 的甜蜜連結
James Chen
 
Hadoop 介紹 20141024
Jay Chu, PMP/OCM
 
High Throughput Computing Technologies
Jazz Yao-Tsung Wang
 
Data pipeline essential
Bryan Yang
 
Hadoop con 2015 hadoop enables enterprise data lake
James Chen
 
Bigdata 大資料分析實務 (進階上機課程)
家雋 莊
 
大資料趨勢介紹與相關使用技術
Wei-Yu Chen
 
2019 COSCUP 用ETLKettle打造程序流水線
Freddy Fan
 
淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座
NTC.im(Notch Training Center)
 
Mahout資料分析基礎入門
Jhang Raymond
 
企業導入微服務實戰 - updated
Paul Chao
 
DRBL-live-hadoop at TSLC
Yu-Chin Tsai
 
Introduction to K8S Big Data SIG
Jazz Yao-Tsung Wang
 
淺談 Kubernetes於大數據生態系的相關開發近況
inwin stack
 
Hadoop ecosystem - hadoop 生態系
Wei-Yu Chen
 
Docker實務
國昭 張
 
What could hadoop do for us
Simon Hsu
 
Big Data Taiwan 2014 Track1-3: Big Data, Big Challenge — Splunk 幫你解決 Big Data...
Etu Solution
 
Bigdata 大資料分析實務 (進階上機課程)
家雋 莊
 

More from FEG (20)

PDF
Supervised learning in decision tree algorithm
FEG
 
PDF
Unsupervised learning in data clustering
FEG
 
PDF
CNN_Image Classification for deep learning.pdf
FEG
 
PDF
Sequence Model with practicing hands on coding.pdf
FEG
 
PDF
Seq2seq Model introduction with practicing hands on coding.pdf
FEG
 
PDF
AIGEN introduction with practicing hands on coding.pdf
FEG
 
PDF
資料視覺化_Exploation_Data_Analysis_20241015.pdf
FEG
 
PDF
Operation_research_Linear_programming_20241015.pdf
FEG
 
PDF
Operation_research_Linear_programming_20241112.pdf
FEG
 
PDF
非監督是學習_Kmeans_process_visualization20241110.pdf
FEG
 
PDF
Sequence Model pytorch at colab with gpu.pdf
FEG
 
PDF
學院碩士班_非監督式學習_使用Orange3直接使用_分群_20240417.pdf
FEG
 
PDF
資料視覺化_透過Orange3進行_無須寫程式直接使用_碩士學程_202403.pdf
FEG
 
PDF
Pytorch cnn netowork introduction 20240318
FEG
 
PDF
2023 Decision Tree analysis in business practices
FEG
 
PDF
2023 Clustering analysis using Python from scratch
FEG
 
PDF
2023 Data visualization using Python from scratch
FEG
 
PDF
2023 Supervised Learning for Orange3 from scratch
FEG
 
PDF
2023 Supervised_Learning_Association_Rules
FEG
 
PDF
202312 Exploration Data Analysis Visualization (English version)
FEG
 
Supervised learning in decision tree algorithm
FEG
 
Unsupervised learning in data clustering
FEG
 
CNN_Image Classification for deep learning.pdf
FEG
 
Sequence Model with practicing hands on coding.pdf
FEG
 
Seq2seq Model introduction with practicing hands on coding.pdf
FEG
 
AIGEN introduction with practicing hands on coding.pdf
FEG
 
資料視覺化_Exploation_Data_Analysis_20241015.pdf
FEG
 
Operation_research_Linear_programming_20241015.pdf
FEG
 
Operation_research_Linear_programming_20241112.pdf
FEG
 
非監督是學習_Kmeans_process_visualization20241110.pdf
FEG
 
Sequence Model pytorch at colab with gpu.pdf
FEG
 
學院碩士班_非監督式學習_使用Orange3直接使用_分群_20240417.pdf
FEG
 
資料視覺化_透過Orange3進行_無須寫程式直接使用_碩士學程_202403.pdf
FEG
 
Pytorch cnn netowork introduction 20240318
FEG
 
2023 Decision Tree analysis in business practices
FEG
 
2023 Clustering analysis using Python from scratch
FEG
 
2023 Data visualization using Python from scratch
FEG
 
2023 Supervised Learning for Orange3 from scratch
FEG
 
2023 Supervised_Learning_Association_Rules
FEG
 
202312 Exploration Data Analysis Visualization (English version)
FEG
 
Ad

線上埋碼資料收集實作

  • 2. 關 於 我 • Education – NCU (MIS) – NCCU (CS) • Experience – 大數據平台、分析專案 • Teaching – III • Community – TW Spark User Group – TW Hadoop User Group – 台灣資料工程協會理事 Research III MIC (專欄作家) AI technology Big Data & Machine learning Team 慶騰資訊顧問、聯瞻資訊顧問
  • 3. 課 程 大 綱 • 資料工程 – 數據池(資料治理) – 資料流 • 資料分析 – 常見的資料分析 • 系統實作 – Docker 安裝與下載實作容器 – 視覺化資料查詢與分析實作
  • 4. 資 料 工 程 • 大數據分析 – 資料科學家、資料分析師 – 資料工程師、資料架構師 • 資料分析 – 得先蒐集各式各樣的資料 – 完成資料整理,才有辦法進行 • 資料工程 – 準備資料分析需要的資料, 透過各種平台技術,進行完 整系統整合性運作 • 台灣資料工程學會推動相 關大數據活動 – https://www.facebook.com/gro ups/hadoop.tw/ • DataCon.tw – http://2017.datacon.tw/agenda/
  • 7. 資 料 工 程 • 資料介接 – 了解資料庫與資料介接方式 • 資料架構 – 進行資料儲存架構設計 • 資料儲存 – 實作資料儲存 • 資料撈取 – 學習使用結構化查詢語言進行資料的撈取與組合
  • 10. 資 料 工 程 – 數據池
  • 11. 資 料 工 程 – 資料治理
  • 12. 資 料 工 程 – 資料治理 • Data stewardship – DBA – Data Lifecycle => Company’s data governance policies • Data quality – Accuracy, completeness and consistency – data linking tools, as well as version control, workflow and project management systems help organizations attain better data quality
  • 13. • Master data management – A discipline that establishes a master reference to ensure consistent use of data across large organizations – Using Metadata repositories to impose different product groups or lines of business in the company promote different views on how to best present data 資 料 工 程 – 資料治理
  • 14. • Data governance use cases – Business process management, legacy modernization, financial and regulatory compliance, credit risk management, analytics, business intelligence applications, data warehouses, and data lakes 資 料 工 程 – 資料治理
  • 15. • Apache Atlas – 可伸縮和可擴展的核心功 能資料治理服務,企業可 以利用它高效管理 Hadoop 及企業的資料管 理生態所需 • 核心功能 – Data stage、Mart、整合、 查詢、安全、策略引擎 資 料 工 程 – 資料治理
  • 16. 資 料 工 程 – 資料治理
  • 17. • OLTP: Online Transaction Processing (DBMS) • OLAP: Online Analytical Processing (Data Warehousing、NoSQL) • RTAP: (near) Real-Time Analytics Processing (Big Data Architecture & technology) 資 料 工 程 – 傳統、未來
  • 18. 資 料 工 程 – 資料溫度 • 依照用戶使用情境區別 – 總經理即時要看的銷售報表 – 每日銷售報表 – 每月結帳報表 • 依照系統模型建置區別 – 批次模型建置 – (近)即時模型評分
  • 19. 資 料 工 程 – 資料溫度
  • 20. 資 料 工 程 – 串流資料案例
  • 21. 資 料 工 程 – 串流資料案例
  • 22. 延 伸 閱 讀 • 何謂 Elasticsearch 與相關套件 ELK ? • 請舉例資料溫度的使用情境與相關套件 • 新版的 Hadoop3 支援 Erasure Coding,如何區 分資料溫度 ?
  • 23. 資 料 分
  • 24. 資 料 分
  • 25. 資 料 分 析 「80% 都在做加總與平均」 • 資料處理 (Data Munging) – 會點程式技巧不會吃虧 (Linux、SQL、Python) • 資料分析 (Data Analysis) – 最好來點線性代數的底 (Python、R、 OpenBLAS ) • 詮釋結果 (Interpret Result) – 要有說故事的功夫 (Shiny、 Bokeh、Tableau)
  • 27. 本 課 程 實 作 Weblog Generator HDFS MySQL Hive server driver Metastore File System Hive JDBC driver Hive Thrift Zeppelin Source channel Sink 前端使用者瀏覽行為 資料寫入 串流接收服務 寫回 Hive 表格 資料查詢
  • 28. • 開啟 VMware 程式 • New Virtual Machine – 選擇 Ubuntu 16.04 的 iso 檔 • 記憶體選 8192MB、空間設為 50GB • 網路設定選擇 NAT – 打勾 Virtual Intel VT-x/EPT or AMD-V/RVI 本 課 程 實 作
  • 30. sudo apt-get update sudo apt-get install -y curl curl –fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" • 安裝 Docker-ce 本 課 程 實 作
  • 31. • 安裝 Docker-ce sudo apt-get update sudo apt-get install -y docker-ce 本 課 程 實 作
  • 32. https://hub.docker.com/u/orozcohsu/ • 下載 docker container docker pull orozcohsu/ha-sp-ze-zo-hi-fl:v7 本 課 程 實 作
  • 33. 本 課 程 實 作 • 啟動 container docker run -h master -it --rm --name iii -e "NODE_TYPE=master" -e "AUTHORIZED_SSH_PUBLIC_KEY=$(cat ~/.ssh/id_rsa.pub)" -v /tmp/docker-cluster-hadoop-name/:/data/dfs/name/ -v /tmp/docker-cluster-hadoop-data/:/data/dfs/data/ -v /tmp/docker-cluster-hadoop-logs/:/usr/local/hadoop/logs/ -v /tmp/docker-cluster-zookeeper-logs/:/var/log/zookeeper/ -v /tmp/docker-cluster-zeppelin-logs/:/usr/local/zeppelin/log -p 8088:8088 -p 50070:50070 -p 9000:9000 -p 2222:22 -p 8080:8080 -p 18080:18080 -p 10000:10000 -p 10002:10002 -p 9083:9083 -p 3306:3306 orozcohsu/ha-sp-ze-zo-hi-fl:v7
  • 34. 本 課 程 實 作 • 檢查 container 是否啟動 docker ps -a ad5b10740147 orozcohsu/ha-sp-ze-zo-hi-fl:v7 "startup.sh" 5 minutes ago Up 5 minutes 5566/tcp, 8030-8033/tcp, 8040/tcp, 0.0.0.0:8080->8080/tcp, 0.0.0.0:8088->8088/tcp, 0.0.0.0:9000->9000/tcp, 0.0.0.0:9083->9083/tcp, 0.0.0.0:10000->10000/tcp, 0.0.0.0:10002->10002/tcp, 0.0.0.0:18080->18080/tcp, 8042/tcp, 0.0.0.0:50070->50070/tcp, 0.0.0.0:2222->22/tcp, 0.0.0.0:3307- >3306/tcp iii
  • 35. 本 系 統 實 作 • 進入 container • 查看服務 docker exec -it ad5b10740147 /bin/bash jps -m
  • 36. 本 系 統 實 作 • 將 weblog-map.csv 資料匯入 hive 表格 cat /tmp/weblog-map.csv | hadoop fs -put - /data/weblog-map.csv beeline -u jdbc:hive2://master:10000 CREATE TABLE WEBLOGMAP (BRAND STRING, TELEPHONE STRING, SALES STRING, QTY INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE ; LOAD DATA INPATH '/data/weblog-map.csv' OVERWRITE INTO TABLE WEBLOGMAP;
  • 37. 本 課 程 實 作 • 檢視 hive weblog 與 weblogmap 表格 show tables; select * from weblogmap; !q
  • 38. 本 課 程 實 作 • 檢視 log-weblog.log 亂數產生結果 cat /tmp/log-weblog.log 2017-11-22 14:10:02,www.pchome.com.tw/mobile.php?page=nokia,xAaBbCcDd
  • 39. 本 課 程 實 作 - Flume
  • 40. 本 課 程 實 作 - Flume
  • 41. 本 課 程 實 作 - Flume • 檢視 weblog flume 設定檔 vim /usr/local/flume/conf/agent.properties.weblog agent1.sources.source1.type = netcat agent1.sources.source1.bind = 127.0.0.1 agent1.sources.source1.port = 5566 agent1.sources.source1.interceptors = i1 agent1.sources.source1.interceptors.i1.type = timestamp agent1.sources.source1.interceptors.i1.preserveExisting = true agent1.sources.source1.channels = channel1
  • 42. 本 課 程 實 作 agent1.sinks.sink1.type = hive agent1.sinks.sink1.channel = channel1 agent1.sinks.sink1.hive.metastore = thrift://127.0.0.1:9083 agent1.sinks.sink1.hive.database = default agent1.sinks.sink1.hive.table = weblog agent1.sinks.sink1.useLocalTimeStamp = false agent1.sinks.sink1.round = true agent1.sinks.sink1.roundValue = 10 agent1.sinks.sink1.roundUnit = minute agent1.sinks.sink1.serializer = DELIMITED agent1.sinks.sink1.serializer.delimiter = "," agent1.sinks.sink1.serializer.serdeSeparator = ',' agent1.sinks.sink1.serializer.fieldnames = dt,url,uuid agent1.channels.channel1.type = FILE agent1.channels.channel1.transactionCapacity = 1000000 agent1.channels.channel1.checkpointInterval = 30000 agent1.channels.channel1.maxFileSize = 2146435071 agent1.channels.channel1.capacity = 10000000
  • 43. 本 課 程 實 作 • 手動執行 flume 串流程式 $FLUME_HOME/bin/flume-ng agent -conf-file $FLUME_CONF_DIR/agent.properties.weblog -name agent1 --classpath "/usr/local/hive/hcatalog/share/hcatalog/*":"/usr/local/hive/lib/*" &
  • 44. 本 課 程 實 作 • 灌入測試假資料 • 手動停止灌入程式 python /tmp/log-weblog.py | netcat localhost 5566 Ctrl + C
  • 45. 視覺化資料查詢與分析實作 • Toad Query • Data explorer – https://github.com/PatMartin/Dex • Jupyter • Drill explorer • Zeppelin
  • 50. 視覺化資料查詢與分析實作 • Interpreter 需要點時間下載相關檔案 • 找出對手機廠牌有高度興趣的用戶 %jdbc(hive) SELECT URL, UUID, COUNT(*) AS CNT FROM WEBLOG GROUP BY URL, UUID ORDER BY CNT DESC
  • 52. 視覺化資料查詢與分析實作 • 關注熱門商品的庫存量 %jdbc(hive) SELECT MOB,C.QTY, CNT, C.SALES,C.TELEPHONE FROM ( SELECT PARSE_URL(URL,'QUERY','page') AS MOB, CNT FROM ( SELECT URL, COUNT(*) CNT FROM WEBLOG GROUP BY URL ORDER BY CNT DESC )A LIMIT 5 )B LEFT JOIN ( SELECT * FROM WEBLOGMAP )C ON B.MOB=C.BRAND ORDER BY QTY DESC;
  • 53. 視覺化資料查詢與分析實作 • 將資料結果寫回 hive 表格 %jdbc(hive) CREATE TABLE RESULT AS SELECT MOB,C.QTY, CNT, C.SALES,C.TELEPHONE FROM ( SELECT PARSE_URL(URL,'QUERY','page') AS MOB, CNT FROM ( SELECT URL, COUNT(*) CNT FROM WEBLOG GROUP BY URL ORDER BY CNT DESC )A LIMIT 5 )B LEFT JOIN ( SELECT * FROM WEBLOGMAP )C ON B.MOB=C.BRAND;
  • 54. 延 伸 閱 讀 • 想想這些與大數據的關係? – 當你跑步時,你的手機馬上讀出你想聽什麼歌,立即挑 出與你腳步最「合拍」的音樂,還可以計算你的心跳 – 如何訂價?一瓶水,手機螢幕馬上跳出數10萬個行銷點 的訂價。哪家最便宜,要不要馬上調價,一目了然,還 告訴你哪裡賣出幾瓶、哪裡有特殊節慶需要大量進貨 – 旋轉盤上少了一盤蔥鮪,30 秒內師傅就會補上一盤;今 天雨下那麼大,客人少3成,備料馬上可以決定少3成 – 租房照片怎樣拍,下訂率比別人多5成?大數據算出訂房 的排名,一看照片果真有黃金角度
  • 55. 參 考 • https://www.managertoday.com.tw/articles/view/52306 • http://101.datascience.community/2014/07/08/data-scientist-vs-data- engineer/ • http://helicaltech.com/blogs/tag/jasper/page/2/ • https://www.slideshare.net/aprabhakar/data-aggregation-at-scale-using- apache-flume • https://blog.v-comply.com/data-governance-structure/ • http://searchdatamanagement.techtarget.com/definition/data-governance • https://www.javacodegeeks.com/wp-content/uploads/2014/05/elasticsearch- hadoop-hive.png • https://www.slideshare.net/BigdataMeetupKochi/hadoop-enhancements- using-next-gen-ia-technologies-70126797 • https://blogs.technet.microsoft.com/dynamics_taiwan/2014/11/06/39/ • https://www.slideshare.net/AmazonWebServices/aws-apac-webinar-week- launching-your-first-big-data-project-on-aws • https://www.informatica.com/products/data-integration/real-time- integration/vibe-data-stream.html#fbid=YyqoXTtkUfW