2015年12月21日 星期一

Oracle + Sqoop + HDFS + Hive + Derby + Spark 實際測試範例

建置完所有需要的系統之後,我們終於可以實際的進入測試階段了
當然,每個系統建置完都先實際的測試一下才繼續下一個安裝

以下我將Demo一個實際的範例,內容包括
1. Sqoop import Oracle DB table and data into HDFS & Hive
2.Test Data in Hive and HDFS
3.Query Data in Hive
4.Spark call Hive Data to be a DataFrame, and using DataFrame to show data

在實際執行範例之前,我們必須先把 HDFS , YARN, Derby, Hive測試能成功啟動
Hadoop: 至  $HADOOP_HOME/sbin 執行  start-all.sh (會啟動 HDFS & YARN)
Derby:至  $DERBY_HOME/bin 執行 startNetworkServer -noSecurityManager (可背景執行)
(建議把這些執行的command放到 bashrc的 PATH中,否則一直切換目錄很麻煩)

測試 HDFS and YARN 是否成功:
執行 hadoop dfsadmin -report ($HADOOP_HOME/bin下)或是至 http://nameNodeIP:50070 可觀察是否有2個節點
(註: 如果只用jps 觀察是不夠精準的,原因是NameNode server can start DataNode, but sometimes DataNode can't connect NameNode)

測試 Hive是否可以connect derby後正常啟動

結果如下:


 



確定環境均可正常服務後,我們準備開始測試嘍!

1. Sqoop import oracle database table and data to HDFS &Hive
利用 Sqoop 將 Oracle 裡的 Table & Data 同時 import 至 HDFS & Hive
需要先做兩件事
(1)建立 HDFS 目錄 (執行 sqoop command 時需指定目的地的 HDFS 目錄,附上check是否建成功的command)


(2)Download ojdb6_g.jar 或 ojdbc6.jar 至 $SQOOP_HOME/lib



執行 Sqoop import 嘍! 以後指令以我的測試資料為準,請依你的資料修改指令

sqoop import --connect jdbc:oracle:thin:ds_ams/ds_ams@192.168.11.6:1521:tcffsn --username ds_ams -P --table ams_rank --hive-import --columns "RANK_ID,RANK_NAME,RANK_LEVEL,CREATE_USER,CREATE_TIME,MODIFY_USER,MODIFY_TIME" --target-dir /user/hive/warehouse/ams_rank -m 1

以下過程只附上幾個較為重要的關鍵





2.Test Data in Hive and HDFS




3. Query Data in Hive



4.Spark call Hive Data to be a DataFrame, and using DataFrame to show data










恭喜你,成功嘍~*






沒有留言:

張貼留言