天天看點

Sqoop資料分析引擎安裝與使用

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