Sqoop-1.99.7 简单使用

本文详细介绍了使用Sqoop-1.99.7进行数据迁移的步骤,包括从HDFS导入数据到MySQL以及从MySQL导出数据到HDFS。在每个步骤中,讨论了配置、Link对象创建、Job对象创建及启动,并通过实际操作展示了数据迁移过程中的问题和解决方案。最后,文章提到在没有主键的情况下,从HDFS导入到MySQL的数据可能是无序的。

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

经过上一篇,我们已经安装并且配置好了 sqoop2,这一篇我们通过两个实例来简单使用一下。

1.HDFS ⇒ Mysql

1.1启动服务
[root@master ~]# sqoop2-server start
1.2启动客户端
[root@master ~]# sqoop2-shell
Setting conf dir: /usr/hadoop/sqoop-1.99.7/bin/../conf
Sqoop home directory: /usr/hadoop/sqoop-1.99.7
Sqoop Shell: Type 'help' or '\h' for help.

sqoop:000> \h
For information about Sqoop, visit: http://sqoop.apache.org/

Available commands:
  :exit    (:x  ) Exit the shell
  :history (:H  ) Display, manage and recall edit-line history
  help     (\h  ) Display this help message
  set      (\st ) Configure various client options and settings
  show     (\sh ) Display various objects and configuration options
  create   (\cr ) Create new object in Sqoop repository
  delete   (\d  ) Delete existing object in Sqoop repository
  update   (\up ) Update objects in Sqoop repository
  clone    (\cl ) Create new object based on existing one
  start    (\sta) Start job
  stop     (\stp) Stop job
  status   (\stu) Display status of a job
  enable   (\en ) Enable object in Sqoop repository
  disable  (\di ) Disable object in Sqoop repository
  grant    (\g  ) Grant access to roles and assign privileges
  revoke   (\r  ) Revoke access from roles and remove privileges

For help on a specific command type: help command

sqoop:000> 
1.3简单配置

这里写图片描述

像官网上介绍的,有许多可选项可以供我们设置,对于 verbose 这一项建议设置成为 true,它默认是 false,表示不会在输出过多信息。设置成 true 可以显示更多信息,有助于我们的学习。

sqoop:000> set option --name verbose --value true
Verbose option was changed to true
sqoop:000> 

之后设置连接 sqoop2 服务器

sqoop:000> set server --host master --port 80 --webapp sqoop

Server is set successfully
sqoop:000> 

我们可以使用 show version –all 命令来验证是否连接成功,显示的版本是我们安装的就表示连接成功了

sqoop:000> show version -all
client version:
  Sqoop 1.99.7 source revision 435d5e61b922a32d7bce567fe5fb1a9c0d9b1bbb 
  Compiled by abefine on Tue Jul 19 16:08:27 PDT 2016
server version:
  Sqoop 1.99.7 source revision 435d5e61b922a32d7bce567fe5fb1a9c0d9b1bbb 
  Compiled by abefine on Tue Jul 19 16:08:27 PDT 2016
API versions:
  [v1]
sqoop:000> 

这些设置使用的命令都可以在官网的文档了查询到。

1.4创建 HDFS 的 Link对象

这里写图片描述

文档里给出了创建 Link 所使用的命令,但是,对于 connectorName 我们要使用什么呢。所以我们可以使用 show connector 命令来查看一下 sqoop2 提供有什么 connector:
这里写图片描述
如图,有这么多,我们先来创建 hdfs-connector 的吧:
要使用到的参数如下:
这里写图片描述

sqoop:000> create link --connector hdfs-connector

Creating link for connector with name hdfs-connector
Please fill following values to create new link object
Name: HDFS  # 要创建的 link 的名称(必填)

HDFS cluster

URI: hdfs://master:
<think>嗯,用户想了解如何部署Sqoop。首先,我需要回忆一下Sqoop的基本概念和部署步骤。Sqoop主要用于Hadoop和关系型数据库之间的数据传输,所以安装前需要确保Hadoop和Java环境已经配置好了。 根据引用内容,用户提供的参考资料提到了安装前的准备,比如下载解压Sqoop包,配置环境变量,还有设置相关的Hadoop和Hive路径。比如引用[3]里提到要设置HADOOP_COMMON_HOME和HADOOP_MAPRED_HOME这些环境变量,可能还需要检查JDBC驱动是否放在lib目录下。 接下来,步骤应该分点说明。首先是环境检查,确保Hadoop、Java已经安装。然后下载和解压Sqoop,注意版本兼容性,比如用户提到的是1.9版本,可能需要对应Hadoop的版本。接下来是配置环境变量,把Sqoop的bin目录加入PATH,还有配置sqoop-env.sh文件,设置Hadoop和Hive的路径,如引用[3]中的例子。 然后需要配置JDBC驱动,比如MySQL的驱动包要复制到Sqoop的lib目录下,这部分可能需要用户根据自己使用的数据库不同进行调整。验证安装是否成功,可以通过运行sqoop help命令,或者尝试一个简单的导入导出命令,比如从MySQL导入数据到HDFS,这时候可能需要测试连接参数,确保数据库可访问。 另外,引用[2]提到Sqoop原理是将命令转换为MapReduce任务,所以部署时还要确保Hadoop集群运行正常,并且Sqoop能够调用到Hadoop的相关库。可能还需要检查Hadoop配置文件是否在正确的位置,比如core-site.xml、hdfs-site.xml等是否在Sqoop的conf目录下有链接或复制。 用户可能遇到的问题包括环境变量配置错误、JDBC驱动缺失、版本不兼容等。比如,如果Hadoop的路径设置不正确,Sqoop可能无法启动MapReduce任务。这时候需要检查sqoop-env.sh中的变量是否正确指向Hadoop的安装目录。另外,不同数据库的JDBC驱动版本也可能导致问题,需要确认驱动与数据库版本兼容。 在示例代码部分,用户可能需要看到具体的命令,比如sqoop import的连接字符串、用户名、密码、表名和目标目录。这部分需要确保参数正确,比如--connect的JDBC URL格式是否正确,是否有权限访问数据库,HDFS目录是否存在等。 最后,相关问题部分需要考虑用户可能进一步想知道的内容,比如验证部署是否成功、常见错误如何处理、如何优化导入导出的性能,以及不同数据库的配置差异。例如,引用[4]提到Sqoop的Java API,可能用户之后会需要用到客户端编程,相关问题可以引导他们进一步学习。</think>### Sqoop 部署指南 #### 1. **环境准备** - **系统要求**: - 已安装 Hadoop 集群(版本需与 Sqoop 兼容,如 Hadoop 2.x 对应 Sqoop 1.4.x/1.99.x)[^3] - 安装 Java 8 或更高版本 - 配置 `JAVA_HOME`、`HADOOP_HOME` 环境变量 - **依赖工具**: - 目标数据库的 JDBC 驱动(如 MySQL 的 `mysql-connector-java.jar`) #### 2. **下载与解压** 1. 从 [Apache 官网](https://sqoop.apache.org/) 下载 Sqoop(示例使用 Sqoop 1.99.72. 解压至目标目录: ```bash tar -zxvf sqoop-1.99.7-bin-hadoop200.tar.gz -C /opt/module/ ``` #### 3. **配置环境变量** 在 `~/.bashrc` 或 `~/.bash_profile` 中添加: ```bash export SQOOP_HOME=/opt/module/sqoop-1.99.7 export PATH=$PATH:$SQOOP_HOME/bin ``` 运行 `source ~/.bashrc` 使配置生效[^3]。 #### 4. **配置 Sqoop 核心文件** 1. **修改 `sqoop-env.sh`**: ```bash cd $SQOOP_HOME/conf cp sqoop-env-template.sh sqoop-env.sh ``` 编辑 `sqoop-env.sh`,设置 Hadoop 相关路径: ```bash export HADOOP_COMMON_HOME=/usr/java/hadoop export HADOOP_MAPRED_HOME=/usr/java/hadoop export HIVE_HOME=/usr/java/hive # 若需与 Hive 集成 ```[^3] 2. **添加 JDBC 驱动**: 将数据库驱动文件(如 `mysql-connector-java-8.0.28.jar`)复制到 `$SQOOP_HOME/lib` 目录。 #### 5. **验证安装** 运行以下命令检查 Sqoop 是否正常: ```bash sqoop version ``` 若输出版本信息且无报错,则安装成功。 #### 6. **测试数据导入(示例:MySQLHDFS)** ```bash sqoop import \ --connect jdbc:mysql://localhost:3306/testdb \ --username root \ --password 123456 \ --table employees \ --target-dir /user/hadoop/employees \ --m 1 ``` 此命令会将 MySQL 的 `employees` 表数据导入 HDFS 的 `/user/hadoop/employees` 目录[^1][^2]。 ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值