大資料入門(25)sqoop快速入門
阿新 • • 發佈:2018-12-10
sqoop的使用 ----sqoop是一個用來在hadoop體系和關係型資料庫之間進行資料互導的工具 ----實質就是將匯入匯出命令轉換成mapreduce程式來實現 sqoop安裝:安裝在一臺節點上就可以了。 1.上傳sqoop 2.安裝和配置 (1)修改配置檔案 sqoop-env.sh #Set path to where bin/hadoop is available export HADOOP_COMMON_HOME=/home/hadoop/app/hadoop-2.4.1 #Set path to where hadoop-*-core.jar is available export HADOOP_MAPRED_HOME=/home/hadoop/app/hadoop-2.4.1 #set the path to where bin/hbase is available export HBASE_HOME=/home/hadoop/app/hbase-0.96.2-hadoop2 #Set the path to where bin/hive is available export HIVE_HOME=/home/hadoop/app/hive-0.12.0-bin #Set the path for where zookeper config dir is export ZOOCFGDIR=/home/hadoop/app/zookeeper-3.4.5/conf (2)在新增sqoop到環境變數 ######將資料庫連線驅動拷貝到$SQOOP_HOME/lib裡 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 ##資料匯入hdfs後所存放的目錄 --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' ##指定做匯入處理時的map 任務數 -m 2 增加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' 增加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-termianted-by '\t' 4.配置mysql遠端連線 GRANT ALL PRIVILEGES ON itcast.* TO 'root'@'192.168.1.201' IDENTIFIED BY '123' WITH GRANT OPTION; FLUSH PRIVILEGES; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION; FLUSH PRIVILEGES sqoop export --connect jdbc:mysql://hbase01:3306/sca --username sca --password 123456 \ --table sca_rule \ --export-dir /sca/topkurls \ --columns url \ --input-fields-terminated-by '\t' ***********************************demo*********************************************************** sqoop export --connect jdbc:mysql://weekend01:3306/urlrule --username root --password root \ --table urlinfo \ --export-dir /llyy/topkurl3/ \ --columns url \ --input-fields-terminated-by '\t'