sqoop基本使用,mysql导入到hive,hbase
Posted Ramelon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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需要环境基本完成。
以上是关于sqoop基本使用,mysql导入到hive,hbase的主要内容,如果未能解决你的问题,请参考以下文章
Sqoop从本地MySQL导入到Hive为啥要求Sqoop一定要在HDFS中
使用 sqoop 将mysql数据导入到hive(import)