`

sqoop安装和简单使用

 
阅读更多

 

 

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'

 

 
 5 设置为作业,运行作业
sqoop job --create myjob4 -- export --connect jdbc:mysql://master:3306/test  --username root --password admin --table sqoontable --fields-terminated-by ';' --export-dir '/ids/sqoopdata'   
sqoop job --exec myjob4   在执行的时候,跳出 password: 此时输入mysql链接密码即可执行
如果要去掉密码,请看官网 http://sqoop.apache.org/docs/1.4.3/SqoopUserGuide.html#_saved_jobs_and_passwords
主要在 导入/导出命令上增加  --create job名称 -- 即可

查看作业列表:
[root@master bin]# sqoop job --list
删除作业:
[root@master bin]# sqoop job --delete myjob(作业名称)
 
6 导入导出和事务
导入导出的事务是以Mapper任务为单位,启动一个mapper任务,就有一个事务,启动4个mapper任务,则有四个事务。
 
  • 大小: 20.2 KB
  • 大小: 11.3 KB
分享到:
评论

相关推荐

    sqoop 安装与简单使用

    ### Sqoop 的简单使用 #### 导入数据 1. **连接信息**:首先,你需要提供数据库的连接信息,如主机名、端口、数据库名、用户名和密码: ```bash sqoop import --connect 'jdbc:mysql://localhost/yourdb' \ --...

    第9章 Sqoop组件安装配置.pptx

    Sqoop 组件安装配置 Sqoop 是 Apache 旗下一款“ Hadoop 和关系数据库服务器之间传送数据”的工具。主要用于在 Hadoop(Hive) 与传统的数据库 (MySQL 、 ...* 熟悉 Sqoop 的使用和应用场景 * 了解 Sqoop 的优点和缺点

    5.sqoop安装与配置.docx

    Sqoop 的安装和配置是使用 Sqoop 的前提条件,本文将指导您完成 Sqoop 的安装和配置。 1. 安装 Sqoop Sqoop 的安装非常简单,首先需要下载 Sqoop 的安装包 sqoop-1.2.0-CDH3B4.tar.gz,然后解压缩该文件,将其解...

    sqoop2安装文档

    编辑`sqoop.properties`文件,设置必要的参数以启用MapReduce配置和简单的身份验证机制: ```properties org.apache.sqoop.submission.engine.mapreduce.configuration.directory=/usr/hadoop/etc/hadoop org....

    sqoop的原理及概念

    2. 并发特性和容错:Sqoop 的架构非常简单,整合了 Hive、Hbase 和 Oozie,通过 map-reduce 任务来传输数据,从而提供并发特性和容错。 3. 实用的小工具:Sqoop 提供了一些诸如查看数据库表等实用的小工具。 六、...

    sqoop的安装与配置

    sqoop的安装与配置 第1章:什么是 Sqoop? Sqoop 是一种用于在 Hadoop 与关系型数据库(例如 MySQL、Oracle)之间传输数据的工具。简单来说,它就像一个“搬运工”,把不同地方的数据搬到 Hadoop 中,帮助分析大量...

    尚硅谷大数据技术之Sqoop1

    Sqoop安装** 安装Sqoop的前提条件是已经安装了Java和Hadoop环境。安装步骤包括: 1. 从官方网站或镜像站点下载Sqoop的安装包。 2. 将安装包上传到服务器并解压到指定目录。 3. 修改配置文件,包括重命名`sqoop-env-...

    Sqoop安装包、安装文档

    5. 安装文档:提供的安装文档可能包括Sqoop的用户手册、快速入门指南等,这些文档可以帮助用户更好地理解和使用Sqoop,解决在实际操作中遇到的问题。 总之,Sqoop是大数据生态中的重要工具,它简化了Hadoop与关系型...

    sqoop2的安装包

    Sqoop2是一款用于在Hadoop和...如果你的场景主要是简单的数据迁移,可能选择更成熟的Sqoop1会更合适。而如果你需要更复杂的任务管理和调度,那么探索其他的解决方案,如Apache Nifi或Hue等工具,可能会提供更好的支持。

    sqoop2-1.99.7 documentation 英文文档

    - **1.1.6 初始化存储库**:Sqoop 使用一个外部存储库来存储作业和用户信息。 - **1.1.7 服务器生命周期管理**:了解如何启动、停止和管理 Sqoop 服务器。 - **1.2 客户端安装**:客户端可以安装在集群中的多个...

    Sqoop-linux.zip

    Sqoop 是一个在 Linux 环境下广泛使用的工具,用于在关系数据库和 Apache Hadoop 之间高效地导入和导出数据。这个压缩包“Sqoop-linux.zip”包含两个版本的 Sqoop 安装包:sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar....

    sqoop配置.docx

    #### 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-...

    大数据运维技术第9章 Sqoop组件安装配置.pptx

    虽然Sqoop提供了强大的数据迁移能力,但它也存在一些局限性,比如命令行操作可能导致错误,格式耦合较紧,不支持所有数据类型,且安全机制相对简单,如密码明文暴露,安装和配置可能需要较高权限,且要求connector...

    sqoop1-1.4.6 documentation 英文文档

    Sqoop 提供了命令行界面,用户可以通过简单的命令来执行数据导入导出操作。基本命令格式为 `sqoop [command] [options]`。 #### 6. Sqoop 工具 ##### 6.1 使用命令别名 为了简化命令行输入,Sqoop 提供了一些命令...

    Apache的sqoop项目

    Apache Sqoop是一个专门为大数据处理设计的数据迁移工具,它允许用户从传统的关系型数据库管理系统(RDBMS)如MySQL、Oracle等,高效地导入到...通过熟练掌握Sqoop的使用,可以更好地利用Hadoop进行大数据分析和处理。

    sqoop 1.4.4

    7. **元数据**:Sqoop可以保存关于导入/导出作业的元数据,方便后续的重复使用和跟踪。 8. **并行性**:为了提高效率,Sqoop可以并行执行多个导入任务,利用Hadoop集群的计算能力加速数据传输。 9. **Hive集成**:...

    sqoop-1.4.2.bin__hadoop-2.0.0-alpha.tar

    4. **基本操作**:使用 Sqoop,用户可以通过简单的命令行接口执行以下操作: - `import`:将数据库表或查询结果导入 HDFS。 - `export`:将 HDFS 中的数据导出到数据库表。 - `create-table`:在数据库中创建表...

    Hadoop Sqoop介绍及安装部署.pdf

    **Sqoop1** 是最初的版本,只有一个Sqoop客户端,使用相对简单,但功能相对较局限。 **Sqoop2** 在Sqoop1的基础上进行了许多改进: 1. 引入了Sqoop Server,实现了集中化管理Connectors,提供了更高级别的管理和...

    Apache Sqoop Cookbook

    在《Apache Sqoop Cookbook》中,读者可以学习如何配置和管理Sqoop,包括安装、设置数据库连接、创建连接器等基础操作。此外,书中还详细解释了如何使用Sqoop进行数据导入和导出,如使用`import`和`export`命令,...

    大数据-sqoop.pptx

    Sqoop1 的架构相对简单,部署方便,但它的交互方式仅限于命令行,且安全性、数据类型支持和管理机制相对有限。相比之下,Sqoop2 引入了更多交互方式,如Web UI、REST API,实现了连接器的集中管理,有更完善的权限...

Global site tag (gtag.js) - Google Analytics