sqoop 的安裝 及與hdfs hive base結合使用

1.上傳sqoop

2.安裝和配置


    把sqoop添加到環境變量 
    將數據庫鏈接驅動拷貝到$SQOOP_HOME/lib裏node


3.使用

第一類:數據庫中的數據導入到HDFS上


        sqoop import --connect jdbc:mysql://192.168.1.10:3306/itcast --username root --password 123  --table trade_detail --columns 'id, account, income, expenses'
        
        指定輸出路徑、指定數據分隔符
        sqoop import --connect jdbc:mysql://192.168.1.10:3306/itcast --username root --password 123  --table trade_detail --target-dir '/sqoop/td' --fields-terminated-by '\t'
        
        指定Map數量 -m 
        sqoop import --connect jdbc:mysql://192.168.1.10:3306/itcast --username root --password 123  --table trade_detail --target-dir '/sqoop/td1' --fields-terminated-by '\t' -m 2mysql

        增長where條件, 注意:條件必須用引號引發來
        sqoop import --connect jdbc:mysql://192.168.1.10:3306/itcast --username root --password 123  --table trade_detail --where 'id>3' --target-dir '/sqoop/td2' sql

        增長query語句(使用 \ 將語句換行)
        sqoop import --connect jdbc:mysql://192.168.1.10:3306/itcast --username root --password 123 \
--query 'SELECT * FROM trade_detail where id > 2 AND $CONDITIONS' --split-by trade_detail.id --target-dir '/sqoop/td3'
        
        注意:若是使用--query這個命令的時候,須要注意的是where後面的參數,AND $CONDITIONS這個參數必須加上
        並且存在單引號與雙引號的區別,若是--query後面使用的是雙引號,那麼須要在$CONDITIONS前加上\即\$CONDITIONS
        若是設置map數量爲1個時即-m 1,不用加上--split-by ${tablename.column},不然須要加上數據庫


        
    第二類:將HDFS上的數據導出到數據庫中


        sqoop export --connect jdbc:mysql://192.168.8.120:3306/itcast --username root --password 123 --export-dir '/td3' --table td_bak -m 1 --fields-terminated-by '\t'oop

 

    第三類:將mysql中的數據導入到hive中   (數據默認在default表下)

    sqoop import --connect jdbc:mysql://192.168.52.136:3306/mysql --username root --password 123  --table trade_detail --target-dir '/sqoop/td1' --fields-terminated-by '\t' --hive-importspa

    

    第四類:將hive中的數據導出到mysql

 sqoop export --connect jdbc:mysql://node11:3306/mysql --username root --password 123 --table hivemsql --export-dir '/user/hive/warehouse/trade_detail'   --fields-terminated-by '\t'get

--table  表示向mysql中的哪張表中插入數據it

--export-dir   hive中數據的位置table

    第五類:將mysql中的數據導入到hbase中

sqoop import --connect jdbc:mysql://192.168.52.136:3306/mysql --username root --password 123  --table trade_detail --hbase-create-table --hbase-table mysqlhbase --column-family info --hbase-row-key idast

--hbase-table   hbase中對應的表名

--column-family  列族

--hbase-row-key  用數據庫中的哪一個字段做爲rowkey

相關文章
相關標籤/搜索