1 简介:
a) SQOOP是用于对数据进行导入导出的。
(1)把MySQL、Oracle等数据库中的数据导入到HDFS、Hive、HBase中
(2)把HDFS、Hive、HBase中的数据导出到MySQL、Oracle等数据库中
b) 官网地址 http://sqoop.apache.org/
2 安装:
// 解压和重命名 [root@master local]# tar -zxvf sqoop-1.4.3.bin__hadoop-1.0.0.tar.gz [root@master local]# mv sqoop-1.4.3.bin__hadoop-1.0.0 sqoop // 设置环境变量 [root@master bin]# vi /etc/profile export JAVA_HOME=/usr/local/jdk export HADOOP_HOME=/usr/local/hadoop export HIVE_HOME=/usr/local/hive export ZK_HOME=/usr/local/zk export SQOOP_HOME=/usr/local/sqoop export PATH=.:$SQOOP_HOME/bin:$ZK_HOME/bin:$HIVE_HOME/bin:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH [root@master bin]# source /etc/profile 修改 sqoop/conf/sqoop-env.sh配置文件: 将 export HADOOP_COMMON_HOME=你的hadoop安装根目录 export HADOOP_MAPRED_HOME=你的hadoop安装根目录 export HIVE_HOME=你的hive安装目录 入下: export HADOOP_COMMON_HOME=/opt/modules/hadoop-2.5.0-cdh5.3.6 export HADOOP_MAPRED_HOME=/opt/modules/hive-0.13.1-cdh5.3.6 export HIVE_HOME=/opt/modules/hive-0.13.1-cdh5.3.6 export ZOOCFGDIR=/opt/modules/zookeeper-3.4.5-cdh5.3.6/conf // 查看sqoop命令帮助 [root@master local]# sqoop help Warning: $HADOOP_HOME is deprecated. usage: sqoop COMMAND [ARGS] Available commands: codegen Generate code to interact with database records create-hive-table Import a table definition into Hive eval Evaluate a SQL statement and display the results export Export an HDFS directory to a database table // 将hdfs数据导出到数据库中 help List available commands import Import a table from a database to HDFS // 将数据库中表的数据导入到hdfs中 import-all-tables Import tables from a database to HDFS job Work with saved jobs // list-databases List available databases on a server list-tables List available tables in a database merge Merge results of incremental imports metastore Run a standalone Sqoop metastore version Display version information See 'sqoop help COMMAND' for information on a specific command. [root@master local]#
3 把数据从mysql导入到hdfs(默认是/user/<username>)中:
// 给sqoop拷贝mysql-connector-java-5.1.10.jar [root@master lib]# cp mysql-connector-java-5.1.10.jar /usr/local/sqoop/lib // 将库hive_cr00 表TBLS 数据导出到hdfs中 [root@master local]#sqoop import --connect jdbc:mysql://master:3306/hive_cr00 --username root --password admin --table TBLS --fields-terminated-by '\t' --null-string '**' -m 1 解释如下: sqoop import --connect jdbc:mysql://hadoop0:3306/hive(数据库名) --username root --password admin --table TBLS(连接的表名) --fields-terminated-by '\t'(导入hdfs后数据用/t间隔) --null-string '**' 如果string为null则导出到hdfs后用**表示 -m 1 默认导出用4个map任务执行 这里指定只用一个map任务,节省资源 --append 表示追加写入hdfs中 --hive-import 表示导入到hive中
导出后的样子为:
针对数据表中数据增加插入hdfs中写法:
上述命令表示全量导入,即使使用append字段,也仅仅是在/user/<username>/下将再次导入的全量数据在增加一个hdfs文件来存放而已, 现在仅仅想将数据表中增加的字段导入到hdfs中,即再次产生的hdfs文件内仅仅是数据表新增的内容,而非表中所有数据: 参考链接: 官网 http://sqoop.apache.org/docs/1.4.3/SqoopUserGuide.html#_incremental_imports sqoop import --connect jdbc:mysql://master:3306/hive --username root --password admin --table TBLS --fields-terminated-by '\t' --null-string '**' -m 1 --append --check-column 'TBL_ID' 追加插入时,需要检查的列TBL_ID --incremental append 在追加的时候 执行检验 --last-value 6 上次追加后 TBL_ID的最后一个值为6 [root@master bin]# sqoop import --connect jdbc:mysql://master:3306/hive_cr00 --username root --password admin --table TBLS --fields-terminated-by '\t' --null-string '**' -m 1 --append --check-column 'TBL_ID' --incremental append --last-value 15 结果: 14/12/29 01:28:37 INFO tool.ImportTool: No new rows detected since last import.
4 把数据从hdfs导出到mysql中:
在mysql test库中创建表sqoontable,字段 id(varchar(60)),name(varchar(60)) 在hdfs中准备数据如下: [root@master data]# hadoop fs -text /ids/sqoopdata Warning: $HADOOP_HOME is deprecated. hello;you hello;me hello;30 执行命令,导出是可以重复执行的,会不断向数据表插入字段 sqoop export --connect jdbc:mysql://master:3306/test --username root --password admin --table sqoontable --fields-terminated-by ';' --export-dir '/ids' 解释如下: sqoop export --connect jdbc:mysql://master:3306/test --username root --password admin 连接数据库 test --table sqoontable 要将hdfs数据导入到表名称 sqoontable --fields-terminated-by ';' --export-dir '/ids' hdfs数据来源在文件夹 /ids下 也可以具体指定 eg: --export-dir '/ids/sqoopdata'
相关推荐
### Sqoop 的简单使用 #### 导入数据 1. **连接信息**:首先,你需要提供数据库的连接信息,如主机名、端口、数据库名、用户名和密码: ```bash sqoop import --connect 'jdbc:mysql://localhost/yourdb' \ --...
Sqoop 组件安装配置 Sqoop 是 Apache 旗下一款“ Hadoop 和关系数据库服务器之间传送数据”的工具。主要用于在 Hadoop(Hive) 与传统的数据库 (MySQL 、 ...* 熟悉 Sqoop 的使用和应用场景 * 了解 Sqoop 的优点和缺点
Sqoop 的安装和配置是使用 Sqoop 的前提条件,本文将指导您完成 Sqoop 的安装和配置。 1. 安装 Sqoop Sqoop 的安装非常简单,首先需要下载 Sqoop 的安装包 sqoop-1.2.0-CDH3B4.tar.gz,然后解压缩该文件,将其解...
编辑`sqoop.properties`文件,设置必要的参数以启用MapReduce配置和简单的身份验证机制: ```properties org.apache.sqoop.submission.engine.mapreduce.configuration.directory=/usr/hadoop/etc/hadoop org....
2. 并发特性和容错:Sqoop 的架构非常简单,整合了 Hive、Hbase 和 Oozie,通过 map-reduce 任务来传输数据,从而提供并发特性和容错。 3. 实用的小工具:Sqoop 提供了一些诸如查看数据库表等实用的小工具。 六、...
sqoop的安装与配置 第1章:什么是 Sqoop? Sqoop 是一种用于在 Hadoop 与关系型数据库(例如 MySQL、Oracle)之间传输数据的工具。简单来说,它就像一个“搬运工”,把不同地方的数据搬到 Hadoop 中,帮助分析大量...
Sqoop安装** 安装Sqoop的前提条件是已经安装了Java和Hadoop环境。安装步骤包括: 1. 从官方网站或镜像站点下载Sqoop的安装包。 2. 将安装包上传到服务器并解压到指定目录。 3. 修改配置文件,包括重命名`sqoop-env-...
5. 安装文档:提供的安装文档可能包括Sqoop的用户手册、快速入门指南等,这些文档可以帮助用户更好地理解和使用Sqoop,解决在实际操作中遇到的问题。 总之,Sqoop是大数据生态中的重要工具,它简化了Hadoop与关系型...
Sqoop2是一款用于在Hadoop和...如果你的场景主要是简单的数据迁移,可能选择更成熟的Sqoop1会更合适。而如果你需要更复杂的任务管理和调度,那么探索其他的解决方案,如Apache Nifi或Hue等工具,可能会提供更好的支持。
- **1.1.6 初始化存储库**:Sqoop 使用一个外部存储库来存储作业和用户信息。 - **1.1.7 服务器生命周期管理**:了解如何启动、停止和管理 Sqoop 服务器。 - **1.2 客户端安装**:客户端可以安装在集群中的多个...
Sqoop 是一个在 Linux 环境下广泛使用的工具,用于在关系数据库和 Apache Hadoop 之间高效地导入和导出数据。这个压缩包“Sqoop-linux.zip”包含两个版本的 Sqoop 安装包:sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar....
#### Sqoop安装步骤 1. **下载并解压Sqoop** - 下载地址: [Apache Sqoop](http://apache.org/dist/sqoop/1.4.6/sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz)。 - 解压命令: `tar -zxvf sqoop-1.4.6.bin__hadoop-...
虽然Sqoop提供了强大的数据迁移能力,但它也存在一些局限性,比如命令行操作可能导致错误,格式耦合较紧,不支持所有数据类型,且安全机制相对简单,如密码明文暴露,安装和配置可能需要较高权限,且要求connector...
Sqoop 提供了命令行界面,用户可以通过简单的命令来执行数据导入导出操作。基本命令格式为 `sqoop [command] [options]`。 #### 6. Sqoop 工具 ##### 6.1 使用命令别名 为了简化命令行输入,Sqoop 提供了一些命令...
Apache Sqoop是一个专门为大数据处理设计的数据迁移工具,它允许用户从传统的关系型数据库管理系统(RDBMS)如MySQL、Oracle等,高效地导入到...通过熟练掌握Sqoop的使用,可以更好地利用Hadoop进行大数据分析和处理。
7. **元数据**:Sqoop可以保存关于导入/导出作业的元数据,方便后续的重复使用和跟踪。 8. **并行性**:为了提高效率,Sqoop可以并行执行多个导入任务,利用Hadoop集群的计算能力加速数据传输。 9. **Hive集成**:...
4. **基本操作**:使用 Sqoop,用户可以通过简单的命令行接口执行以下操作: - `import`:将数据库表或查询结果导入 HDFS。 - `export`:将 HDFS 中的数据导出到数据库表。 - `create-table`:在数据库中创建表...
**Sqoop1** 是最初的版本,只有一个Sqoop客户端,使用相对简单,但功能相对较局限。 **Sqoop2** 在Sqoop1的基础上进行了许多改进: 1. 引入了Sqoop Server,实现了集中化管理Connectors,提供了更高级别的管理和...
在《Apache Sqoop Cookbook》中,读者可以学习如何配置和管理Sqoop,包括安装、设置数据库连接、创建连接器等基础操作。此外,书中还详细解释了如何使用Sqoop进行数据导入和导出,如使用`import`和`export`命令,...
Sqoop1 的架构相对简单,部署方便,但它的交互方式仅限于命令行,且安全性、数据类型支持和管理机制相对有限。相比之下,Sqoop2 引入了更多交互方式,如Web UI、REST API,实现了连接器的集中管理,有更完善的权限...