Sqoop資料分析引擎安裝與使用
==>什麼是Sqoop ?
Sqoop 是一個開源的資料處理引擎,主要是通過 JDBC 為媒介, 在Hadoop(Hive)與 傳統的關系型資料庫(Oracle, MySQL,Postgres等)間進行資料的傳遞
HDFS Hive HBase < JDBC > Oracle, MySQL,
==> Sqoop 的安裝:
1. 将安裝包解壓:tar zxf sqoop-1.4.6.bin__hadoop-0.23.tar.gz -C /app
2. 配置環境變量:
vim ~/.bash_profile
SQOOP_HOME=/app/sqoop-1.4.6.bin__hadoop-0.23
export SQOOP_HOME
PATH=$SQOOP_HOME/bin:$PATH
================================================================
3. 因為需要通過 JDBC 與資料庫進行資料傳輸,是以需要将資料庫的 JDBC 工具包放入到 lib 目錄下
打開oracle 安裝目錄: C:\oracle\product\10.2.0\db_1\jdbc\lib
将 ojdbc14.jar 檔案複制到 sqoop 的 bin 目錄下: /app/sqoop-1.4.6.bin__hadoop-0.23/bin
==> Sqoop 的指令詳解:(注意:在oracle 中,使用者名和表名要全部大寫)
codegen ---> 将關系資料庫表映射為一個Java 檔案, Java class類, 以及相關的 jar 包
sqoop codegen \
--connect jdbc:oracle:thin:@192.168.10.210:1521:orcl \
--username SCOTT --password oracle \
--table EMP
create-hive-table ---> 生成與關系資料庫表結構對應的 Hive 表
sqoop create-hive-table \
--username SCOTT --password oracle \
--hive-table emphive
eval ---> 快速地使用 SQL 語句對關系資料庫進行操作
這可以在使用的 import 這種工具進行資料導入的時候,檢查 SQL 語句是否正确,并将結果顯示在控制台
sqoop eval \
--connect jdbc:oracal:thin:@192.168.10.210:1521:orcl \
--username SCOTT --password oracle
--query "select * from emp"
export ---> 從hdfs 中導資料到關系資料庫中
sqoop export \
--connect jdbc:oracle:thin:@192.168.10.210:1521:orcl \
--username SCOTT --password oracle \
--table STUDENTS # 表
--export-dir /students # HDFS 中的資料表
import ---> 将資料庫表的資料導入到 HDFS 中
sqoop export \
--username SCOTT --password oracle
--table EMP \
--target-dir /emp
-------------------------------------------------------------------------------------------------------------
--->将資料導入到HBase 中(需要先将表建立)
sqoop import \
--connect jdbc:oracle:thin:@192.168.10.210:1521:orcl \
--username SCOTT --password oracle \
--table EMP --columns empno, ename, sal, deptno \
--hbase-table emp --hbase-row-key empno --column-family empinfo
row-key 列族
import-all-tables ---> 将資料庫中所有的表的資料導入到 HDFS 中
sqoop import-all-tables \
--username SCOTT --password oracle \
--m 1
job --> 用來生成一個 Sqoop 的任務,生成後,該 任務不執行,除非使用指令執行該任務
list-databases ---> 列印出關系資料庫所有資料庫名
sqoop list-databases \
--connect jdbc:oracle:thin:@192.168.10.210:1521:orcl
--username SYSTEM --password oracle
list-table ---> 列印出關系資料庫中所有的表名
sqoop list-table \
--username SCOTT --password oracle \
-m 1
merge ---> 将 HDFS 中不同目錄下的資料合在一起,并存放在指定的目錄中
metastore ---> 記錄 Sqoop job 的中繼資料資訊
version ---> 顯示 Sqoop 版本資訊
本文轉自 菜鳥的征程 51CTO部落格,原文連結:http://blog.51cto.com/songqinglong/2060384