Sqoop教程(二)使用Sqoop在MySQL与Hive之间进行数据导入导出操作

Sqoop主要作用是提供方便的Hive表和关系型数据库表的数据的导入导出操作。
运行Sqoop需要启动Hadoop、Hive服务
在hp1的MySQL中新建数据库test_sqoop,并建表student:
表结构:
在这里插入图片描述
表数据:
在这里插入图片描述

导入:

根据MySQL中student表结构,直接在Hive中建立一张表student_h:

sqoop create-hive-table -connect jdbc:mysql://hp1:3306/test_sqoop -table student -username root -password Hive123+ -hive-table student_h

在beeline中查看表结构:

desc student_h

在这里插入图片描述
将MySQL中student表数据,导入到Hive的student_h表中:

sqoop import -connect "jdbc:mysql://hp1:3306/test_sqoop?characterEncoding=utf-8&useSSL=false" -table student -username root -password Hive123+ -hive-import -hive-table my_db.student_x -m 1

其中最后的-m 1,是指开一个任务,以为开启认为会随机在datanode结点上开启,所以要使用hp1指定数据库地址。

如果报异常:

ERROR tool.ImportTool: Import failed: org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://hp1:9000/user/root/student already exists

可以先删除掉hdfs上对应的目录:

hdfs dfs -rm -r /user/root/student

重新执行导入命令即可。

以上import语句,在发现没有表的情况下可以自动建表, my_db.student_x语法可以指定Hive的具体数据库。

导出:

在hive中新建表stu_m,导入数据,请参考:
Hive3详细教程(五)内部表、外部表与导入数据
在Mysql的test_sqoop库中新建表studet_e,表结构与hive中保持一致:
在这里插入图片描述

导出语句:

sqoop export -connect  "jdbc:mysql://hp1:3306/test_sqoop?characterEncoding=utf-8&useSSL=false" -username root -password Hive123+ -table student_e -fields-terminated-by ',' --export-dir "/user/hive/warehouse/stu_m"
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Sqoop是一款用于在Hadoop与关系型数据库之间进行数据传输的工具,可以方便地将数据从关系型数据库导入Hadoop中,也可以将Hadoop中的数据导出到关系型数据库中。下面分别介绍Sqoop导入导出功能: 1. Sqoop数据导入 Sqoop数据导入功能可以将关系型数据库中的数据导入Hadoop进行处理和分析。以下是导入数据的步骤: (1)执行以下命令安装Sqoop: ``` sudo apt-get update sudo apt-get install sqoop ``` (2)使用以下命令进行数据导入,其中jdbc-url和username、password分别为数据库的连接地址、用户名和密码,table为需要导入的表名,target-dir为数据导入的目录: ``` sqoop import --connect jdbc:mysql://localhost:3306/test --username root --password 123456 --table student --target-dir /user/hadoop/student ``` 2. Sqoop数据导出 Sqoop数据导出功能可以将Hadoop中的数据导出到关系型数据库进行存储和处理。以下是导出数据的步骤: (1)执行以下命令进行数据导出,其中jdbc-url和username、password分别为数据库的连接地址、用户名和密码,table为需要导出的表名,export-dir为数据导出的目录: ``` sqoop export --connect jdbc:mysql://localhost:3306/test --username root --password 123456 --table student --export-dir /user/hadoop/student ``` Hive是一种数据仓库工具,可以用于对大规模数据进行处理和分析。Hive可以将结构化的数据映射为一张数据库表,并提供类SQL查询语言对数据进行查询和分析。以下是使用Hive进行数据处理和分析的步骤: (1)启动Hive 在终端中执行以下命令启动Hive: ``` hive ``` (2)创建表 使用Hive的SQL语法创建一个表,例如: ```sql CREATE TABLE student ( id INT, name STRING, age INT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE; ``` (3)导入数据 使用Hive的LOAD DATA语法将数据导入到表中,例如: ```sql LOAD DATA LOCAL INPATH '/home/hadoop/student.txt' INTO TABLE student; ``` (4)查询数据 使用Hive的SELECT语法查询表中的数据,例如: ```sql SELECT * FROM student WHERE age > 18; ``` (5)保存查询结果 使用Hive的INSERT语法将查询结果保存到另一个表中,例如: ```sql INSERT INTO student2 SELECT * FROM student WHERE age > 18; ``` 以上是使用Sqoop进行数据导入导出使用Hive进行数据处理和分析的基本步骤,具体的操作可以根据实际需求进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值