700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Sqoop MySQL hive 数据库导入导出数据

Sqoop MySQL hive 数据库导入导出数据

时间:2021-11-12 13:51:12

相关推荐

Sqoop MySQL hive 数据库导入导出数据

1.导入(从mysql导入hive)

场景:从一个mysql数据库的表中导入数据到hive表中

sqoop import \ --connect "jdbc:mysql://ip:3306/mysql库名" \ (指定连接jdbc端口和数据库名称)--username "root" \ (数据库用户名)--password "root123" \ (密码 若不适用明文指定数据库密码 则可以用-P)--table "user" \ (指定数据库中的一张表)--target-dir "/input/import" \ (指定数据导入到HDFS上的目录)--delete-target-dir \ //如果目标目录已存在,则先删除--num-mappers 1 \ (指定使用导入数据的map个数,mapreduce(V1)中的方式可以用-m 1 代替(过时))--fields-terminated-by "," (目标文件的分隔符, 默认情况下,导入HDFS的每行数据分隔符是逗号)

2.导出(从hive导出到mysql)

场景:从一个hive库的数据表中导出到另一个mysql库中

sqoop export \--connect "jdbc:mysql://ip:端口/数据库名" \--username "root" \--password "123456" \--table "目标数据库表名" \--update-mode allowinsert \--update-key "industry_code" \--hcatalog-database "hive目标数据库" \--hcatalog-table "hive目标数据库中的表名" \--null-string '\\N' \--null-non-string '\\N' \-m 1

相关参数如下:

export:从hdfs导出数据到关系型数据库--update-mode:指定更新策略,包括updateonlyallowinsert,updateonly是默认模式,仅仅更新已存在的数据记录,不会插入新纪录,allowinsert有则更新,无则插入--update-key:更新标识,即根据某个字段进行更新,例如id,可以指定多个更新标识的字段,多个字段之间用逗号分隔。 – updatemode,指定updateonly(默认模式),仅仅更新已存在的数据记录,不会插入新纪录--hcatalog-database:hive数据库,parquet格式的hive表使用hcatalog--hcatalog-table:hive数据库表名--null-string:针对string类型的字段,当Value是NULL,替换成指定的字符--null-non-string:针对非string类型的字段,当Value是NULL,替换成指定字符-m:并行化,使用n个map任务并行导出

3.Sqoop一些常用命令及参数

3.1 常用命令列举

这里给大家列出来了一部分Sqoop操作时的常用参数,以供参考,需要深入学习的可以参看对应类的源代码。

3.2 公用参数详解

刚才列举了一些Sqoop的常用命令,对于不同的命令,有不同的参数,让我们来一一列举说明。

首先来我们来介绍一下公用的参数,所谓公用参数,就是大多数命令都支持的参数。

3.2.1 公用参数:数据库连接

3.2.2 公用参数:import

3.2.3 公用参数:export

3.2.4 公用参数:hive

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。