sqoop基本使用,mysql导入到hive,hbase

命令

bin/sqoop import --connect jdbc:mysql://10.10.72.131:3306/bilibili \
--username root \
--password 123456 \
--query 'select * from user where usersex="女" and $CONDITIONS' \
--target-dir /tmp/tmpData \
--hive-import \
--fields-terminated-by '\t' \
--hive-database db_hive3 \
--hive-table db \
-m 1 

fields-terminated-by : 字段分隔符

target-dir:hdfs临时目录,不能提前存在否则会抛文件存在的异常,sqoop先把查询的数据存起来,再把数据保存到hive对应的表。

-m 1:用一个mr程序来跑,节省内存

$CONDITIONS: 只要用到条件查询就要加上这个。防止空文件异常。

注意因为,mysql是关系型数据库,hbase,hive非关系型数据库,默认一行数据对应mysql中的一行。

唯一区别实在非关系型数据库不同字段用分隔符分割。mysql 查出来的数据可能默认是逗号分隔。这里需要特别注意!!!!

要先看hive中存储的文件分隔符是啥就填啥。

不然会出现错误如下图:因为文件本身用^A分隔,导入数据分隔符为’,'和‘\t’就会出错。

在这里插入图片描述

如果只要某个字段插入,需要在对应位置之前之后都插入指定的分隔符。

常用参数:https://blog.csdn.net/Apache_Jerry/article/details/104533104

sqoop配置

  • 找到如下路径

在这里插入图片描述

  • 扎到sqoop-env.sh 如果没有这个文件执行cp sqoop-env-template.sh sqoop-env.sh,自己拷贝一份改。

在这里插入图片描述

  • 加驱动

在这里插入图片描述

  • 把hive的连接需要的jar包导入

在这里插入图片描述

  • 这里说下怎么找到hive的jar包

在这里插入图片描述

  • 对应hive/lib下面的jar包

  • 拷贝代码如下

  • cp hive-common-3.1.3.jar [在这里指定自己的sqoop安装目录下面的lib文件夹]  举例/opt/module/sqoop-1.4.7/lib
    

在这里插入图片描述

mysql 导入hive需要环境基本完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值