sqoop = sql + hadoop
1,系統方面的準備
scp ./ojdbc6.jar root@server-1:/usr/hdp/2.6.0.3-8/sqoop/lib/
scp ./ojdbc6.jar root@server-2:/usr/hdp/2.6.0.3-8/sqoop/lib/
cd /usr/hdp/2.6.0.3-8/sqoop/lib/
chmod 755 ojdbc6.jar
學習了:
su root
# usermod -a -g hadoop user001 '把user001使用者新增到hadoop組中
# usermod -a -g hdfs user001 '把user001使用者新增到hdfs組中
2,sqoop匯入到hdfs中
學習了:
'可行,識別--connection-manager,主要是-m 2進行並行匯入
sqoop import --connect jdbc:oracle:thin:@127.0.0.1:1521:ora --connection-manager org.apache.sqoop.manager.oraclemanager --username admin --password admin -m 2 --split-by id --query 'select t.* from tbl01 t where $conditions' --target-dir '/user/user001/tbl01'
'方法2 ,用--driver指定了類,-m 1 進行匯入了
sqoop import --connect jdbc:oracle:thin:@127.0.0.1:1521:ora --username admin --password admin -m 1 --driver oracle.jdbc.driver.oracledriver --query 'select * from tbl02 t where 1=1 and $conditions' --target-dir '/user/user001/tbl02'
『方法3 , 檢視原始碼之後org.apache.sqoop.manager.oraclemanager.oraclemanager(sqoopoptions),
'裡面: } else if (scheme.startswith("jdbc:oracle:")) {, 注意自己的連線串寫的不規範
sqoop import --connect jdbc:oracle:thin:@127.0.0.1:1521:ddxt11 --username admin --password admin -m 2 --split-by id --query 'select t.* from tbl01 t where $conditions' --target-dir '/user/user001/tbl01'
『方法4, 表名(tbl01)、列名(--split-by id)都要大寫,不大寫就報錯給你看;
'主要是生成的sql語句:select t.* from "tbl01" t where 1=0,select min("name1"), max("name1") from "tbl01"
sqoop import --connect jdbc:oracle:thin:@127:1521:ddxt11 --username admin --password admin -m 2 --split-by id --table tbl01 --target-dir '/user/user001/tbl01'
3,資料庫表從hdfs中匯入到hive中
user001使用者登入:
>hive
>show databases;
>create database admin;
>use admin;
>create table tbl01
(id bigint comment '父id',
pid bigint comment '父id',
name1 varchar(16) comment 'a',
name2 varchar(64) comment 'b',
)row format delimited fields terminated by ','
stored as textfile;
在hive中執行:
load data inpath '/user/user001/tbl01/part-m-00000' into table admin.tbl01;
在user001使用者中執行:
必須先把錶tbl01建立出來;
hive -e "load data inpath '/user/user001/tbl01/part-m-00000' into table admin.tbl01;"
或者hive -f '/websoftware/tbl01_imp.sql'
sqoop匯入匯出
sqoop官方手冊位址 最近在看sqoop有些感想,就寫下來。sqoop是大資料裡面匯入匯出的乙個工具。關於import匯出 可以從mysql匯出到hdfs,hbase,hive,案例如下,這是乙個匯出到hdfs的案例 import connect jdbc mysql username root ...
sqoop 增量匯入
在隨著系統的執行,每天都會產生新的資料,在進行資料匯入的時候,由於之前已經匯入過資料,所以在產生新的資料的時候,就可以直接在之前導過的資料的基礎上繼續匯入資料,沒有必要之前的所有資料都重新匯入一遍 增量匯入資料的使用 以上為增量匯入的引數check column 檢查列,檢查資料庫表中的索引列,一般...
sqoop匯入 匯出
全部匯入 sqoop import connect jdbc mysql hadoop01 3306 test1 username root password 1234 table students target dir user test1 delete target dir fields ter...