公司使用到的是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
|