sqoop定时导入(全量+增量)sqlserver数据到HDFS

公司使用到的是SQLServer数据库,目前需要将数据库数据导入HDFS,通过Hive的ETl进行数据处理和数据分析,在整个项目的完成中,将一些基础的操作方式记录下来,后续会更新在工作中遇到的一些问题.

1.增量导入

增量导入采用创建sqoop job的形式,定时加载job即可

创建job

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
bin/sqoop job \
--create s_ods_ol_user_app \
-- import \
--connect 'jdbc:sqlserver://10.31.24.236:1433;database=ODS_DB_V3' \
--username 'dss' \
--password '1234QWER!@#$' \
--table 'ods_ol_user_app' \
--target-dir /sqoopresult/ODS_DB_V3/ods_ol_user_app \
--incremental append \
--check-column SequenceNO \
--last-value 23637191 \
--m 1bin/sqoop job \
--create s_ods_ol_user_app \
-- import \
--connect 'jdbc:sqlserver://10.31.24.236:1433;database=ODS_DB_V3' \
--username 'dss' \
--password '1234QWER!@#$' \
--table 'ods_ol_user_app' \
--target-dir /sqoopresult/ODS_DB_V3/ods_ol_user_app \
--incremental append \
--check-column SequenceNO \
--last-value 23637191 \
--m 1

执行job

1
sqoop job --exec s_ods_ol_user_appsqoop job --exec s_ods_ol_user_app

显示job信息

1
sqoop job --show s_ods_ol_user_appsqoop job --show s_ods_ol_user_app

删除job

1
sqoop job --delete s_ods_ol_user_appsqoop job --delete s_ods_ol_user_app

配置定时

1
2
3
4
5
crontab -e
0 */1 * * * /usr/hdp/2.6.3.0-235/sqoop/bin/sqoop job \
--exec s_ods_ol_user_app > s_ods_ol_user_app.out 2>&1 &crontab -e
0 */1 * * * /usr/hdp/2.6.3.0-235/sqoop/bin/sqoop job \
--exec s_ods_ol_user_app > s_ods_ol_user_app.out 2>&1 &

2>&1 &的意思是后台静默执行

2.全量导入

全量定时采用shell脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
vi import_ODS.sh
# !/bin/bash

#删除之前的内容

hadoop fs -rm -r /sqoopresult/ODS_DB_V3/ods_btp_supplier
hadoop fs -rm -r /sqoopresult/ODS_DB_V3/ods_btp_Commodity_discount_info

#重新导入命令

/usr/hdp/2.6.3.0-235/sqoop/bin/sqoop import \
--connect 'jdbc:sqlserver://10.31.24.236:1433;database=ODS_DB_V3' \
--username 'dss' \
--password '1234QWER!@#$' \
--table 'ods_btp_supplier' \
--target-dir /sqoopresult/ODS_DB_V3/ods_btp_supplier \
--m 1

/usr/hdp/2.6.3.0-235/sqoop/bin/sqoop import \
--connect 'jdbc:sqlserver://10.31.24.236:1433;database=ODS_DB_V3' \
--username 'dss' \
--password '1234QWER!@#$' \
--table 'ods_btp_Commodity_discount_info' \
--target-dir /sqoopresult/ODS_DB_V3/ods_btp_Commodity_discount_info \
--m 1# !/bin/bash

#删除之前的内容

hadoop fs -rm -r /sqoopresult/ODS_DB_V3/ods_btp_supplier
hadoop fs -rm -r /sqoopresult/ODS_DB_V3/ods_btp_Commodity_discount_info

#重新导入命令

/usr/hdp/2.6.3.0-235/sqoop/bin/sqoop import \
--connect 'jdbc:sqlserver://10.31.24.236:1433;database=ODS_DB_V3' \
--username 'dss' \
--password '1234QWER!@#$' \
--table 'ods_btp_supplier' \
--target-dir /sqoopresult/ODS_DB_V3/ods_btp_supplier \
--m 1

/usr/hdp/2.6.3.0-235/sqoop/bin/sqoop import \
--connect 'jdbc:sqlserver://10.31.24.236:1433;database=ODS_DB_V3' \
--username 'dss' \
--password '1234QWER!@#$' \
--table 'ods_btp_Commodity_discount_info' \
--target-dir /sqoopresult/ODS_DB_V3/ods_btp_Commodity_discount_info \
--m 1

配置定时

1
0 0 * * */usr/hdp/2.6.3.0-235/sqoop/import_ODS.sh > /usr/hdp/2.6.3.0-235/sqoop/data/sqoop_`date +\%Y\%m\%d\%H\%M\%S`.log 2>&1

点击并拖拽以移动

------------- 我是鲁边 peace and love -------------
END