栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

sqoop的经典使用案例

sqoop的经典使用案例

创建一个文件放脚本文件(记住环境变量内进行配置)

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/618442.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号