2015年4月27日 星期一

0426 hadoop


※ 複習 " 執行 udf檔 跑腳本"

cd ~/Desktop/pig101/pig

pig 

< 執行 > pig -f max_temp_filter_udf.pig

○ 在Terminal 直接Show result :

(1949 , 111)
(1950 , 22)


===================================================

LBS overview   定位

Posisioning:     +   Mapping

  • GPS:精準的
  • cell
  • WIF2
  • IP

Accuracy (roughly, urban area)  

經緯度表示

Map tile system 瓦片系統:

  •  數字越長,表示切越小塊,儲存空間越大
  • 但數字越短,表是切較大塊,儲存空間較小,也比較省效能
  • quadkeys:四元數(0123)

=====================================================================================

(小汽車)
Raw→Location ifn Added
audi
max_mind
raw_log
cloudera/audi/raw_log/

cd audi_UDF

store <儲存>

USING PIGSTORE(',') 表示用逗號隔開



< 操作 > Linux

Step1: 先將"2013-12-08-2-2.tx"推上cloudera

    ● hadoop fs -mkdir /user/cloudera/audi/raw/ios     <在cloudera之下建立資料夾(audi/raw/ios)>
    ● hadoop fs -put  ~/Desktop/audi/raw_log/2013-12-08-2-2.txt   /user /cloudera/audi/raw/ios   
       <<將桌面/audi/raw_log/2013-12-08-2-2.txt 丟進 cloudera/audi/raw/ios>>




○ Eclipse:
下一步:建立新專案 (java project)  <針對.java  右鍵>
下一步:Build path → Configure Bulid path
下一步:Add Extened Jar

下一步:filesystem /usr/lib/   <新增jar 修改至正確>
  • hadoop
  • hadoop mr
  • hadoop lib 
  • pig
下一步:eclipse → Export<整個project>→jar.file→存在桌面


<操作>  Linux

Step2:再將audi/maxmind/txt檔推上去
hadoop fs -mkdir /user/cloudera/audi/maxmind  <在cloudera之下建立資料夾(audi/maxmind)>
hadoop fs -put  ~/Desktop/audi/maxmind/GeoIPCityap.dat  /user/cloudera/audi/maxmind

下一步:pig -f add_location_info.pig

Success!

=====================================================================================
Report Input

pig -f make_report_input.pig

hadoop fs -put ~/Desktop/audi/region_template/ /user/cloudera/audi/region_template

<將桌面上的region_template複製一份到/user/cloudera/audi/region_template>

pig -f  report_ad_geo_location_qk.pig   <qk是資料檔 在region_template內>
run完的資料會顯示在 /user/cloudera/audi/report_output內


PIG  END


===============================================

Sqoop

Import data formats
  • avrodatafile
  • sequencefile
  • textfile  <不適用大量資料>

<圖片 補充sqoop>


sqoop101 放Desktop


<mysql>mysql -u cloudera -p

cd /usr/lib/sqoop
cd lib
 ll
 sqoop list-databases -- connect "jdbc:mysql://localhost" --username cloudera -- password cloudera
<mysql> showdatabase 
<mysql>  use ec ; <使用ec>
<mysql>show tables;
<mysql>select* from user;
<mysql>
(Import)  HDFS
sqoop list-databases -- connect "jdbc:mysql://localhost/ec" --username cloudera -- password cloudera --table user  --/user/cloudera/ec/user -- fields-terminated-by "\t"

EXPORT 傳到MYSQL
<mysql> ls
<mysql>  use ec 
<mysql> show tables
<mysql> select * from timeonsite;
sqoop export --connect "jdbc:mysql://localhost/ec" --username cloudera -- password cloudera --export 


=================================================================

HDFS:分散式系統去處理資料
將需要INPUT資料上傳到HDFS
需要資料就可以以pig散布到其他台主機去執行                                 

沒有留言:

張貼留言