2.sqoop全量数据导入hive表

本文介绍了如何使用sqoop将关系型数据库的数据全量导入到Hive表中,包括手动创建Hive表并导入数据以及自动创建Hive表的流程。在手动导入时,需要预先准备Hive库表,而自动创建Hive表则省去了这一步骤。
摘要由CSDN通过智能技术生成

1.导入关系表到Hive中(需要手动创建好hive表)

(1) 将我们mysql表当中的数据直接导入到hive表中的话,需要将hive的一个叫做hive-exec-1.2.2.jar包拷贝到sqoop的lib目录下 

cp /opt/bigdata/hive-1.2.2/lib/hive-exec-1.2.2.jar  /opt/bigdata/sqoop-1.4.7.bin__hadoop-2.6.0/lib/

(2) 准备hive数据库与表, 在hive中创建一个数据库和表

create database sqooptohive;

create external table sqooptohive.mysql_emp_to_hive(id int,name string,deg string,salary double ,dept string) row format delimited fields terminated by '\001';

(3) 把mysql表数据导入到hive表中

sqoop import --connect jdbc:mysql://node2:3306/userdb --username root --password 123456 --table emp --fields-terminated-by '\001' --hive-import --hive-table sqooptohive.mysql_emp_to_hive --hive-overwrite  --m 1

(4) 执行完成了查看hive中表的数据

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用Sqoop的export命令将Hive中的数据导出到MySQL中。具体步骤如下: 1. 确保MySQL数据库已经创建好,并且具有与Hive相同的结构。 2. 在Sqoop的命令中,使用export参数指定需要导出的数据,格式如下: ``` sqoop export --connect jdbc:mysql://mysql_host:port/mysql_database --username mysql_username --password mysql_password --table mysql_table --export-dir hive_table --input-fields-terminated-by '\t' --input-lines-terminated-by '\n' ``` 其中,`--connect`参数指定MySQL数据库的连接信息,`--username`和`--password`参数指定数据库的用户名和密码,`--table`参数指定需要导入的MySQL名,`--export-dir`参数指定需要导出的Hive名,`--input-fields-terminated-by`参数指定Hive中字段的分隔符,`--input-lines-terminated-by`参数指定Hive中行的分隔符。 3. 如果Hive中没有主键,则需要使用`--update-key`参数指定用于更新行的列名。例如,如果Hive中有一个名为`id`的列,则可以使用以下命令: ``` sqoop export --connect jdbc:mysql://mysql_host:port/mysql_database --username mysql_username --password mysql_password --table mysql_table --export-dir hive_table --input-fields-terminated-by '\t' --input-lines-terminated-by '\n' --update-key id ``` 这将使用`id`列作为更新行的关键字。 4. 执行命令并等待导出完成。 注意:在执行Sqoop导出命令之前,需要确保Hive中的数据已经是全量数据,否则可能会出现数据不一致的情况。如果需要覆盖MySQL中的数据确保备份MySQL中的数据,以防止数据丢失。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值