進階、業界應用
==========================
課程介紹 :
25/26 著重在Pig
寫Pig(high level) 比 MapReduce還多
Pig 實例
5/2 /3
Mongo DB
5/9 /10
Hive
Impala
實例
5/17/24/31
Spark
Vpon 移動性廣告
TrendMicro
趨勢科技 (防毒軟體)
=================================================================
什麼是Pig?
以簡單的語言
提供高階語言轉化成MapReduce 應用
是逐行寫碼執行
Pig & SQL & Hive
Hive 支援SQL 60-70%語法
適合用於ETL
Hive 語法最後加 ' ; '
Pig(Hive)
處理的對象是table (relation)
Filter(Where):將符合所需的資訊拉出來
Join:兩張表合併
Group:將資料做總合運算
一張大tbale
裡面會有小table (又稱:bag)
GENERATE GROUP (再次產生GROUP)
===================================
操作
<terminal>
pig
出現grunt 即可
USING PigStorage :用來去load資料 針對文字檔 告訴pig資料格式是用什麼隔開
<EX:欄位是用 ' \t' 隔開,列是用 '\n' 隔開 >
chararray 字串
Pig : schema or read <需要用到前才去定義>
MSSQL: schema or write <B+ tree > 速度快但是不能承載大量的資料
Group:group key (ex: year)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DUMP & STORE
<操作> Terminal
1. 確認桌面上的pig101檔
2. hadoop fs -ls /
3. ls
4. HDFS NameNode <Utilities → Browse the file system 查看cloudera資料夾>
5. 將data包丟進pig101資料夾
- hadoop fs -ls / <查詢>
- hadoop fs -mkdir /user/cloudera/pig101 <在cloudera之下建立資料夾(pig101)>
- hadoop fs -put ~/Desktop/pig101/data /user /cloudera/pig101 <將桌面上的data丟進cloudera的pig101中>
- cd ~/Desktop/pig101/pig <移動到桌面上的pig101的pig>
- pig -f max_temp.pig <執行max_temp.pig>
顯示方法1:
○ 在Terminal 直接Show result :
(1949 , 111)
(1950 , 22)
---------------------------------------------------------------------------------------------------------------------
顯示方法2:
在Terminal
pig
grunt > 要執行檔案內的python程式直接複製貼上也可以ru
result:
(1949 , 111)
(1950 , 22)
========++++========++++========++++========++++========++++========
========++++========++++========++++========++++========++++========
Stream
<操作> Terminal
※ 確認python 資料夾裡面有 is_goodquality.py 檔
1. open pig max_temp_filiter_stream.pig < 並確認DEFINE & SHIP 兩行沒有被--隱藏 >
※ DEFINE & SHIP 為路徑名稱 & 引用的檔案
2. pig -f max_temp_filiter_stream.pig < 執行max_temp.pig >
========++++========++++========++++========++++========++++========
UDF (User Defined load Functions) → 自訂義方法(腳本) <包含.jar & 原始檔>
.jar:針對不同格式資料去寫處理方式,在UDF內執行
原始檔:待處理的原始資料
目的:寫在UDF內,.jar檔是用來處理原始檔 ,且下指令去呼叫jar檔去run
下一步: 將兩個資料夾(pig101 & audi) 放進 CLOUDERA中的WORDSPACE
○ Eclipse:
下一步:建立新專案 (java project) <針對.java 右鍵>
下一步:Build path → Configure Bulid path
下一步:Add Extened Jar
下一步:filesystem /usr/lib/ <新增jar 修改至正確>
- hadoop
- hadoop mr
- hadoop lib
- pig
下一步:CutLoadFunc.java → Export → jar file
下一步:點選桌面的pig101 → workspace → pig101→pig→year_stats.pig
< 修改路徑 > /home/cloudera/Desktop/Workspace/pig101.jar
<操作> Terminal
pig
grunt > 複製year_stats.pig內的code貼上
result:(1901,6,6565,6565)
===========================================
※ 補充 <將檔案上傳至cloudera資料夾>
下一步:Firefox → HDFS NameNode
下一步:hadoop fs -put ~/Desktop/pig101/1901 /user/cloudera/data
沒有留言:
張貼留言