sqoop

本文介绍如何使用Sqoop工具在Hadoop HDFS与关系型数据库间进行数据迁移。包括配置环境、常用命令详解,如列出数据库及表、将数据导入HDFS及从HDFS导出至数据库等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

1、下载地址:
http://sqoop.apache.org/


2、修改SQOOP的文件configure-sqoop,注释掉hbase和zookeeper检查(除非你准备使用HABASE等HADOOP上的组件)

#if [ ! -d "${HBASE_HOME}" ]; then
# echo “Error: $HBASE_HOME does not exist!”
# echo ‘Please set $HBASE_HOME to the root of your HBase installation.’
# exit 1
#fi
#if [ ! -d "${ZOOKEEPER_HOME}" ]; then
# echo “Error: $ZOOKEEPER_HOME does not exist!”
# echo ‘Please set $ZOOKEEPER_HOME to the root of your ZooKeeper installation.’
# exit 1
#fi

还有其他HBASE和ZOOKEEPER的部分也需要注释掉。

3.在使用sqoop之前需要首先启动hadoop

4.常用的sqoop命令:

4.1 列出mysql数据库中的所有数据库
sqoop list-databases --connect jdbc:mysql://localhost:3306/ --username root --password 123456

4.2 连接mysql并列出数据库中的表
sqoop list-tables --connect jdbc:mysql://localhost:3306/test --username root --password 123456

4.3 将关系型数据的表结构复制到hive中,只是复制表的结构,表中的内容没有复制过去
bin/sqoop create-hive-table --connect jdbc:mysql://localhost:3306/test -table test_table -username root -password password -hive-table test_table

4.4 将数据库表数据导入到hdfs
bin/sqoop import --connect jdbc:mysql://localhost:3306/test --username root --password password --table test_table
--warehouse-dir /user/yr/ -m 1

4.5 将hdfs数据导入到数据库表
bin/sqoop export --connect jdbc:mysql://localhost:3306/test --username root --password password --table test_table
--export-dir /user/yr/test_table

4.6 将数据库表数据导入到hive
bin/sqoop import --connect jdbc:mysql://localhost:3306/test --username root --password password --table test_table
--hive-import --hive-table test_table -m 1

4.7 将hive数据导入到数据库表
bin/sqoop export --connect jdbc:mysql://localhost:3306/test --username root --password password --table test_table --export-dir /user/hive/warehouse/test_table
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值