创建一个文件放脚本文件(记住环境变量内进行配置)
RDBMS→hdfs:
rdbms-hdfs.sh
sqoop import
--connect jdbc:mysql://slave02:3306/数据库
--username root
--password 密码
--table 表
--target-dir 目标目录
还可以设置转移那些字段,map数。。。。。。
生成的MR就叫表的名字
RDBMS → HIVE
建hive表脚本
-- 创建hive表 use mydb;
-- 存在就删除 drop table if exists tb_emp;
-- 建表 CREATE TABLE tb_emp( id INT, name string, birthday date ) row format delimited fields terminated by ',';
rdbms→hive.sh
hive的数据是存储到hdfs上的,所以只需要将数据导入到相应的文件中就行
sqoop-import --connect jdbc:mysql://slave02:3306/sqoop --username root --password 88888888 --table tb_emp --target-dir /user/hive/warehouse/mydb.db/tb_emp hive数据库对应的文件 -m 2 设置m数,默认为4 --delete-target-dir 多次执行
--fields-terminated-by ',' 指定分隔符可以不用指定,但是hive表必须要指定
添加可执行的权限
chmod +x *.sh
执行
./rdbms→hive.sh
导入源表的子集到目标目录
sqoop-import --connect jdbc:mysql://slave02:3306/sqoop --username root --password 88888888 --table $1 --target-dir $2 -m $3 --where "id>4" 条件导入 --delete-target-dir
增量导入
--incremental ,增量导入的模式,一般为:append --check-column, 根据哪个字段进行检测,一般是表(rdbms)的主键 --last-value , 从hdfs之上哪个列值开始进行检测,目前hdfs之上的数据已经到了多少条了
sqoop import --connect jdbc:mysql://NODE03:3306/sqoop --username root --password 88888888 --target-dir /sqoop/import/increment --table tb_employee -m 1 --incremental append --check-column id --last-value 5
sqoop job中封装了shell脚本(封装了导入或是导出的指令) 故,以后执行导入导出时,只需要执行相应的job即可。
删除 sqoop job --delete job名
创建全量导入时,创建job
sqoop job --create bap_code_category -- import --connect jdbc:mysql://NODE03:3306/elebap_bak --driver com.mysql.jdbc.Driver 驱动 --username root --password-file /sqoop/pwd/mysql.pwd 密码文件,密码直接放脚本内,不安全,文件放hdfs上 --table code_category --delete-target-dir --target-dir /elebap_bak/ods/ods_code_category --fields-terminated-by ' 01' 指定分隔符
sqoop job -exec bap_code_category 执行自定义的job
创建增量导入时,job的
sqoop job --create bap_us_order -- import
--connect jdbc:mysql://NODE03:3306/elebap_bak?dontTrackOpenResources=true&defaultFetchSize=1000&useCursorFetch=true 转义字符-每次提取多少条记录-使用游标提取多少条记录,不用打开dontTrackOpenResources轨迹,免得浪费资源 --driver com.mysql.jdbc.Driver --username root --password-file /sqoop/pwd/mysql.pwd --table us_order --target-dir /elebap_bak/ods_tmp/ods_us_order/ --fields-terminated-by ' 01' --check-column order_id 检查主键 --incremental append 模式 --last-value 0 →初始时,写0,后面执行时, 会替换为真实的last-
sqoop job --list 查看有效job
后续更新hbase



