前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Sqoop简介以及安装

Sqoop简介以及安装

作者头像
云飞扬
发布2018-06-04 15:03:36
1.2K0
发布2018-06-04 15:03:36
举报
文章被收录于专栏:星汉技术星汉技术

Sqoop简介以及安装

近期用到Sqoop进行数据导出导入,发现网上很多的博客都不够精细,所以本人就针对Sqoop1.4.7的官方文档进行了学习,以下是学习笔记。

一、介绍

    sqoop是沟通HDFS和关系型数据库的桥梁,可以从HDFS导出数据到关系型数据库,也可以从关系型数据库导入数据到HDFS。当然也支持Hive、HBase跟关系型数据库之间的互相导出导入。这是一个可以进行双向转化数据的工具。

二、安装

1、下载

    Sqoop是Apache提供的工具,下载的时候一定要先确定hadoop的版本,要找和hadoop匹配的版本,如果不匹配将会发生不可预知的问题。Sqoop目前支持4种主要的Hadoop版本  0.20、0.23、1.0和2.0。

2、安装

    官方要求必须有jdk和hadoop的支持,并且有版本要求。

1.安装JDK和Hadoop

    本人使用的jdk为1.8.131版本,Hadoop为2.7.1版本。这里jdk和Hadoop的安装请参阅:Hadoop伪分布式模式搭建Hadoop完全分布式集群搭建Centos 7+CDH5.7.2全部署流程,三者皆可。

2.安装Sqoop

    将Sqoop的安装包上传到linux中,进行解压就可以直接使用。以下是本人使用的Sqoop的版本:

    sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz

    sqoop可以通过已配置的环境变量JAVA_HOME找到JDK,可以通过已配置的环境变量HADOOP_HOME找到Hadoop,所以Sqoop不需要做任何配置就可以直接工作。

    当然如果想在任何目录使用Sqoop的命令的话,就必须配置Sqoop的环境变量。如下是本人配置的Sqoop的环境变量:

代码语言:javascript
复制
export SQOOP_HOME=/home/software/sqoop1.4.7
export PATH=$PATH:$SQOOP_HOME/bin

3.MySQL jar包

    这里本人使用的是MySQL数据库,因为Sqoop需要连接数据库,所以需要将连接数据库的驱动jar包加入sqoop的lib目录下。以下是本人使用的jar包:

    mysql-connector-java-5.1.38-bin.jar

当然,如果你使用的是其他关系型数据库,相应的就需要导入其他关系型数据库的jar包。

三、基础语法

1、命令格式

如下是基础的命令格式:

代码语言:javascript
复制
$ sqoop tool-name [tool-arguments]

    这个命令的意思是以sqoop命令开头,然后跟上要使用的工具名称(工具模块在下文有介绍),然后跟上要使用的工具相应的参数选项。

2、帮助工具

    Sqoop提供了相应的帮助工具,以下是Sqoop帮助命令展示:

代码语言:javascript
复制
$ sqoop help
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
  help               List available commands
  import             Import a table from a database to HDFS
  import-all-tables  Import tables from a database to HDFS
  import-mainframe   Import mainframe datasets to HDFS
  list-databases     List available databases on a server
  list-tables        List available tables in a database
  version            Display version information
See 'sqoop help COMMAND' for information on a specific command.

    可以通过输入以下内容来显示特定工具的帮助:

代码语言:javascript
复制
sqoop help (tool-name)

    例如:

代码语言:javascript
复制
sqoop help import

    也可以将--help参数添加到任何命令中:

代码语言:javascript
复制
sqoop import --help

    这两种方式,效果是一样的。

3、命令别名

    除了使用sqoop (toolname)语法之外,还可以使用指定sqoop-(toolname)语法的别名脚本。

    例如:Sqoop内置的脚本sqoop-import、sqoop-export等。

4、Generic and Specific Arguments

    generic:泛型。specific arguments:特定参数。

    要控制每个Sqoop工具的操作,就要使用泛型和特定参数。

    例如:

    导入数据的用法:

代码语言:javascript
复制
$ sqoop help import
usage: sqoop import [GENERIC-ARGS] [TOOL-ARGS]

Common arguments:
   --connect <jdbc-uri>     Specify JDBC connect string
   --connect-manager <class-name>     Specify connection manager class to use
   --driver <class-name>    Manually specify JDBC driver class to use
   --hadoop-mapred-home <dir>      Override $HADOOP_MAPRED_HOME
   --help                   Print usage instructions
   --password-file          Set path for file containing authentication password
   -P                       Read password from console
   --password <password>    Set authentication password
   --username <username>    Set authentication username
   --verbose                Print more information while working
   --hadoop-home <dir>     Deprecated. Override $HADOOP_HOME

    通用Hadoop命令行参数:(必须在任何特定于工具的参数之前)

代码语言:javascript
复制
支持的通用选项是
-conf <配置文件>指定一个应用程序配置文件
-D <property = value>给定属性的使用值
-fs <local | namenode:port>指定一个namenode
-jt <local | jobtracker:port>指定作业跟踪器
-files <逗号分隔的文件列表>指定要复制到地图缩小集群的逗号分隔文件
-libjars <逗号分隔的jar列表>指定要包含在classpath中的逗号分隔的jar文件。
-archives <逗号分隔的存档列表>指定要在计算机上解除存档的逗号分隔档案。

    一般的命令行语法是:

代码语言:javascript
复制
bin/hadoop command [genericOptions] [commandOptions]

    必须提供通用的参数-conf,-D工具名称后,依此类推,但之前的任何特定工具的参数(如--connect)。

    注意:Hadoop参数前面是单个破折号字符(-),而特定于工具的参数则以两个破折号(--)开头,单个字符参数则是单个破折号,如-P。

    -conf、-D、-fs和-jt参数控制配置Hadoop的服务器设置。

    例如:-D mapred.job.name=<job_name>可用于设置Sqoop启动的MR作业的名称,如果未指定,名称将默认为作业的jar名称 - 该名称是从所使用的表名派生的。

    这些-files、-libjars和-archives参数通常不用于Sqoop,但在Hadoop的内部包含这些参数解析系统。

5、options file(选项文件)

1.定义

    官方释义:

    使用scoop的时候,命令行选项可以放置到选项文件中。一个选项文件是一个文本文件,每一行标识一个选项,顺序是选项出现在命令行的顺序。

    个人理解:

    其实就是将经常重复使用的命令选项或者经常替换参数的命令选项写到一个文件中,这样既可重用,也实现了解耦。

2.选项文件书写规则

    要指定选项文件,只需创建一个选项文件。

    1.选项文件允许一个选项存在于多行中,通过在中间行末尾使用反斜杠标识语句选项结束。

    2.选项文件支持注解,在选项文件中以#字符开头即可。注释需要新起一行使用,不能和选项文本混写。

    3.选项文件中所有注释和空行都会被忽略。

    4.选项文件中开头和结尾的空格被忽略。

    5.选项文件中用“”标识的字符串中出现的空格是有效的,不会被忽略。引用的字符串不能超过行的范围。

3.选项文件的使用规则

    1.可以在命令行中的任何位置指定选项文件,其中的选项遵循选项排序规则。

    选项排序规则:

    通用选项首先出现,接下来是工具特定的选项,最后是打算传递给子程序的选项。

    2.通过--options-file参数将选项文件传递到命令行。

    3.可以在一个命令行中指定多个选项文件。调用选项文件需要写出选项文件的全路径。

    例如:

    用于导入的Sqoop命令:

代码语言:javascript
复制
$ sqoop import --connect jdbc:mysql://localhost/db --username foo --table TEST

    使用选项文件命令如下:

代码语言:javascript
复制
$ sqoop --options-file /users/homer/work/import.txt --table TEST

    选项文件/users/homer/work/import.txt包含以下内容:

代码语言:javascript
复制
import
--connect
jdbc:mysql://localhost/db
--username
foo

    为了便于阅读,选项文件可以有空行和注释。因此,上述选项文件可以有如下的形式:

代码语言:javascript
复制
#
#Sqoop导入的选项文件
#
#指定被调用的工具
import
#连接参数和值:多行执行一个选项
--connect
jdbc:mysql://localhost/db
#用户名参数和值
--username
foo
#
#应该在命令行中指定剩余选项。
#

四、工具模块

    Sqoop是相关工具的集合。要使用Sqoop,可以指定要使用的工具以及控制该工具的参数。包含以下工具:

    帮助工具

    sqoop help工具:帮助工具。(上面已经做了介绍)

    导入工具

    sqoop-import:单表导入。

    sqoop-import-all-tables:多表导入。

    sqoop-import-mainframe:PDS导入。

    导出工具

    sqoop-export:数据导出。

    其他工具

    validation:对数据进行计算,符合条件的数据进行导入或导出

    sqoop-job:创建和处理保存的作业。

    sqoop-metastore:配置Sqoop为元数据共享库。

    sqoop-merge:合并数据集。

    sqoop-codegen:生成封装和解释导入记录的Java类

    sqoop-create-hive-table:基于先前导入数据,填充Hive matestore表。

    sqoop-list-databases:列出可用的数据库模式。

    sqoop-list-tables:列出模式内的表。

    sqoop-eval:基本的SQL执行shell。

    sqoop-version:显示Sqoop版本信息。

    以后会陆续进行这些工具的具体介绍。

下一篇:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Sqoop简介以及安装
  • 一、介绍
  • 二、安装
    • 1、下载
      • 2、安装
        • 1.安装JDK和Hadoop
        • 2.安装Sqoop
        • 3.MySQL jar包
    • 三、基础语法
      • 1、命令格式
        • 2、帮助工具
          • 3、命令别名
            • 4、Generic and Specific Arguments
              • 5、options file(选项文件)
                • 1.定义
                • 2.选项文件书写规则
                • 3.选项文件的使用规则
            • 四、工具模块
              •     帮助工具
                •     导入工具
                  •     导出工具
                    •     其他工具
                    相关产品与服务
                    数据库
                    云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档