栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 云计算 > 云平台

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

云平台 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【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"
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/896485.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号